一、简介
Prometheus 是一个开源的系统监控和警报工具。它最初由 SoundCloud 开发,并于 2012 年发布为开源项目。Prometheus 专注于收集和存储时间序列数据,并提供强大的查询语言和灵活的警报机制。
Prometheus 可以用于以下几个方面:
-
系统监控:Prometheus 可以收集和存储各种系统指标,如 CPU 使用率、内存使用量、磁盘空间、网络流量等。它可以帮助您监控和分析系统的性能和资源使用情况,以及识别潜在的问题和瓶颈。
-
应用程序监控:Prometheus 可以与应用程序集成,收集和存储应用程序的指标数据,如请求处理时间、错误率、数据库查询次数等。通过监控应用程序的关键指标,您可以了解应用程序的运行状况,并及时发现和解决问题。
-
容器监控:Prometheus 对于容器化环境非常适用。它可以监控和收集容器的指标数据,如 CPU 使用率、内存使用量、网络流量等。通过与容器编排工具(如 Kubernetes)集成,Prometheus 可以自动发现和监控容器化应用程序,并提供详细的容器级别的监控和警报。
-
分布式系统监控:Prometheus 支持分布式系统的监控和警报。它可以收集和存储分布式系统的指标数据,并提供灵活的查询和聚合功能。通过监控分布式系统的关键指标,您可以了解系统的整体性能和健康状况,并及时发现和解决问题。
-
警报和通知:Prometheus 具有强大的警报机制,可以根据用户定义的规则和阈值对监控数据进行警报。它支持多种通知方式,如电子邮件、Slack、PagerDuty 等,以便及时通知用户有关系统状态的变化。
总的来说,Prometheus 是一个功能强大且灵活的监控和警报工具,适用于各种规模和类型的环境。它可以帮助您监控系统和应用程序的性能和健康状况,并及时发现和解决问题,从而提高系统的可靠性和稳定性。
2、什么是 Exporter?
所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter。而Exporter的一个示例称为target,如下所示,prometheus通过轮询的方式定期从这些target中获取样本数据。
Prometheus Exporter 是一种用于暴露指标(metrics)的软件组件或库,以便 Prometheus 监控系统能够收集和存储这些指标数据。Exporter 可以将不同的服务、应用程序或系统的状态信息以指定的格式暴露出来,例如 HTTP、JSON、Text 等。
Exporter 可以通过采集各种类型的指标,如 CPU 使用率、内存使用量、网络流量等,将这些指标暴露给 Prometheus 进行监控。Prometheus 会定期从 Exporter 获取指标数据,并存储、查询和可视化这些数据,以帮助用户了解系统的运行情况和性能指标。
Prometheus Exporter 有很多种类,涵盖了各种不同的应用和服务,例如 Node Exporter(用于主机监控)、Blackbox Exporter(用于网络监控)、MySQL Exporter(用于数据库监控)等。用户也可以编写自己的 Exporter,根据需要暴露自定义的指标数据。
二、下载安装
下载链接: https://prometheus.io/download/
1、安装 prometheus
选择LTS标识下的文件
window双击prometheus.exe,即可运行
Linux安装:
解压:tar -zxvf prometheus-2.45.3.linux-amd64.tar.gz
启动输入命名:./prometheus --config.file=prometheus.yml
即可启动
或 nohup ./prometheus --config.file=prometheus.yml > prometheus.out 2>&1 &
如需修改默认端口,修改prometheus.yml
文件
访问http://localhost:9090
访问监控指标:http://124.222.184.245:9090/metrics
2、安装 alertmanager
在prometheus下载地址的下面
Alertmanager是一个开源的软件组件,用于处理和路由来自监控系统(如Prometheus)发送的警报。它作为一个中心化的组件,负责接收、处理和通知监控系统产生的警报。
Alertmanager可以根据配置文件中定义的规则对警报进行分类、去重和分组,并将其发送给相应的接收者,如电子邮件、短信、Slack等。它还支持静默和抑制警报,以避免过度通知。
Alertmanager具有高度可扩展性和灵活性,可以与多种监控系统以及第三方集成,使得警报管理变得更加简单和可靠。它在监控系统中起到了至关重要的作用,帮助运维人员及时发现和解决问题。
安装步骤跟prometheus一致,解压后 tar -zxvf alertmanager-0.26.0.linux-amd64.tar.gz,输入:./alertmanager --config.file=alertmanager.yml
访问http://localhost:9093
3、Alertmanager安装好后,修改prometheus配置,prometheus.yml
4、添加告警配置:还是在prometheus.yml配置文件下,rule_files下添加yml
在prometheus.yml配置同级新建,alert.yml
groups:
- name: Prometheus alert
rules:
#对任何实例超过30s无法联系的情况发出警报
- alert: 服务告警
expr: up == 0
for: 30s
labels:
severity: critica1
annotations:
instance: "{{ $labels.instance }}"
description: "{{ $labels.job }}服务已关闭"
5、检查配置文件是否有问题,在prometheus启动文件同级: ./prometool check config prometheus.yml
以下显示是配置成功
6、重启 prometheus
3、安装 grafana
下载链接: https://grafana.com/grafana/download?pg=get&platform=linux&plcmt=selfmanaged-box1-cta1
安装命令:
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.1-1.x86_64.rpm
启动命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable grafana-server.service
sudo /bin/systemctl start grafana-server.service
访问:http://localhost:3000
默认账密:admin / admin
4、安装 node_exporter
同样在prometheus下载的地址下载
解压:tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz
后台运行命令:nohup ./node_exporter > nodeout.file 2>&1 &
访问测试:http://localhost:9100/metrics
修改prometheus.yml配置:
在scrape_confi这行下面添加如下配置:
- job_name: 'node-exporter'
scrape_interval: 15s
static_configs:
- targets: ["localhost:9100"]
labels:
instance: prometheus服务器
重启prometheus,进入prometheus菜单,targets下
4.1、添加prometheus数据源,并添加node_exportert 到grafana界面
添加完地址,直接到最下面保存
打开grafana官网下载仪表板
下载链接: https://grafana.com/grafana/dashboards
点进去后,点击 copy id to clipboard
再次打开grafana界面,点击dashboards
选择导入
点击导入,即可出现界面
5、安装 mysqld_exporter
同样在prometheus下载的地址下载
解压:tar -zxvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
新建连接数据库配置文件
# 1、编辑新建配置
vim mysqld_exporter.cnf
# 2、拷贝配置
[client]
user=用户名
password=密码
host=localhost
port=3306
后台运行命令:nohup ./mysqld_exporter --config.my-cnf=mysqld_exporter.cnf &
访问测试:http://localhost:9104/metrics
修改prometheus.yml配置:
在scrape_confi这行下面添加如下配置:
- job_name: 'mysqld-exporter'
scrape_interval: 15s
static_configs:
- targets: ["localhost:9104"]
labels:
instance: mysql服务器
重启prometheus,进入prometheus菜单,targets下
5.1、添加prometheus数据源,并添加mysqld_exportert 到grafana界面
打开grafana官网下载仪表板
下载链接: https://grafana.com/grafana/dashboards
点进去后,点击 copy id to clipboard
再次打开grafana界面,点击dashboards
选择导入
点击导入,即可出现界面