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/
? 公司大牛写的部署文档

原文地址:https://blog.51cto.com/jiayimeng/2380214

时间: 2024-10-04 15:55:31

Grafana+prometheus监控体系实践的相关文章

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

项目中需要监控系统指标(JVM,CPU,IO,MySQL等),这时候可以使用Prometheus来做.如果是需要监控日志系统,可以使用ELK stack.监控=日志(ELK)+指标(Prometheus). step1 编写springboot2程序 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</art

Grafana+Prometheus监控mysql性能

#cmd /usr/local 今天讲一下如何监控服务器中的mysql数据库的性能 一.数据库操作 1.mysql启动 #service mysqld start #启动数据库 #service mysqld stop #关闭数据库 #service mysqld restart #重启数据库 2.进入 mysql mysql -u root -p 3.新增监控 mysql 账号 #use mysql #GRANT ALL PRIVILEGES ON *.* TO '帐号'@'localhost

Prometheus+Grafana监控部署实践

参考文档: Prometheus github:https://github.com/prometheus grafana github:https://github.com/grafana/grafana Prometheus getting_started:https://prometheus.io/docs/prometheus/latest/getting_started/ Prometheus node_exporter:https://github.com/prometheus/no

使用Prometheus+Grafana监控MySQL实践

Grafana+Prometheus打造全方位立体监控系统 一.介绍Prometheus Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Promet

Prometheus Grafana监控全方位实践

这次就不用 docker 部署服务了,这样大家会更容易接受.欢迎阅读. 引言 Prometheus 是一个监控系统,也是一个时间序列数据库,用Go语言开发的,官方文档.通过从某些特定的目标如主机,Mysql,Redis等,收集带有时间标记的一些指标(metrics),比如服务器内存情况,数据库连接数量等数据,经过一定的处理,按照时间序列顺序进行显示. 你可以配置规则,对这些指标进行处理,当某些指标符合某种规则,会触发报警等.项目地址: https://github.com/prometheus/

2019最新 prometheus视频教程 prometheus监控视频 prometheus入门与实践教程

┣━━prometheus-3 [15.6G]┃ ┣━━01.监控介绍.mov [989.9M]┃ ┣━━prometheus1-5.pdf [2.3M]┃ ┣━━03.prometheus数据及安全模型介绍.mov [336.9M]┃ ┣━━04.prometheus在centos7上安装.mov [364.6M]┃ ┣━━05.prometheus在docker容器中运行.mov [283.2M]┃ ┣━━06.使用Node-exporter监控节点.mov [1.2G]┃ ┣━━07.使用

快速接入业务监控体系,grafana监控的艺术

做一个系统,如果不做监控,是不完善的. 如果为做一个快速系统,花力气去做监控,是不值得的. 因为,我们有必要具备一个能够快速建立监控体系的能力.即使你只是一个普通开发人员! 个人觉得,做监控有三个核心能力: 1. 持续收集数据的能力; (时间序列数据库) 2. 监控结果可视化的能力; 3. 异常监控可报警的能力; 只要把这三点做到了,那么,这个监控基本就成功了. 既然自己不方便做监控系统,那就只要好框架造型就可以了. 因grafana的图表功能个人感觉最强大,我们就以 grafana 作为监控抓

基于grafana+prometheus构建Flink监控

先上一个架构图: Flink App : 通过report 将数据发出去 Pushgateway :  Prometheus 生态中一个重要工具 Prometheus :  一套开源的系统监控报警框架 (Prometheus 入门与实践) Grafana: 一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知(可视化工具Grafana:简介及安装) Node_exporter : 跟Pushgateway一样是Prometheus 的组件,采集到主机的运行

Prometheus监控系列最佳实践

Prometheus是继kubernetes第二个从CNCF中毕业的项目,个人也是非常的喜欢这款通过数据指标发现和预测告警的开源监控平台,官方的话就不多说了,根据官网的介绍有以下功能,但是有些简短的概括了你也不一定知道,所以加了一些个人的白话官方截图 Prometheus之白话文一段 实现高纬度的数据模型 时间序列数据通过 metric 名和键值对来区分,这里你可以区分多(隔离)环境的监控指标. 所有的 metrics 都可以设置任意的多维标签,可以自定义添加多个,比如这个服务的监控属于哪个团队