作为linux系统运维人员,需要实时掌握linux系统的运行负载,网络状态,磁盘,内存使用情况。所以作为开源监控警报系统prometheus, 官方自然给大家提供了这样一套工具,可以监控多个服务器的实时运行状况,以及实时警告。
Prometheus提供了node_exporter给广大运维人员使用,这是一个相当强大,且统计全面的工具。https://github.com/prometheus/node_exporter, 这个是node_exporter的github地址。
启动node_exporter非常简单,官方提供了docker镜像给我们使用,我们只需要简单的命令就可以把node_exporter启动起来。
$ docker run -d --net="host" --pid="host" -v "/:/host:ro,rslave" quay.io/prometheus/node-exporter --path.rootfs /host
net指定host,表示我们启动的container共享主机的网络信息,可以直接访问主机上的网络信息。
pid指定host,container里面可以获取主机上的所有进程运行信息。
同时,为了了解文件系统的信息,需要把物理机的根目录/挂载到docker的/host目录,并告诉node_exporter容器,在container里面哪个是物理机的根目录,在这里就是/host。
启动之后,node_exporter默认监听的端口是9100,这个时候我们就可以直接测试metrics是否可以拿到。
$ curl http://127.0.0.1:9100/metrics
这时候我们就会拿到node_exporter所有的metrics。
接下来,需要配置prometheus去哪里采集node_exporter的metrics信息,添加target到prometheus里面。
![b148ea0f549dfaa25fdf1335aa114da8.png](https://img-blog.csdnimg.cn/img_convert/b148ea0f549dfaa25fdf1335aa114da8.png)
添加node exporter目标
这里我们添加了一个新的targets用于采集node_exporter的metrics。
然后,我们需要添加官方提供node_exporter的grafana dashboard。
https://grafana.com/dashboards/1860
![237895b5518c805df90ab2ed86ca18b3.png](https://img-blog.csdnimg.cn/img_convert/237895b5518c805df90ab2ed86ca18b3.png)
node_exporter dashboard
点击右边的Copy ID to clipboard.或者是download json文件。
![730a4bb13f014951d58bef767e7d2bbb.png](https://img-blog.csdnimg.cn/img_convert/730a4bb13f014951d58bef767e7d2bbb.png)
导入新的dashboard
![a4b6b0e3f7d33abdc26391ac290697ba.png](https://img-blog.csdnimg.cn/img_convert/a4b6b0e3f7d33abdc26391ac290697ba.png)
拷贝ID到表单里
![ea6d0216465a81987cdc7e279ba91bdc.png](https://img-blog.csdnimg.cn/img_convert/ea6d0216465a81987cdc7e279ba91bdc.png)
grafana自动从官网的仓库中,下载json文件,选择数据源。
![6501632095f42a4f9c40806037d590e5.png](https://img-blog.csdnimg.cn/img_convert/6501632095f42a4f9c40806037d590e5.png)
服务运行状况图表
![cffe7c39bee49e9f389664ab8c22a364.png](https://img-blog.csdnimg.cn/img_convert/cffe7c39bee49e9f389664ab8c22a364.png)
监控的层面
然后我们可以看到在grafana新建的dashboard中,会出现从各个层面拿到的实时的运行状态的数据。后面我们就可以通过grafana的alert或是prometheus的alertmanager组件来根据设定好的阈值来发警告给运维人员。