七、Promethus监控系统

本文介绍了普罗米修斯监控系统的必要性,包括实时数据收集、问题检测和优化依据。详细讲解了如何安装和配置Prometheus,以及如何通过node_exporter和mysqld_exporter监控远程主机和MySQL。此外,还介绍了Grafana的可视化功能和与Prometheus的集成,以及如何使用Grafana+onealert进行报警设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、普罗米修斯监控系统

1、为什么需要监控:

① 实时收集数据:监控工具能够实时收集关于系统、应用、网络等各方面的数据,包括性能指标、错误日志、用户行为等。

② 及时发现问题:通过实时数据收集和分析,监控系统能够在问题发生时迅速识别异常。

③ 及时处理:一旦监控系统发现问题,它可以触发报警机制,通知管理员或相关团队。

④ 为优化提供依据:监控数据不仅可以帮助发现问题,还可以为系统优化提供依据。

2、普罗米修斯概述:

Prometheus由go语言开发,是一套开源的监控&报警&时间序列数据库的组合,适合监控docker容器。

时间序列数据 (TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。

二、prometheus实验

1、实验架构:

修改IP、UUID、主机名、hosts文件、时间同步

2、安装prometheus:

(1) 解压:

Prometheus 官方提供了预编译的二进制版本,不需要进行编译,解压后就可以使用。

tar xf prometheus-2.5.0.linuxamd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.5.0.linux-amd64/ /usr/local/prometheus

(2) 启动:

直接使用默认配置文件启动。

Prometheus的配置文件是一个YAML格式的文件,包含了Prometheus的各种配置信息,配置文件放置在/usr/local/prometheus/目录下。

/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &

#指定配置文件的路径,&表示后台运行,不占用终端界面

3、prometheus界面:

浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面:

http://服务器IP:9090/metrics可以查看到监控的数据:

prometheus默认监控本机:

在web界面可以通过关键字查询监控项:

4、监控远程Linux主机:

(1) 在远程linux主机(被监控端agent)上安装node_exporter组件:

node_exporter可以采集服务器的各种资源使用情况,将这些信息提供给Prometheus服务器进行监控和分析。

tar xf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter

(2) 启动node_exporter:

nohup /usr/local/node_exporter/node_exporter &

/usr/local/node_exporter/node_exporter 是node_exporter组件的完整路径;

nohub 命令的作用是即使关闭node_exporter所在的终端,它也会继续运行。

(3) 在prometheus服务器的添加被监控的机器:

在主配置文件添加被监控的机器:

vim /usr/local/prometheus/prometheus.yml

完成配置后重启服务:

pkill prometheus #结束当前普罗米修斯进程
ss -anptl | grep 9090 #确认端口没有进程占用
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
ss -anptl | grep 9090

在web界面查看是否有新增监控主机:

5、监控远程MySQL:

(1) 在被管理机agent上安装mysqld_exporter组件:

mysqld_exporter提供了一组用于采集MySQL性能指标的接口,通过将mysqld_exporter与Prometheus结合使用,可以监控MySQL数据库的性能。

tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter

(2) 在agent上安装mariadb并授权:

安装:

yum install mariadb\* -y #安装mariadb客户端和服务器端
systemctl start mariadb
systemctl enable mariadb

创建授权用户:

创建一个名为mysql_monitor的用户,允许该用户从本地主机连接到MySQL服务器,同时设置了用户的密码为123。

mysql

grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';
flush privileges;
quit;

(3) 创建mysql_exporter配置文件:

创建一个mysql_exporter配置文件,写上连接数据库的用户名与密码:

vim /usr/local/mysqld_exporter/.my.cnf

[client]
user=mysql_monitor
password=123

启动mysql_exporter:

nohup /usr/local/mysqld_exporter/mysqld_exporter --config.mycnf=/usr/local/mysqld_exporter/.my.cnf &

(4) 在prometheus服务器的添加被监控的数据库:

prometheus服务器 → mysql_exporter → mariadb

vim /usr/local/prometheus/prometheus.yml

配置完后重新启动prometheus服务。

(5) 在web界面查看mariadb监控项:

三、Grafana可视化图形工具

1、什么是Grafana:

Grafana是一个开源的度量分析和可视化工具,它允许用户查询、可视化、告警和探索来自多种数据源(如 Prometheus、InfluxDB、MySQL、Elasticsearch、OpenTSDB 等)的实时和历史数据,进行可视化的展示,并且能实现报警。

2、使用Grafana连接Prometheus:

(1) 在grafana服务器上安装grafana:

yum install -y grafana-5.3.4-1.x86_64.rpm
systemctl start grafana-server
systemctl enable grafana-server

(2) 浏览器访问http://grafana服务器IP:3000:

默认用户名和密码都是 admin

使用默认密码登录进去后需要修改密码:

3、Grafana关联Prometheus数据:

(1) Grafana添加Prometheus数据源:

把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得到prometheus的数据。

设置普罗米修斯数据源,设置完毕后点击save:

(2) 查看添加的数据源:

点击此处即可查看到已添加的数据源。

(3) 为添加好的数据提供图形显示:

进入dashboard:

增加图形,选择需要呈现图形的数据 (Edit):

(4) 匹配特定监控项:

默认情况下该图像会收集普罗米修斯服务器所有的监控数据,也可以通过设置条件匹配特定的监控项

4、Grafana显示MySQL监控数据:

(1) 下载安装mysql监控的dashboard

MySQL 监控 Dashboard 的 JSON 文件通常可以从 Grafana 的官方 Dashboard 库获取。这些 JSON 文件包含了 Dashboard 的布局、查询、面板配置等信息。

MySQL Overview | Grafana Labs

(2) 在grafana图形界面导入相关json文件:

在import界面导入下载的JSON文件,选择数据源为Metrics,还需要将之前所设置的数据源由prometheus_data改为Metrics。(3) 查看监控信息:

进入Dashboard,点击New dashboard,可看到导入的MySQL监控模版。

四、Grafana+onealert报警

1、onealert报警平台:

OneAlert报警平台是一个集告警接入、告警收敛、告警通知、告警处理、告警分析为一体的统一管理平台。

https://caweb.aiops.com

在集成的监控工具中可以选择grafana进行监控操作。

2、Grafana配置:

(1) 在Grafana中配置Webhook URL:

在Grafana中创建Notification channel (报警通道),选择类型为Webhook。

Webhook是一个接收HTTP POST(或GET, PUT, DELETE)的URL,当事件发生时,Webhook的API提供商会向这个配置好的URL发送一条信息。

URL格式:http://api.aiops.com/alert/api/event/grafana/v1/<AppKey>/

可以先点击Send Test查看邮箱是否收到告警信息,再点击Save。

(2) 将配置的Webhook Notification channel添加到Grafana alert中:

设置报警信息和报警通道,设置完毕后点击保存。

当Grafana满足了预警规则的条件时,就会触发预警。

Grafana会向配置的Webhook发送POST请求,这个POST请求包含了预警的详细信息,如触发条件、时间戳、相关数据等。

接收预警数据的应用程序(onealert)会根据需要解析数据、处理数据,并根据配置发送相应的通知,如电子邮件等。

### 使用 Prometheus 监控 Kafka 的配置教程 #### 1. 准备工作 为了实现对Kafka的有效监控,需先准备好必要的组件。这包括Prometheus本身、用于收集JMX数据的`jmx_exporter`以及可视化工具Grafana[^1]。 对于`jmx_exporter`而言,其作用是从Java应用程序中提取性能指标并将其转换成Prometheus能够理解的数据格式。具体来说,在Kafka环境中,该组件会连接到各个Broker实例上的JMX接口来获取内部运行状态的信息[^2]。 #### 2. 安装 `jmx_exporter` 下载适合目标系统的版本,并按照官方文档说明完成安装过程。通常情况下,只需将jar包放置于合适位置,并调整启动参数使Kafka服务能加载此插件即可[^3]。 ```bash java -javaagent:/path/to/jmx_prometheus_javaagent.jar=7070:/path/to/config.yaml \ -Xms1g -Xmx1g -XX:NewSize=512m ... (其余原有命令行选项保持不变) ``` 上述脚本中的路径应替换为实际环境下的相应值;端口号7070可以根据实际情况更改,但要确保不与其他应用冲突。 #### 3. 配置 Prometheus 抓取任务 编辑Prometheus配置文件(`prometheus.yml`),增加一个新的抓取作业(job),指向之前设置好的`jmx_exporter`监听地址: ```yaml scrape_configs: - job_name: 'kafka' static_configs: - targets: ['localhost:7070'] # 如果有多个节点,则在此处添加更多条目 ``` 这段YAML定义了一个名为'kafka'的任务,它定期访问指定的目标列表以拉取最新度量信息。注意这里的端口应当匹配前面提到过的`jmx_exporter`所使用的那个[^4]。 #### 4. 启动与验证 重启所有涉及的服务(即Kafka Broker和服务发现机制),让新的配置生效。接着可以通过浏览器直接访问http://<PROMETHEUS_HOST>:9090/metrics查看是否有来自Kafka的相关统计项被成功采集到了平台之上。 最后一步就是利用像Grafana这样的前端展示软件创建仪表板,以便更直观地观察这些关键绩效指标的变化趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值