一、prometheus 监控 Linux 主机
1. 官网下载 node_exporter
官网:https://prometheus.io/download/
2. 上传到需要监控的Linux主机,解压并重命名
$ tar xvfz node_exporter-1.3.0.linux-amd64.tar.gz
node_exporter-1.3.0.linux-amd64/
node_exporter-1.3.0.linux-amd64/LICENSE
node_exporter-1.3.0.linux-amd64/NOTICE
node_exporter-1.3.0.linux-amd64/node_exporter
$ mv node_exporter-1.3.0.linux-amd64 node_exporter
3. 启动 node_exporter,收集主机信息
$ nohup /media/vdc/prometheus/node_exporter/node_exporter &
4. 使用http协议 + 9100 端口收集 Linux 主机信息
如:127.0.0.1:9100/metrics
注:
这里监控的是本机主机;如果要监控远程主机,还需要打开远程主机的 9100 端口才可以访问收集到的信息,可参考后文内容——二、防火墙打开端口
5. 使用 Prometheus 监控可以拉取的 node 信息
在 prometheus.yml
添加配置:
job_name: 'node_exporter'
static_configs:
targets: ['10.90.244.145:9100']
6. 重启 prometheus
先关闭 prometheus 进程:
$ pkill prometheus
查看 9090 端口是否已释放:
$ lsof -i:9090
重启 prometheus:
$ ./prometheus --config.file="/home/10307952@zte.intra/prometheus-2.32.0/prometheus.yml" &
7. 在 prometheus 界面查看 Targets,可以看到已监控的主机节点信息
二、防火墙打开端口
如果要监控远程主机,还需要打开远程主机的对应端口,否则无法访问相应网址:
1. 方式一:使用 iptables 添加白名单(推荐使用):
$ iptables -I INPUT -s 10.90.244.145 -p tcp --dport 9100 -j ACCEPT # 开放9100端口给指定ip:10.90.244.145
$ iptables -I INPUT -p tcp --dport 9100 -j ACCEPT # 向所有机器开放9100端口
上述添加的规则重启后会失效,还需持久化。执行以下命令:
service iptables save
cat /etc/sysconfig/iptables
注意:
IPv4
规则信息会保存到/etc/sysconfig/iptables
文件中,IPv6
规则保存到/etc/sysconfig/ip6tables
文件中。必须执行service iptables save
命令才会保存,保存后系统重启后会自动加载。- 如果报
Unknown operation 'iptables'
错误的话,要安装依赖包iptables-services
(使用 yum 安装:yum install iptables-services
)。
查看规则:
$ iptables -nL --line-number
删除已添加的白名单:
$ iptables -D INPUT number # number为上图中的序号num
2. 方式二:重载防火墙
firewall-cmd --zone=public --add-port=3000/tcp --permanent # 永久开启端口,3000是grafana的端口
firewall-cmd --zone=public --add-port=9090/tcp --permanent # 9090是prometheus默认端口
firewall-cmd --zone=public --add-port=9100/tcp --permanent # 9100是远程监控该主机的端口
firewall-cmd --zone=public --add-port=9600/tcp --permanent # 9600是上报自定义数据开放的端口
firewall-cmd --reload # 重新加载配置