如何在CentOS 7上安装Prometheus和node_exporter
Prometheus是一个开源监控系统,允许您从任何已配置的目标系统收集指标。 Prometheus实现了一个多维数据模型,具有强大的查询功能,出色的可视化,精确的警报以及许多集成功能 。
Prometheus最初是由SoundCloud在2012年创建的,但现在已经成为一个由开源社区独立维护的独立开源项目 - 所有组件都在Github上的Apache 2 License下提供。
在本教程中,我将向您展示如何安装和配置Prometheus以及node_exporter。 我们将安装Prometheus监控系统,然后配置node_exporter以从服务器收集指标。 我们将使用CentOS 7服务器作为本教程指南。
先决条件
- CentOS 7服务器
- Root权限
我们会怎样做?
- 创建一个新用户并下载Prometheus
- 将Prometheus配置为系统服务
- 配置Firewalld
- 安装和配置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.2.1/prometheus-2.2.1.linux-amd64.tar.gz
解压缩prometheus-xx.xxtar.gz文件并将目录重命名为'prometheus'。
tar -xzvf prometheus-2.2.1.linux-amd64.tar.gz
mv prometheus-2.2.1.linux-amd64/ prometheus/
Prometheus下载到服务器,所有prometheus文件都在'/ home / prometheus / prometheus'目录下。
第2步 - 将Prometheus配置为系统服务
在此步骤中,我们将prometheus配置为systemd服务。 我们将在'/ 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
如果您在系统上使用Firewalld,请将端口9090添加到Firewalld列表端口。
使用下面的firewall-cmd命令打开端口9090以进行Prometheus访问。
firewall-cmd --add-port=9090/tcp --permanent
firewall-cmd --reload
现在打开Web浏览器并使用端口9090键入服务器IP地址。
http://192.168.33.10:9090/graph
在查询字段中键入“http_requests_total”,然后单击“执行”按钮。
您将看到prometheus服务器的HTTP请求,其中包含有关时间,HTTP状态代码和方法等的所有信息。
第4步 - 安装和配置node_exporter
node_exporter是可以在* Nix和Linux系统上运行的计算机度量标准的导出器。
在本教程中,我们将在同一服务器prometheus上安装node_exporter。 我们将监控并获取prometheus服务器的指标。
登录prometheus用户并使用wget命令下载'node_exporter'。
su - prometheus
wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0-rc.1/node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
解压缩node_exporter并将目录重命名为“node_exporter”。
tar -xzvf node_exporter-0.16.0-rc.1.linux-amd64.tar.gz
mv node_exporter-0.16.0-rc.1.linux-amd64 node_exporter
接下来,我们将为node_exporter创建新的服务文件。 回到root shell,转到'/ etc / systemd / system'目录并使用vim创建新的node_exporter服务文件'node_exporter.service'。
cd /etc/systemd/system/
vim node_exporter.service
在那里,粘贴node_exporter服务配置如下。
[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命令检查它。
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://192.168.33.10:9090/
在查询字段中键入meminfo收集器“ node_memory_MemAvailable_bytes ”,然后单击“执行”按钮。
你将得到如下结果。
您将获得服务器实例“localhost:9100”和job_name“node-exporter”上的可用内存。
或者,如果要访问node_exporter原始数据,则需要将node_exporter端口9100添加到firewalld。
firewall-cmd --add-port=9100/tcp
firewall-cmd --reload
然后使用端口9100键入服务器IP地址。
http://192.168.33.10:9100/metrics
您将获得node_exporter原始数据,如下所示。
使用CentOS 7上的node_exporter安装和配置prometheus监控系统已成功完成。