更新时间:2023-04-22 09:21:33浏览次数:420+次
本文介绍在Ubuntu 22.04系统上安装和配置Prometheus服务器的详细步骤,也可用于Ubuntu 20.04、18.04版本上。Prometheus是一种监控工具,旨在将实时指标记录在时间序列数据库中,这是一个开源软件项目,用Go编写。当前Prometheus度量是使用HTTP拉取来收集的,从而实现更高的性能和可扩展性。
在Ubuntu 22.04系统上安装和配置Prometheus服务器的详细步骤
步骤1:创建Prometheus系统组
让我们从创建Prometheus系统用户和组开始:
sudo groupadd --system prometheus
ID < 1000的组是一个系统组。添加系统组后,创建Prometheus系统用户并分配创建的主组:
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
步骤2:创建数据和配置目录
Prometheus需要一个目录来存储它的数据。我们将在/var/lib/prometheus下创建这个:
sudo mkdir /var/lib/prometheus
Prometheus的主要配置文件目录是/etc/prometheus/。它将有一些子目录:
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
步骤3:下载Prometheus文件
我们需要下载Prometheus文件的最新版本,并提取它以获得二进制文件。您可以从Prometheus发布Github页面查看,地址在https://github.com/prometheus/prometheus/releases,可直接下载Prometheus最新版本安装或者采用以下方法处理:
安装wget:
sudo apt update
sudo apt -y install wget curl vim
然后下载Prometheus的最新二进制档案:
mkdir -p /tmp/prometheus && cd /tmp/prometheus
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
提取文件:
tar xvf prometheus*.tar.gz
cd prometheus*/
将二进制文件移动到/usr/local/bin/目录:
sudo mv prometheus promtool /usr/local/bin/
检查已安装的版本:
$ prometheus --version
prometheus, version 2.43.0 (branch: HEAD, revision: edfc3bcd025dd6fe296c167a14a216cab1e552ee)
build user: root@8a0ee342e522
go version: go1.19.7
platform: linux/amd64
tags: netgo,builtinassets
$ promtool --version
promtool, version 2.43.0
将Prometheus配置模板移动到/etc/目录:
sudo mv prometheus.yml /etc/prometheus/prometheus.yml
还要将控制台和控制台库移动到/etc/prometheus目录:
sudo mv consoles/ console_libraries/ /etc/prometheus/
cd $HOME
步骤4:在Ubuntu 22.04上配置Prometheus
创建或编辑Prometheus – /etc/prometheus/prometheus.yml的配置文件:
sudo vim /etc/prometheus/prometheus.yml
模板配置应类似于以下内容:
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
您可以根据自己的默认喜好编辑文件并保存。
1、创建Prometheus系统服务单元文件
为了能够使用systemd管理Prometheus服务,您需要明确定义这个单元文件:
sudo tee /etc/systemd/system/prometheus.service<<EOF
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP \$MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.external-url=
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
EOF
2、更改目录权限
将这些目录的所有权更改为Prometheus用户和组:
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/
3、重新加载systemd守护程序并启动服务
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
使用systemctl status prometheus命令检查状态:
$ systemctl status prometheus
prometheus.service - Prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
Active: active (running)
如果您的服务器有一个正在运行的防火墙服务,则需要打开9090端口:
sudo ufw allow 9090/tcp
确认您可以通过访问web浏览器中的Prometheus服务器IP地址/DNS名称来连接到9090端口:
可以看到,成功访问了。另外,用户可自行配置使用密码保护Web控制台,即配置Prometheus基本http身份验证。