通过上一篇[(六)Prometheus 监控 apache 服务 的学习,我们已经对 prometheus 做了一个传统服务的监控,本篇详细讲解 Prometheus 自动发现主机并添加。
准备环境
# 这里使用的是(四)Prometheus + Grafana 可视化 完成时的环境
centos 7
prometheus 运行正常
grafana 运行正常
[root@fp-21 ~]# getenforce
Permissive
[root@fp-21 ~]# ss -lntp |grep prometheus
LISTEN 0 128 :::9090 :::* users:(("prometheus",pid=10531,fd=6))
[root@fp-21 ~]# ss -lntp |grep grafana
LISTEN 0 128 10.0.0.21:3000 *:* users:(("grafana-server",pid=10690,fd=7))
新开一台服务器,做客户端
# 关闭防火墙
[root@fp-22 ~]# systemctl stop firewalld.service
# 修改 selinux 为警告模式
[root@fp-22 ~]# setenforce 0
# 时间同步
[root@fp-22 ~]# ntpdate ntp.aliyun.com
31 Mar 22:16:56 ntpdate[1872]: step time server 203.107.6.88 offset -43199.490573 sec
安装 node_exporter 收集数据,点击下载
# 本地上传或下载
[root@fp-22 ~]# cd /opt/ ; mkdir node_exporter ; cd node_exporter
[root@fp-22 node_exporter]# ls
node_exporter-0.18.1.linux-amd64.tar.gz
解压
[root@fp-22 node_exporter]# tar xf node_exporter-0.18.1.linux-amd64.tar.gz
[root@fp-22 node_exporter]# ls
node_exporter-0.18.1.linux-amd64 node_exporter-0.18.1.linux-amd64.tar.gz
[root@fp-22 node_exporter]# mv node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter
[root@fp-22 node_exporter]# cd !$
cd /usr/local/node_exporter
[root@fp-22 node_exporter]# cp node_exporter /usr/local/bin
[root@fp-22 node_exporter]# node_exporter
添加至开机自启
# 添加为系统服务
[root@fp-22 node_exporter]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
# 重新加载
[root@fp-22 node_exporter]# systemctl daemon-reload
# 添加至开机自启
[root@fp-22 node_exporter]# systemctl enable node_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
# 启动服务
[root@fp-22 node_exporter]# systemctl start node_exporter.service
# 查看进程
[root@fp-22 node_exporter]# ps -ef |grep node_exporter
root 13952 1 1 21:29 ? 00:00:00 /usr/local/node_exporter/node_exporter
root 13956 1799 0 21:29 pts/0 00:00:00 grep --color=auto node_exporter
# 查看端口
[root@fp-22 node_exporter]# ss -lntp |grep node_exporter
LISTEN 0 128 [::]:9100 [::]:* users:(("node_exporter",pid=13952,fd=3))
服务端添加配置文件
[root@fp-21 ~]# mkdir -p /usr/local/prometheus/target/{node,docker}
[root@fp-21 ~]# vim /usr/local/prometheus/target/node/host_status.json
[
{
"targets": [ "10.0.0.22:9100" ],
"labels": {
"job": "node2-status",
"service": "node2"
}
}
]
修改 Prometheus 配置文件
[root@fp-21 ~]# vim /usr/local/prometheus/conf/prometheus.yml
39 - job_name: 'host-status'
40 file_sd_configs:
41 - files:
42 - "/usr/local/prometheus/target/node/host_status.json"
43 refresh_interval: 6s
重启 Prometheus
第一次引用,所以定义完成之后,需要重启一下,如果后续再添加节点,则直接写入json文件即可,无需重启Prometheus服务
[root@fp-21 ~]# systemctl restart prometheus.service