Prometheus监控系统+Grafana可视化工具搭建

目录

一、Prometheus监控简介

二、Grafana可视化监控简介

三、Prometheus监控服务端(默认端口:9090)

四、Prometheus监控之node_exporter(默认端口9100)

五、Prometheus监控之Alertmanager(默认端口9093)

六. Prometheus监控之MySQL(默认端口9104)

七. Prometheus监控之Redis(默认端口9121)

八. Prometheus监控之Nacos(默认端口8848)

九. Prometheus监控之Sprinboot(默认端口8080)

十、Prometheus监控之Grafana(默认端口3000)

十一、Grafana监控之邮件报警

​ 十二、Prometheus常用node节点

十三、Grafana常用监控模板大全


一、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

演示链接下载:https://github.com/prometheus/prometheus/releases/download/v2.33.3/prometheus-2.33.3.linux-amd64.tar.gz

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 <

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监控系统+Grafana可视化工具搭建_第1张图片

八. 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包

  
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
        
            io.micrometer
            micrometer-core
        
        
            io.micrometer
            micrometer-registry-prometheus
            
                
                    simpleclient
                    io.prometheus
                
            
        

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

Prometheus监控系统+Grafana可视化工具搭建_第2张图片

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监控系统+Grafana可视化工具搭建_第3张图片

Prometheus监控系统+Grafana可视化工具搭建_第4张图片 十二、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.gz

2.jmx_exporter
下载地址:https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar

3.elasticsearch_exporter
下载地址:https://github.com/justwatchcom/elasticsearch_exporter/releases/download/v1.0.4rc1/elasticsearch_exporter-1.0.4rc1.linux-386.tar.gz

4.redis_exporter
下载地址:https://github.com/oliver006/redis_exporter/releases/download/v0.22.0/redis_exporter-v0.22.0.linux-386.tar.gz

5.mysqld_exporter
下载地址;https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-386.tar.gz

6.postgres_exporter
下载地址:https://github.com/wrouesnel/postgres_exporter/releases/download/v0.4.7/postgres_exporter_v0.4.7_linux-amd64.tar.gz

7.mongodb_exporter
下载地址:https://github.com/dcu/mongodb_exporter/releases/download/v1.0.0/mongodb_exporter-linux-amd64

8.statsd_exporter
下载地址:https://github.com/prometheus/statsd_exporter/releases/download/v0.8.0/statsd_exporter-0.8.0.linux-amd64.tar.gz

9.mesos_exporter
下载地址:https://github.com/mesos/mesos_exporter/releases/download/v1.1.1/mesos_exporter-1.1.1.linux-arm64.tar.gz

10.apache_exporter
下载地址:https://github.com/Lusitaniae/apache_exporter/releases/download/v0.5.0/apache_exporter-0.5.0.linux-amd64.tar.gz

11.hadoop_exporter
下载地址:https://github.com/wyukawa/hadoop_exporter

12.logstash_exporter
下载地址:https://github.com/BonnierNews/logstash_exporter/archive/v0.1.2.tar.gz

13.sql_exporter
下载地址:https://github.com/justwatchcom/sql_exporter/releases/download/v0.2.0/sql_exporter-0.2.0.linux-amd64.tar.gz

14.oracle_exporter
下载地址:https://github.com/iamseth/oracledb_exporter/releases/download/0.0.8/oracledb_exporter.linux-amd64

15.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_exporter

16.influxdb_exporter
下载地址:https://github.com/prometheus/influxdb_exporter/releases/download/v0.1.0/influxdb_exporter-0.1.0.linux-amd64.tar.gz

17.zabbix_exporter
下载地址:https://github.com/MyBook/zabbix-exporter/archive/1.0.2.tar.gz

18.opentsdb_exporter
下载地址:https://github.com/cloudflare/opentsdb_exporter/archive/0.0.3.tar.gz

19.grafana_exporter
下载地址:https://github.com/frodenas/grafana_exporter/releases/download/v0.1.0/grafana_exporter-0.1.0.linux-amd64.tar.gz

20.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

你可能感兴趣的:(Spring,Cloud,java,开发语言,后端)