Prometheus是一个开源监视系统,可让您从任何已配置的目标系统收集度量。Prometheus实现了多维数据模型,具有强大的查询,出色的可视化效果,精确的警报功能以及许多集成。
Prometheus最初由SoundCloud于2012年创建,但现在已成为由开源社区独立维护的独立开源项目-所有组件都可以在Github上的Apache 2 License下获得。
在本教程中,我将向您展示如何安装和配置Prometheus和node_exporter。我们将安装Prometheus监视系统,然后配置node_exporter以从服务器收集指标。本教程指南将使用最新的CentOS 8服务器。
先决条件
- CentOS 8服务器
- 根特权
我们会怎样做?
- 创建一个新用户并下载Prometheus
- 将Prometheus配置为系统服务
- 配置防火墙
- 安装和配置node_exporter
- 将node_exporter添加到Prometheus服务器
- 测试中
步骤1-创建一个新用户并下载Prometheus
在本教程中,Prometheus服务将以非root用户身份运行。因此,我们需要在系统上创建一个新的非root用户。我们将创建一个名为“ prometheus”的新用户,所有prometheus服务将在prometheus用户下运行。
使用以下命令创建新的“ prometheus”用户。
useradd -m -s /bin/bash prometheus
已创建一个新用户。现在登录到用户,并使用wget命令下载prometheus。
su - prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.13.1/prometheus-2.13.1.linux-amd64.tar.gz
解压缩prometheus-xx.xxtar.gz文件,并将目录重命名为“ prometheus”。
tar -xf prometheus-2.13.1.linux-amd64.tar.gz
mv prometheus-2.13.1.linux-amd64/ prometheus/
之后,创建一个新的“数据”目录,将其用作“ tsdb”存储。
mkdir -p ~/prometheus/data
现在,将prometheus下载到服务器,并且所有prometheus文件都位于“ / home / prometheus / prometheus”目录中。
第2步-将Prometheus配置为系统服务
在此步骤中,我们将Prometheus配置为系统服务。我们将在“ / etc / systemd / system”目录中创建一个新的服务文件prometheus.service。
转到“ / etc / systemd / system /”目录,并使用vim编辑器创建新的服务文件“ prometheus.service”。
cd /etc/systemd/system/
vim prometheus.service
在下面粘贴prometheus服务配置。
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=prometheus
Restart=on-failure
#Change this line if you download the
#Prometheus on different path user
ExecStart=/home/prometheus/prometheus/prometheus \
--config.file=/home/prometheus/prometheus/prometheus.yml \
--storage.tsdb.path=/home/prometheus/prometheus/data
[Install]
WantedBy=multi-user.target
保存并退出。
现在,使用下面的systemctl命令重新加载systemd系统。
systemctl daemon-reload
启动prometheus服务,并使它每次在系统启动时启动。
systemctl start prometheus
systemctl enable prometheus
Prometheus现在作为systemd服务运行,请使用以下命令对其进行检查。
systemctl status prometheus
确保您获得“正在运行”服务状态。
或使用下面的netstat命令检查它。
netstat -plntu
确保获得如下所示的结果。
Prometheus默认情况下在端口“ 9090”下运行。
步骤3-配置防火墙
如果您在系统上使用Firewalld,请将端口9090添加到Firewalld列表端口。
使用下面的firewall-cmd命令打开端口9090以进行Prometheus访问。
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
现在检查firewalld的规则。
firewall-cmd --list-all
您将在列表中获得TCP端口“ 9090”。
接下来,打开您的Web浏览器,并使用端口9090键入服务器IP地址。
http://10.5.5.15:9090/graph
在查询字段中输入“ prometheus_http_requests_total”,然后单击“执行”按钮。
您将看到到Prometheus服务器的HTTP请求以及有关时间,HTTP状态代码和方法等的所有信息。
第4步-安装和配置node_exporter
node_exporter是可以在* Nix和Linux系统上运行的机器指标的导出器。
在本教程中,我们将在同一台服务器上安装node_exporter。我们将监视并获取Prometheus服务器的指标。
登录到prometheus用户并使用wget命令下载“ node_exporter”。
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
提取node_exporter并将目录重命名为“ node_exporter”。
tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
mv node_exporter-0.18.1.linux-amd64 node_exporter
接下来,我们将为node_exporter创建新的服务文件。返回根shell,转到“ / etc / systemd / system”目录,并使用vim创建新的node_exporter服务文件“ node_exporter.service”。
cd /etc/systemd/system/
vim node_exporter.service
粘贴以下配置。
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
ExecStart=/home/prometheus/node_exporter/node_exporter
[Install]
WantedBy=default.target
保存并退出。
现在重新加载systemd系统。
systemctl daemon-reload
然后启动node_exporter服务,并使它每次在系统启动时启动。
systemctl start node_exporter
systemctl enable node_exporter
node_exporter服务现在正在服务器上运行-使用netstat命令检查它。
systemctl status node_exporter
netstat -plntu
您将获得节点导出器的启动并在默认端口9100上运行。
第5步-将node_exporter添加到Prometheus服务器
在此步骤中,我们将node_exporter添加到prometheus服务器。登录到prometheus用户并编辑配置“ prometheus.yml”文件。
登录到prometheus用户。
su - prometheus
转到“ prometheus”目录并编辑配置文件“ prometheus.yml”。
cd ~/prometheus/
vim prometheus.yml
在“ scrape_config”行下,通过复制粘贴以下配置来添加新的job_name node_exporter。
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
保存并退出。
现在重新启动prometheus服务。
systemctl restart prometheus
node_exporter已添加到prometheus服务器。
步骤6-测试Prometheus和node_exporter
打开Web浏览器,然后输入服务器IP地址。
http://10.5.5.15:9090/
在查询字段中输入meminfo收集器“ node_memory_MemAvailable_bytes”,然后单击“执行”按钮。
您将得到如下结果。
您将在服务器实例’localhost:9100’和job_name’node-exporter’上获得可用内存。
或者,如果要访问node_exporter原始数据,则需要将node_exporter端口9100添加到firewalld。
firewall-cmd --add-port=9100/tcp --permanent
firewall-cmd --reload
然后键入带有端口9100的服务器IP地址。
http://10.5.5.15:9100/metrics
然后您将获得node_exporter原始数据,如下所示。
结果,在CentOS 8服务器上使用node_exporter完成了普罗米修斯监视系统的安装和配置。