1,客户端下载
官网下载地址https://prometheus.io/download/ ,搜索插件node_exporter 将安装包下载到要监控的node节点(选最新安装包,这里以0.18.1版本node_exporter安装)
mkdir /usr/local/prometheus/client -p cd /usr/local/prometheus/client wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz tar zxf node_exporter-0.18.1.linux-amd64.tar.gz mv mv node_exporter-0.18.1.linux-amd64/node_exporter . rm -f node_exporter-0.18.1.linux-amd64 NOTICE LICENSE #只保留node_exporter,其他的没用
2,运行测试:
./node_exporter
默认监听9100端口,这个可修改。通过 ./node_exporter -h 命令行参数 里边的参数可以自行设定。
配置参考:
./node_exporter --web.listen-address=:9100 --collector.tcpstat --collector.textfile.directory=/usr/local/prometheus/client/key/
参数说明:
–web.listen-address # 指定端口
–collector.tcpstat #收集 TCP 连接状态信息
–collector.textfile.directory # 类似与zabbix自定义key:自定义一些监控指标
3,设置supervisor 守护启动
这里主要目的是设置node_exporter 为守护进程,如果意外挂了会被supervisor(随系统启动)拉起来。当然也可以扔到后台或者是做成服务,需要设置监控脚本,这种方式感觉没supervisor靠谱和方便,前提客户端都配置了supervisor,或者使用批量管理软件先配置好。
(1)supervisor方式拉起node_exporter
[xxxxx@cn-qd-21yunwei-web supervisord.d]# cat node_exporter.conf [program:nodeexporter] command=/usr/local/prometheus/client/node_exporter directory=/usr/local/prometheus/client stdout_logfile=/logs/prometheus/node_exporter.log autostart=true autorestart=true redirect_stderr=true user=root startsecs=3
查看运行状态:
[root@cn-qd-21yunwei-web supervisord.d]supervisorctl status nodeexporter RUNNING pid 6339, uptime 0:00:04
ps:如果是centos6系统,supervisor启动会报错,需要修改supervisor脚本里边的python版本。
(2)做成服务。这种方式也是经常用到。
vim /usr/lib/systemd/system/node.service [Unit] Description=node After=network.target [Service] ExecStart=/usr/local/prometheus/client/node_exporter ExecStop=ps -ef |grep node_ex|grep -v grep |awk '{print $2}'|xargs kill -9 Restart=on-failure [Install] WantedBy=multi-user.target
加载配置并启动:
systemctl daemon-reload systemctl enable node &&systemctl start node
(3)做成开机启动
这种比较传统,需要借助脚本进行守护监控,挂了拉起来。否则就制定报警了。
vi /etc/rc.local /usr/local/prometheus/client/node_exporter &
4,访问查看,默认地址:http://ip:9100/metrics
这里主要是一些注释说明和采集到的具体参数,不利于可读性,后边会借助于grafana进行展示。
生产中其他说明:
我们不能手工一个个的去配置,需要用到批量管理,比如saltstack进行批量设置,服务器启动后默认注册到salt,然后根据sls配置文件进行初始化拉起等批量管理操作。