为内网的所有主机打造一个综合性能看板,还挺酷的
说到数据看板,很多人马上想到Grafana+Prometheus的组合。没错!这次也不例外。
之前我就介绍过通过Docker搭建Grafana+Prometheus+node_exporter的组合作为主机的性能看板,这个方案非常成熟,我也一直在用。不过随着我折腾的设备种类越来越多,也遇到了一个新问题:通过Docker部署应用确实很方便,但如果设备性能太弱、或者处理器指令集特殊,那么Docker部署就显得太臃肿甚至无法部署。比如arm指令集的redmi2,mipsel指令集的路由器……所以得调整一下方案。
在云服务器用docker部署的Prometheus+Grafana保留,主要用于收集各个主机的信息以图表呈现,方便在任何时候查看。内网每个主机上的node_exporter全部采用直接安装的方式部署。
根据设备处理器的指令集下载对应node_exporter版本,或者直接下载源码编译,由于某些原因大家只能自己去找源码,我这里放不了地址:
#解压node_exr并复制到bin目录
tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gz
sudo cp node node_exporter /bin/node_exporter
#后台运行node_exporter
nohup node_exporter
这时 node_exporter已经正常工作了,通过IP:9100即可访问。
另外windows系统可以用这个版本的node_exporter,windows_exporter。直接下载exe文件运行即可,注意windows版本的端口是9182,配置Prometheus时要注意。
通过docker安装Prometheus最为简单:
#我一般把dockers设置文件都放在一个文件夹/home/set
sudo mkdir -p /home/set/prometheus
cd /home/set/prometheus
sudo vim prometheus.yml
sudo docker run -d --name prometheus
--restart=always
-p 9090:9090
-v /home/set/prometheus/config:/etc/prometheus
prom/prometheus
配置promtheus.yaml文件,把node_exporter的地址全部添加进去:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
#采集node exporter监控数据
- job_name: 'xzj'
static_configs:
- targets: ['192.168.192.3:9100']
- job_name: 'redmi2'
static_configs:
- targets: ['192.168.192.6:9100']
- job_name: 'zj'
static_configs:
- targets: ['192.168.192.11:9182']
通过docker安装grafana也最为简单:
sudo mkdir -p /home/set/grafana
sudo chmod 777 -R /home/set/grafana
#需要授予权限,不然启动异常
sudo docker run -d
-p 3000:3000
--restart=always
--name=grafana
-v /home/set/grafana:/var/lib/grafana
grafana/grafana
添加IP:9090为数据源,然后通过IP3000访问grafana,我推荐用这个主题展示数据:
https://grafana.com/grafana/dashboards/8919/revisions
看一下效果,因为我通过zerotier把云服务器和内网的主机都搭建在一个虚拟局域网里。所以后台可以直接采集内网数据,在外网可以通过云服务器访问数据:
最后把各个主机的node_exporter设置为自启动,windows平台最简单把exe文件设置开机自启动即可。Linux系统可以通过脚本自启动,或者把node_exporter设置为服务进行自启动管理。
Ubuntu新建服务
sudo vim /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Restart=on-failure
ExecStart=/bin/node_exporter
[Install]
WantedBy=multi-user.target
#运行服务并自启动
systemctl enable node_exporter
systemctl start node_exporter
Alpine Linux新建服务
vim /etc/init.d/node_exporter
#!/sbin/openrc-run
name="node_exporter"
command="/bin/node_exporter"
command_background="yes"
depend() {
after sshd
}
#运行服务并自启动
rc-update add node_exporter
rc-service node_exporter start
看一看觉得很酷其实没什么用,Prometheus真正实用的应该是自定义数据监控和异常报警,那个才是精髓。这个权当入门实践吧。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~




校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
脑子:会了
手:?
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
脑子:会了
手:?
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案