目录
四、Prometheus监控之node_exporter(默认端口9100)
五、Prometheus监控之Alertmanager(默认端口9093)
六. Prometheus监控之MySQL(默认端口9104)
七. Prometheus监控之Redis(默认端口9121)
八. Prometheus监控之Nacos(默认端口8848)
九. Prometheus监控之Sprinboot(默认端口8080)
十、Prometheus监控之Grafana(默认端口3000)
一、Prometheus监控简介
1、市场上主流的开源监控系统基本都是这个流程:
l 数据采集:对监控数据采集
l 数据存储:将监控数据持久化存储,用于历时查询
l 数据分析:数据按需处理,例如阈值对比、聚合
l 数据展示:Web页面展示
l 监控告警:电话,邮件,微信,短信
监控系统的Prometheus类似于一个注册中心,我们可以只需要配置一个Prometheus,而在其他服务器,只需要安装node_exporter,它们的数据流转就是通过exporter采集数据信息,然后告诉prometheus它的位置,在promethues控制端就可以看到监控信息。
2、常用的node节点:
node_exporter 默认端口:9100 //系统级别的监控(如:服务器信息,cup,内存,硬盘,网络等)
mysql默认端口:9104 //mysql监控节点
redis 默认端口:9121 //redis监控节点
alertmanager默认端口:9093 //警告监控节点
3、可参考文档:Grafana监控系统之Prometheus+Grafana监控系统搭建_暗余的博客-CSDN博客_grafana监控
可参考:prometheus-简介及安装 - 云+社区 - 腾讯云
二、Grafana可视化监控简介
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
而Prometheus则存储exporter的信息供Grafana询问;Grafana则负责信息的展示;所以可以只配置一个Prometheus,而其他服务器或者本机的服务器的exporter只需要在这一个Promethes中给出它的job_name,targets地址等信息即可;
简单来讲,它是一个多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面,多种数据源配置是其优点所在;Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;
三、Prometheus监控服务端(默认端口:9090)
1、prometheus服务端安装
官网下载地址:Download | Prometheus
2、下载版本并解压到指定目录
[root@CentOS7-0001 install]# wget -r -p -np -k -nc -c https://github.com/prometheus/prometheus/releases/download/v2.33.3/prometheus-2.33.3.linux-amd64.tar.gz
[root@CentOS7-0001 install]# tar -zxvf prometheus-2.33.3.linux-amd64.tar.gz -C /srv/thinkive/software
3、配置文件修改
prometheus安装目录下的prometheus.yml为配置文件,配置文件是 yaml 格式的,分为 global、alerting、rule_files 和 scrape_configs 四部分:
global :全局参数配置 ;
alerting :告警服务地址;
rule_files :告警和记录规则;
scrape_configs :数据采集地址
其中 rule_files 和 scrape_configs 是重点,后者支持多种动态发现方式,更复杂一些。
4、默认配置即可参考配置。
#全局配置
global:
scrape_interval: 15s # 设置抓取间隔,默认为1分钟
evaluation_interval: 15s #估算规则的默认周期,每15秒计算一次规则。默认1分钟
# scrape_timeout #默认抓取超时,默认为10s
#Alertmanager告警相关配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
#规则文件列表,使用'evaluation_interval' 参数去抓取
rule_files:
#- "first_rules.yml"
#- "second_rules.yml"
# 抓取配置列表
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.65.56:9090']
5、进入prometheus目录启动
[root@CentOS7-0001 /]# cd /srv/thinkive/software/prometheus-2.33.3/
[root@CentOS7-0001 prometheus-2.33.3]# ./prometheus --config.file=prometheus.yml
6、常用命令扩展:
[root@CentOS7-0001 prometheus-2.33.3]# ../prometheus --config.file=prometheus.yml //前台启动
[root@CentOS7-0001 prometheus-2.33.3]# nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle > prometheus.out 2>&1 & //后台启动
[root@CentOS7-0001 prometheus-2.33.3]# ./promtool check config prometheus.yml //检测配置文件
[root@CentOS7-0001 prometheus-2.33.3]# curl -X POST http://127.0.0.1:9090/-/quit // 优雅关闭
[root@CentOS7-0001 prometheus-2.33.3]# curl -X POST http://127.0.0.1:9090/-/reload //热加载
[root@CentOS7-0001 prometheus-2.33.3]# netstat -lnp | grep 9090 // 查看运行状态
[root@CentOS7-0001 prometheus-2.33.3]# curl http://127.0.0.1:9090/metrics //crul测试
7、访问验证
安装并启动prometheus后,.浏览器输入 http://192.168.65.56:9090/graph 来访问prometheus,出现可视化界面代表安装成功。
8、将prometheus设置成系统服务
8.1.将Prometheus做成软连接的形式
[root@CentOS7-0001 prometheus-2.33.3]# ln -s /srv/thinkive/software/prometheus-2.33.3 /usr/local/prometheus
8.2.创建Prometheus数据存储目录
[root@CentOS7-0001 prometheus-2.33.3]# mkdir -p /var/lib/prometheus
8.3、将Prometheus加入到系统管理程序中
在/etc/systemd/system/目录下新建prometheus.service文件,写入内容,复制执行即可
[root@CentOS7-0001 prometheus-2.33.3]# cat >/etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
8.4、启动prometheus服务
[root@CentOS7-0001 system]# systemctl daemon-reload //重新加载系统服务
[root@CentOS7-0001 system]# systemctl start prometheus.service //启动prometheus服务
四、Prometheus监控之node_exporter(默认端口9100)
可以在github的release中对最新版本右键获取下载链接
1、下载版本并解压到指定目录
[root@CentOS7-0001 install]#wget -r -p -np -k -nc -c https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
[root@CentOS7-0001 install]# tar -zxvf node_exporter-0.17.0.linux-amd64.tar.gz -C /srv/thinkive/software/
2、进入node_exporter目录启动
[root@CentOS7-0001 /]# cd /srv/thinkive/software/node_exporter-0.17.0.linux-amd64/
[root@CentOS7-0001 node_exporter-0.17.0.linux-amd64]# ls
LICENSE node_exporter nohup.out NOTICE
[root@CentOS7-0001 node_exporter-0.17.0.linux-amd64]# ./node_exporter
可以使用nohup后台启动。
3、访问验证
安装并启动node_exporter后,默认端口9100,可以执行命令:curl http://l192.168.65.56/metrics验证,有数据返回表示正常。
4、Prometheus的配置文件中加上这个exporter的地址
进入到Prometheus安装目录
[root@CentOS7-0001 /]# cd /srv/thinkive/software/prometheus-2.33.3/
编辑配置文件prometheus.yml
scrape_configs节点下添加target,如下内容:
- job_name: 'server56'
static_configs:
- targets: ['192.168.65.56:9100']
5、重启Prometheus查看监控数据信息
可在Prometheus中查看监控的信息:http://192.168.65.56:9090/graph,
grafana监控redis常用模板:8919
五、Prometheus监控之Alertmanager(默认端口9093)
告警能力在Prometheus的架构中被划分成两个独立的部分。通过在Prometheus中定义AlertRule(告警规则),Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息,Prometheus负责产生告警,而Alertmanager负责告警产生后的后续处理。因此Alertmanager部署完成后,需要在Prometheus中设置Alertmanager相关的信息。
1、下载版本并解压到指定目录
[root@CentOS7-0001 install]# wget -r -p -np -k -nc -c https://github.com/prometheus/alertmanager/releases/download/v0.22.1/alertmanager-0.22.1.linux-amd64.tar.gz
[root@CentOS7-0001 install]# tar -zxvf node_exporter-0.17.0.linux-amd64.tar.gz -C /srv/thinkive/software/
2、进入Alertmanager目录启动
指定配置文件启动:
用户也在启动Alertmanager时使用参数修改相关配置。
--config.file用于指定alertmanager配置文件路径,
--storage.path用于指定数据存储路径。
[root@CentOS7-0001 alertmanager-0.22.1.linux-amd64]# ./alertmanager --config.file=alertmanager.yml --storage.path=data/
其他启动方式:
[root@CentOS7-0001 alertmanager-0.22.1.linux-amd64]# ./alertmanager //普通启动
[root@CentOS7-0001 alertmanager-0.22.1.linux-amd64]# nohup ./alertmanager & //后台启动
3、验证安装
[root@CentOS7-0001 alertmanager-0.22.1.linux-amd64]# netstat -lnp | grep 9093
访问验证:http://192.168.65.56:9093
4、将Alertmanager增加到Prometheus中
alerting节点配置Alertmanager地址,rule_files节点打开first_rules.yml配置
alerting:
alertmanagers:
- static_configs:
- targets: ['192.168.65.56:9093']
# 打开rule_files(告警规则)中first_rules的注释
rule_files:
- "first_rules.yml"
# - "second_rules.yml"
5、新增Alertmanager安装目录下增加first_rules.yml配置
groups:
- name: test-rule
rules:
- alert: "测试报警"
expr: (go_memstats_frees_total > 10000000)
for: 1m
labels:
severity: 警告
annotations:
summary: "{{ $labels.alertname }}"
description: "{{ $labels.alertname }}测试报警"
value: "{{ $value }}"
6、重启prometheus登录验证
配好后保存重启Prometheus,访问:http://192.168.65.56:9090/graph点击Alters,如果显示有数据,则说明已经配置好了。
六. Prometheus监控之MySQL(默认端口9104)
1、下载sql并解压到指定目录
[root@CentOS7-0002 install]# wget https://codeload.github.com/john1337/my2Collector/zip/master
[root@CentOS7-0002 install]# unzip -d /root master
Archive: master
12373a44941bd587926fcece1d9baac84d79e703
creating: /root/my2Collector-master/
inflating: /root/my2Collector-master/LICENSE
inflating: /root/my2Collector-master/README.md
inflating: /root/my2Collector-master/my2.sql
2、登录mysql并导入sql
使用命令登录mysql,mysql -u用户名 -p密码
[root@CentOS7-0002 install]# mysql -uroot -proot
使用命令导入sql文件
mysql> source /root/my2Collector-master/my2Collector-master/my2.sql
3、下载mysqld_exporter并解压到指定目录
[root@CentOS7-0002 install]# wget -r -p -np -k -nc -c https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz
[root@CentOS7-0002 install]# tar -xvf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /srv/thinkive/software/
4、新建配置文件
进入到mysqld_exporter安装目录,新建my.cnf配置文件,增加如下信息:
[client]
user=root
password=AaZz123456
账号密码只要连接得上mysql即可,也可单独为其分配账号;
5、启动mysqld_exporter并验证
root@CentOS7-0002 mysqld_exporter-0.10.0]# ./mysqld_exporter -config.my-cnf="my.cnf" &
验证地址:
[root@CentOS7-0002 mysqld_exporter-0.10.0]# curl http://192.168.65.166:9104
6、将mysqld_exporter增加到Prometheus中
Prometheus.yml配置中增加如下配置:
- job_name: 'mysql166'
static_configs:
- targets: ['192.168.65.166:9104']
7、重启prometheus登录验证
配好后保存重启Prometheus,然后点击Status->Targets,如果发现mysql的State为Up 状态,则说明已经配置好了如果没有配置好,则可以注意一下是否mysql开启了远程访问,一般新安装的msyql都是仅本机可访问;grafana监控mysql常用模板:9362
七. Prometheus监控之Redis(默认端口9121)
1、下载redis_exporter并解压到指定目录
[root@CentOS7-0002 install]# wget -r -p -np -k -nc -c https://github.com/oliver006/redis_exporter/releases/download/v1.0.3/redis_exporter-v1.0.3.linux-amd64.tar.gz
[root@CentOS7-0002 install]# tar -zxvf redis_exporter-v1.0.3.linux-amd64.tar.gz -C /srv/thinkive/software/
2、启动 Redis_exporter
[root@CentOS7-0002 redis_exporter-v1.0.3.linux-amd64]# ./redis_exporter redis//192.168.65.166:6379 & //无密码启动
[root@CentOS7-0002 redis_exporter-v1.0.3.linux-amd64]# ./redis_exporter -redis.addr 192.168.65.166:6379 -redis.password 123456 //有密码启动
IP端根据实际来,实际的redis服务的ip和端口
3、将redis_exporter增加到Prometheus中
Prometheus安装目录配置文件Prometheus.yml配置中增加如下内容
- job_name: 'redis166'
static_configs:
- targets: ['192.168.65.166:9121']
4、重启prometheus登录验证
配好后保存重启Prometheus,然后点击Status->Targets,如果redis的State为Up 状态,则说明已经配置好了如果没有配置好,grafana监控redis常用模板:763
八. Prometheus监控之Nacos(默认端口8848)
Nacos 0.8.0版本完善了监控系统,自动支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,无需安装exports节点,默认metrics数据接入是关闭的。
1、开启nacos的metrics数据接入
nacos的application.properties文件中,打开以下配置,默认是注释的,然后重启nacos
management.endpoints.web.exposure.include=*
2、验证nacos的metrics数据接入是否暴露
访问地址:http://192.168.65.56:8848/nacos/actuator/prometheus,如有数据表示已经暴露
3、将Nacos 增加到Prometheus中
Prometheus安装目录配置文件Prometheus.yml配置中增加如下内容
# # 任务名称
- job_name: 'nacos'
# 访问收集数据的路径
metrics_path: '/nacos/actuator/prometheus'
# 监控的节点
static_configs:
# 节点地址集群的话配置多个用逗号隔开
- targets: ['192.168.65.56:8848']
4、重启prometheus登录验证
配好后保存重启Prometheus,然后点击Status->Targets,如果nacos的State为Up 状态,则说明已经配置好了如果没有配置好,grafana监控nacos常用模板:13221
九. Prometheus监控之Sprinboot(默认端口8080)
市面上的springboot项目基本都是基于此actutor做监控的。或者是直接用或者是代理一层做的,所以说prometheus的监控也是通过此包进行的,所以说上边我们不仅要导入actuator这个包还要导入prometheus的包,因为prometheus是对actuator进行一层代理。
1、Springboot添加监控依赖jar包
<!--性能监控、健康检查 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Prometheus 监控统计开发包 -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<exclusions>
<exclusion>
<artifactId>simpleclient</artifactId>
<groupId>io.prometheus</groupId>
</exclusion>
</exclusions>
</dependency>
2、暴露springboot项目的监控点,增加如下配置
###Prometheus 监控配置
management:
endpoints:
web:
exposure:
## 暴露所有的actuator endpoints
include: "*"
metrics:
tags:
## promethues上的应用名字
application: ${spring.application.name}
3、启动项目验证
启动后访问:http://192.168.65.56:8011/springboot-demo-0001/actuator/prometheus 可以看到监控信息,(IP端口根据实际情况来)
4、将Springboot 增加到Prometheus中
Prometheus安装目录配置文件Prometheus.yml配置中增加如下内容
# 任务名称Springboot
- job_name: 'springboot-demo-0001'
# 访问收集数据的路径
metrics_path: '/springboot-demo-0001/actuator/prometheus'
# 监控的节点
static_configs:
# 节点地址集群的话配置多个用逗号隔开
- targets: ['192.168.65.56:8011']
5、重启prometheus登录验证
配好后保存重启Prometheus,然后点击Status->Targets,如果springboot的State为Up 状态,则说明已经配置好了如果没有配置好,grafana监控springboot常用模板:6756,springcloud常用模板:12856
十、Prometheus监控之Grafana(默认端口3000)
可以在grafana管理中台引入prometheus
1、下载版本并解压到指定目录
grafana官网下载:Download Grafana | Grafana Labs
[root@CentOS7-0001 install]#wget -r -p -np -k -nc -c https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.1.linux-amd64.tar.gz
[root@CentOS7-0001 install]# tar -zxvf grafana-enterprise-8.4.1.linux-amd64.tar.gz -C /srv/thinkive/software
2、进入Grafana目录启动
[root@CentOS7-0001 /]# cd /srv/thinkive/software/grafana-8.4.1/bin/
[root@CentOS7-0001 bin]# ./grafana-server web
可以使用nohup后台启动。
3、访问验证
安装并启动Grafana后,默认端口3000.浏览器输入 http://192.168.65.56:3000 来访问Grafana,管理员账号密码默认是admin/admin。首次登陆会让你修改管理员密码,然后就可以登录查看了。
登录之后可以在Grafana管理中台添加prometheus,具体操作这里不详细讲解
4、grafana常用模板导入
Prometheus监控之grafana常用模板编号记录 - 黑崎一护有头屑 - 博客园
十一、Grafana监控之邮件报警
1、配置文件修改
进入Grafana配置路径编辑文件defaults.ini
[root@CentOS7-0001 /]# /srv/thinkive/software/grafana-8.4.1/conf
smtp.qq.com:465是针对qq邮箱的,其他的邮箱的服务器不同,请做对应的改变,直接百度即可
2、保存退出进入Grafana目录重启
[root@CentOS7-0001 /]# cd /srv/thinkive/software/grafana-8.4.1/bin/
[root@CentOS7-0001 bin]# ./grafana-server web
3、浏览器登录Grafana管理端配置告警
十二、Prometheus常用node节点
常用note节点下载地址:
1.node_exporter
用户监控节点虚拟机的指标信息。
下载地址:https://github.com/prometheus/node_exporter/releases/download/v0.17.0-rc.0/node_exporter-0.17.0-rc.0.linux-386.tar.gz2.jmx_exporter
下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar3.elasticsearch_exporter
下载地址:https://github.com/justwatchcom/elasticsearch_exporter/releases/download/v1.0.4rc1/elasticsearch_exporter-1.0.4rc1.linux-386.tar.gz4.redis_exporter
下载地址:https://github.com/oliver006/redis_exporter/releases/download/v0.22.0/redis_exporter-v0.22.0.linux-386.tar.gz5.mysqld_exporter
下载地址;https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-386.tar.gz6.postgres_exporter
下载地址:https://github.com/wrouesnel/postgres_exporter/releases/download/v0.4.7/postgres_exporter_v0.4.7_linux-amd64.tar.gz7.mongodb_exporter
下载地址:https://github.com/dcu/mongodb_exporter/releases/download/v1.0.0/mongodb_exporter-linux-amd648.statsd_exporter
下载地址:https://github.com/prometheus/statsd_exporter/releases/download/v0.8.0/statsd_exporter-0.8.0.linux-amd64.tar.gz9.mesos_exporter
下载地址:https://github.com/mesos/mesos_exporter/releases/download/v1.1.1/mesos_exporter-1.1.1.linux-arm64.tar.gz10.apache_exporter
下载地址:https://github.com/Lusitaniae/apache_exporter/releases/download/v0.5.0/apache_exporter-0.5.0.linux-amd64.tar.gz11.hadoop_exporter
下载地址:https://github.com/wyukawa/hadoop_exporter12.logstash_exporter
下载地址:https://github.com/BonnierNews/logstash_exporter/archive/v0.1.2.tar.gz13.sql_exporter
下载地址:https://github.com/justwatchcom/sql_exporter/releases/download/v0.2.0/sql_exporter-0.2.0.linux-amd64.tar.gz14.oracle_exporter
下载地址:https://github.com/iamseth/oracledb_exporter/releases/download/0.0.8/oracledb_exporter.linux-amd6415.zookeeper_exporter
下载地址1:https://github.com/carlpett/zookeeper_exporter/releases/download/v1.0.1/zookeeper_exporter-1.0.1.linux-amd64.tar.gz
下载地址2:https://github.com/carlpett/zookeeper_exporter/releases/download/v1.0.2/zookeeper_exporter16.influxdb_exporter
下载地址:https://github.com/prometheus/influxdb_exporter/releases/download/v0.1.0/influxdb_exporter-0.1.0.linux-amd64.tar.gz17.zabbix_exporter
下载地址:https://github.com/MyBook/zabbix-exporter/archive/1.0.2.tar.gz18.opentsdb_exporter
下载地址:https://github.com/cloudflare/opentsdb_exporter/archive/0.0.3.tar.gz19.grafana_exporter
下载地址:https://github.com/frodenas/grafana_exporter/releases/download/v0.1.0/grafana_exporter-0.1.0.linux-amd64.tar.gz20.json_exporter
下载地址:https://github.com/sciffer/json_exporter
十三、Grafana常用监控模板大全
Grafana常用监控模板大全 - 眈眈逐逐 - 博客园 (cnblogs.com)
1.服务器系统性能监控:8919
2.微服务性能监控:4701
3.docker环境性能监控:893
4.nacos性能监控:13221
5.mysql性能监控:9362
6.elasticsearch:266
7.SpringBoot:6756,springcloud:12856
8、redis:763