Linux集群监控部署: prometheus 普罗米修斯 + Grafana

发布时间 2023-07-31 15:06:29作者: 7dao

前言

  之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具 – prometheus。

prometheus 监控原理

  1、prometheus :虽然说是监控平台,但是实际上是一套数据库
  2、mysql_exporter: 可以理解成程序或者软件,他是工作在我们要监控的目标服务器上,主要是用于监控mysql的数据。
  3、node_exporter: 他的作用主要是收集性能测试的数据,如cpu、内存磁盘网络等信息,然后将数据保存到prometheus,相当于将数据存入到数据库中。
  4、prometheus 只能用于做数据存储,不能做展示,因此我们需要用到grafana组件。
  5、grafana 主要是用于数据展示,并且可以做到定时读取数据

部署Linux操作系统监控组件

1.下载监控Linux的exporter (注意选择自己的操作系统,我的操作系统是 Linux CentOS7)
  链接: https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz .

2.将node_exporter包上传到需要被监控的Linux服务器上任意目录下,执行解压命令

  tar xvf node_exporter-0.18.1.linux-amd64.tar.gz
3.进入到解压后的文件夹中,执行启动脚本

  nohup ./node_exporter &

  // 查看nohup日志:tail -100 nohup.out,出现如下日志,代表启动成功
  

 

部署prometheus

1.下载包 :
  链接: https://prometheus.io/download/

2.将prometheus上传到一台单独的Linux机器上,执行解压操作 tar xvf prometheus-2.15.2.linux-amd64.tar.gz

3.进入到解压后的文件夹中,修改配置文件,添加要监控的服务器信息ip

  vi prometheus.yml

4.在scrape_configs配置项下添加Linux监控的job,其中 IP修改为上面部署 node_exporter机器的ip,端口号为9100,注意缩进

- job_name: 'node'
static_configs:
- targets: ['10.0.0.71:9100']

5.保存配置文件,启动prometheus

nohup ./prometheus &
// 检查nohup.out日志,如果有以下信息,启动成功 

6. 在浏览器中访问部署的prometheus:http://{ip}:9090

7.点击菜单栏“Status-Targets”,看到页面中有如下node节点,代表prometheus和node_exporter链接成功

  

 部署Grafana 参考上篇Jmeter+Granfana+InfluxDB配置监控面板

1.点击添加数据源

 2.选择prometheus

  

 3.直接添加监控的服务器ip+端口号,我们之前配置的是默认端口9090,添加点击保存即可,其他的都可以不填。

  

4.导入监控模板
打开 grafana 官网,查找官网提供的 prometheus 监控模板
链接: https://grafana.com/grafana/dashboards/?search=Node+Exporter+for+Prometheus+Dashboard+

 

 复制模板id12377 导入即可

效果展示

  

5. 配置监控多台服务器
实际环境中,现在的系统应用通常不止一台服务器,需要监控多台服务器则需要:

在对应的服务器上安装并启动node_exporter;
在prometheus的配置文件上增加对应服务器的配置;
  vim prometheus.yml



  # 要监控的server1的node_exporter 的 ip 和端口号填上
  - job_name: 'server1'
    static_configs:
    - targets: ['server1的IP:9100']

  # 要监控的server2的node_exporter 的 ip 和端口号填上
  - job_name: 'server2'
    static_configs:
    - targets: ['server2的IP:9100']

然后在grafana的监控页面的Job下拉列表选择对应的server,就能看到对应server的监控数据了:

 mysql监控后续补充