前言
最近公司有对服务器进行性能监控的需求在查阅大量资料后。本人将从零开始一步步演示在Centos上搭建监控系统平台
1. node_exporter
为监控线上服务器CPU、内存、磁盘、IO等信息需要借助node_exporter完成以上机器信息收集在下面你将会了解到:
- 本地搭建一个node_exporter
- 将搭建好的node_exporter与prometheus配合使用
我们可以从github查找自己需要的node_exporter版本进行下载。

下载地址如下:
wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz
解压安装:
tar -zxvf node_exporter-0.18.1.linux-amd64.tar.gz -C /soft/service
mv node_exporter-0.18.1.linux-amd64 node_exporter
进入node_exporter目录运行服务:
cd node_exporter
./node_exporter
启动后你将会看到下面的显示的界面且可以清晰看到此服务运行绑定端口号为9100如下所示:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXAzbciG-1590235006889)(/Users/codegeekgao/Library/Application Support/typora-user-images/image-20200523160301303.png)]](https://i-blog.csdnimg.cn/blog_migrate/76273e4153fdd095020d93aa2b185a3c.png)
浏览器可以访问此端口以查看效果(需开放此端口或者关闭防火墙):

2. prometheus
Prometheus是一个开源的系统监控和警报工具包,rometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。
官方文档展示的架构图如下所示:

官方下载地址:https://prometheus.io/download/
下载prometheus安装包:
wget https://github.com/prometheus/prometheus/releases/download/v2.18.1/prometheus-2.18.1.linux-amd64.tar.gz
解压安装:
tar -zxvf prometheus-2.18.1.linux-amd64.tar.gz -C /soft/service
mv prometheus-2.18.1.linux-amd64 prometheus
配置 prometheus监控目标:
cd prometheus
vim prometheus.yml
在配置文件中添加如下内容:
- job_name: 'export_test2'
static_configs:
- targets: ['10.211.55.5:9100']
labels:
instance: 'node2'
然后我们浏览器访问此9100端口如果出现以下界面,恭喜你已经成功安装好了prometheus。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmNkml5z-1590235006895)(/Users/codegeekgao/Library/Application Support/typora-user-images/image-20200523162721718.png)]](https://i-blog.csdnimg.cn/blog_migrate/54c9e670308378f693a692b28a567d91.png)
然后我们输入一个 node_cpu_seconds_total 命令并点击Execute 查看是否有数据输出如下所示:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l7NMS9wQ-1590235006897)(/Users/codegeekgao/Library/Application Support/typora-user-images/image-20200523163137768.png)]](https://i-blog.csdnimg.cn/blog_migrate/a2f2f2f45587eab65a7c2d9f8ce9cc10.png)
注意事项
-
prometheus默认采用的是本地磁盘做数据存储,本地存储的优势就是运维简单但是缺点就是无法海量的metrics持久化和数据存在丢失的风险,数据写入可能造成wal文件损坏导致采集数据无法再写入的问题。
-
为了解决单节点存储的限制,prometheus没有自己实现集群存储,而是提供了远程读写的接口,让用户自己选择合适的时序数据库来实现prometheus的扩展性。
-
Prometheus 提供接口将数据写入到第三方存储系统亦提供接口读取第三方存储系统存储的数据原理如下所示:

接下来我们将node_exporter收集到Prometheus的数据持久化到influxdb数据库中。
3. influxdb
InfluxDB(时序数据库)常用的一种使用场景:服务器监控数据统计然后将数据统计汇总并借助Grafana进行图形化展示
官方下载地址:https://portal.influxdata.com/downloads/

下载安装包:

本文详细介绍如何在Centos上从零开始搭建服务器性能监控系统,包括node_exporter、prometheus、influxdb和grafana的安装配置过程,以及解决prometheus数据持久化问题。
最低0.47元/天 解锁文章
1349





