Grafana+prometheus监控体系实践

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grafana+prometheus监控体系实践相关的知识,希望对你有一定的参考价值。

一、前言

1.1、grafana介绍

Grafana是一个开源指标分析和可视化套件,常用于可视化基础设施的性能数据和应用程序分析的时间序列数据。也可以应用于其他领域,包括工业传感器,家庭自动化,天气和过程控制。但请注意,我们使用Grafana最关心的是如何把数据进行聚合后进行展示。
Grafana支持多种不同的时序数据库数据源,Grafana对每种数据源提供不同的查询方法,而且能很好的支持每种数据源的特性。它支持下面几种数据源:Graphite、Elasticsearch、CloudWatch、InfluxDB、OpenTSDB、Prometheus、mysql、Postgres、Microsoft SQL Server (MSSQL)。每种数据源都有相应的文档,可以将多个数据源的数据合并到一个单独的仪表板上。

1.2、Prometheus介绍

Prometheus是一个开源监控系统,集数据采集、存储与展示为一体,功能十分强大,官网架构图如下
技术图片
架构图中各模块功能解析:
Prometheus Server:Prometheus Sever是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储及查询
Exporters:Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的Endpoint端点,即可以获取到需要采集的监控数据
Alertmanager:实现prometheus的告警功能
webui:通过grafana来实现webui展示
PushGateway:Prometheus数据采集基于Prometheus Server从Exporter pull数据,因此当网络环境不允许Prometheus Server和Exporter进行通信时,可以使用PushGateway来进行中转。通过PushGateway将内部网络的监控数据主动Push到Gateway中,Prometheus Server采用针对Exporter同样的方式,将监控数据从PushGateway pull到Prometheus Server。

1.3、监控流程

Prometheus从exporters中收取数据并入库,grafana从prometheus中提取数据图表展示

1.4、准备工作

节点:
Node1:192.168.143.130 Prometheus server & grafana
Node2:192.168.143.131 node_exporter

软件版本:
Granafa 5.3.2
Prometheus 2.5.0

二、部署Grafana+prometheus

2.1、安装Grafana+prometheus(server)

Node1:
rpm -ivh grafana-5.3.2-1.x86_64.rpm 
tar xzf  prometheus-2.5.0.tar.gz -C /usr/local/ 

2.2、编辑prometheus配置文件,加入被监控主机node2

vim prometheus.yml

scrape_configs:
  - job_name: ‘node2_sys‘
    static_configs:
    - targets: [‘192.168.143.131:9100‘] 

2.3、添加用户

groupadd prometheus
useradd -g prometheus -s /sbin/nologin prometheus
chown -R prometheus:prometheus /usr/local/prometheus-2.5.0/

2.4、启动脚本

vim start.sh 
#!/bin/bash
#
./prometheus --config.file=prometheus.yml >>Prometheus.log &>/dev/null &

2.5、启动Grafana+prometheus

prometheus:./start.sh
Grafana:systemctl start grafana-server.service

三、部署node_exporter

3.1、安装node_exporter(client)

Node2:
tar xzf node_exporter.tar.gz -C /usr/local/

3.2、添加用户

groupadd prometheus
useradd -g prometheus -s /sbin/nologin prometheus
chown -R prometheus:prometheus /usr/local/node_exporter/

3.3、添加开机启动

vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9100 --collector.textfile.directory=/usr/local/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

3.4、启动node_exporter

systemctl start node_exporter.service
systemctl enable node_exporter.service

四、grafana界面设置

4.1、prometheus-ui查看监控数据

url:http://192.168.143.130:9090
技术图片
根据输入的key找到你要监控的数据,Element下面的是向grafana上添加的公式

4.2、grafana添加数据源

url: http://192.168.143.130:3000
默认用户名密码admin
技术图片
添加DataSource,type中选择prometheus,url中输入prometheus地址,name中输入该DataSource名称,保存
技术图片

4.3、添加dashboard

技术图片

4.4、添加graph

技术图片

4.5、编辑graph

技术图片

在DataSource选择添加好的数据源,在空白处填入监控公式
技术图片

4.6、使用网络中现有的表盘模版

import导入
技术图片
输入表盘模版url: https://grafana.com/dashboards/8919
技术图片
选择数据源
技术图片

技术图片

五、自定义监控脚本

5.1、启动时加参数定义监控脚本采集信息输出目录

启动时加参数--collector.textfile.directory

[[email protected] node_exporter]# cat /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter --web.listen-address=:9100 --collector.textfile.directory=/usr/local/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

5.2、自定义监控脚本

[[email protected] node_exporter]# cat mysql_status.sh 
#!/bin/bash
systemctl status mariadb.service |grep running &>/dev/null
if [ $? -eq 0 ];then
    echo "mysql_status 0"
else 
    echo "mysql_status 1"
fi

5.3、脚本输出格式

后缀为.prom,文件中存自定义的key value值
./mysql_status.sh >mysql_status.prom

5.4、prometheus以采集到mysql_status信息

技术图片

5.5、grafana添加图表

技术图片

参考文章
? Prometheus github:https://github.com/prometheus
? grafana github:https://github.com/grafana/grafana
? Prometheus node_exporter:https://github.com/prometheus/node_exporter
? Prometheus配置文件详解:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
? 公司大牛写的部署文档

以上是关于Grafana+prometheus监控体系实践的主要内容,如果未能解决你的问题,请参考以下文章

springboot2+exporter+prometheus+grafana搭建监控体系

使用Prometheus+Grafana监控MySQL实践

Kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(Kubernetes工作实践类)

Prometheus + consul + grafana 监控体系搭建1

Prometheus + consul + grafana 监控体系搭建1

Kubernetes第七篇:使用kubernetes部署prometheus+grafana监控系统(Kubernetes工作实践类)