为内网的所有主机打造一个综合性能看板,还挺酷的

2022-03-05 18:21:43 95点赞 793收藏 21评论

说到数据看板,很多人马上想到Grafana+Prometheus的组合。没错!这次也不例外。

下面分别是云服务器红米2手机、N4100小主机的看板:

为内网的所有主机打造一个综合性能看板,还挺酷的

为内网的所有主机打造一个综合性能看板,还挺酷的

为内网的所有主机打造一个综合性能看板,还挺酷的

之前我就介绍过通过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真正实用的应该是自定义数据监控和异常报警,那个才是精髓。这个权当入门实践吧。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
21评论

  • 精彩
  • 最新
  • 看一看觉得很酷其实没什么用,直接打消我准备折腾的念头

    校验提示文案

    提交
  • 好看但。。

    校验提示文案

    提交
  • 看着很帅,希望更新小白教程 [高兴] ,感谢

    校验提示文案

    提交
  • 这个看着牛逼啊,继续,详细点

    校验提示文案

    提交
  • 收藏了,哈哈哈

    校验提示文案

    提交
  • service应该先systemctl daemon-reload然后再systemctl enable xx.service —now

    校验提示文案

    提交
  • 来个威联通详细点的教程啊

    校验提示文案

    提交
  • 我想知道,这个有啥用?

    校验提示文案

    提交
    我估计是家里有几十台24小时开着的服务器,上边跑着大量重要的应用,或许有生产环境的微服务,兴许全套DevOps也部署上了,只写了冰山一角

    校验提示文案

    提交
    可能还有个k8s的集群,哈哈

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 详细点呗 老板

    校验提示文案

    提交
  • 眼睛:会了
    脑子:会了
    手:?

    校验提示文案

    提交
  • 装了又卸了,家庭基本用不上,装了个uptime-kuma简单监控一下网络 [不说话]

    校验提示文案

    提交
  • 收藏了,虽然看不懂

    校验提示文案

    提交
  • 手机上servercat也可以 界面比这个简洁明了 不过linux 主机太稳 现在很少查看状态

    校验提示文案

    提交
  • 这是smzdm,不是csdn

    校验提示文案

    提交
  • 不明觉厉哦 [皱眉]

    校验提示文案

    提交
  • 思路很好,实用性有待加强。

    校验提示文案

    提交
  • 你敢信,在张大妈这还能学普罗米修斯

    校验提示文案

    提交
  • 问下楼主 搭建环境是群晖 然后用的docker搭建的grafana 但是搭建好以后打不开是怎么回事 改了端口 从3000改成了3001 是这个的问题吗

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
793
扫一下,分享更方便,购买更轻松