家庭服务器 篇十二:为内网的所有主机打造一个综合性能看板,还挺酷的
说到数据看板,很多人马上想到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真正实用的应该是自定义数据监控和异常报警,那个才是精髓。这个权当入门实践吧。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
xinbs
校验提示文案
西北有高楼i
校验提示文案
买买买买小能手
校验提示文案
敲和尚的小木鱼
校验提示文案
小小小tiny
校验提示文案
大晴aibaicai
校验提示文案
_b24
校验提示文案
懒小元
校验提示文案
神龍
校验提示文案
值友2500968789
脑子:会了
手:?
校验提示文案
值友8244665720
校验提示文案
飞行蛐蛐
校验提示文案
wangmillion2009
校验提示文案
值友3477070752
校验提示文案
奥买告
校验提示文案
孤星Y2K
校验提示文案
我不慌
校验提示文案
值友4829224702
校验提示文案
值友4829224702
校验提示文案
我不慌
校验提示文案
孤星Y2K
校验提示文案
奥买告
校验提示文案
值友3477070752
校验提示文案
西北有高楼i
校验提示文案
wangmillion2009
校验提示文案
飞行蛐蛐
校验提示文案
值友8244665720
校验提示文案
值友2500968789
脑子:会了
手:?
校验提示文案
神龍
校验提示文案
懒小元
校验提示文案
_b24
校验提示文案
大晴aibaicai
校验提示文案
xinbs
校验提示文案
小小小tiny
校验提示文案
敲和尚的小木鱼
校验提示文案
买买买买小能手
校验提示文案