几个关键地址
包下载地址:官网下载地址
- 监控服务:prometheus
- 服务器监控服务:node_exporter
- MySQL监控服务:mysqld_exporter
- JVM监控服务:jmx_exporter
监控服务
部署
下载上述的监控服务包,并解压,可以得到如下文件:
1 | root@su-007:~/tools/prometheus-2.13.1.linux-amd64# ll |
其中prometheus*
为服务启动脚本文件,prometheus.yml
为普罗米修斯监控系统的配置文件
全量配置如下:
1 | # my global config |
其中主要使用了几个模块的监控,没有会用报警,有需要的话,可以自己尝试。
几个模块的定义介绍:
- job_name: 'prometheus'
:是监控程序本身,用于监控检测被监控系统是否正确连接,默认端口9090
- job_name: "mysql"
:监控mysql服务器的情况,默认端口9104
- job_name: "node"
:监控服务器状态,默认端口9100
- job_name: 'java'
:JVM监控,这里的端口是自己在启动tomcat应用服务时,在启动脚本中自己定义的端口号
这里的job_name
都是可以自己定义,主要用来区分几个监控模块
配置好配置文件后,就可以启动监控服务了
1 | nohup ./prometheus >> ./nohup.log 2>&1 & |
启动脚本,设置后台运行,并把运行日志写进nohup.log
文件中
启动后,就可以在浏览器中访问10.10.10.10:9090/targets
查看各个节点的状态了,确保State
是UP
,不然就可能有问题,需要排查了
服务器
监控部署
下载上述的服务器监控服务包,并解压,可以得到如下文件:
1 | root@su-007:~/tools/node_exporter-0.18.1.linux-amd64# ll |
这里面东西很简单,它不需要配置文件,只有一个关键的node_exporter*
启动脚本文件,直接启动脚本就OK
1 | nohup ./node_exporter >> ./nohup.log 2>&1 & |
在浏览器访问10.10.10.10:9100/metrics
,可以看到监控数据,就说明服务启动成功了
MySQL
监控部署
下载上述的MySQL监控服务包,并解压,可以得到如下文件:
1 | root@test-01:~/tools/mysqld_exporter-0.12.1.linux-amd64$ ll |
默认只有一个mysqld_exporter*
启动脚本文件。mysqld_exporter
需要连接到Mysql,所以需要Mysql的权限,我们先为它创建用户并赋予所需的权限。
命令行登录mysql,执行如下命令:
1 | mysql> GRANT REPLICATION CLIENT,PROCESS ON *.* TO 'mysql_monitor'@'localhost' identified by 'mysql_monitor'; |
创建mysqld_exporter
执行的配置文件.my.cnf
,写入如下内容:
1 | [client] |
启动监控服务并调用脚本文件:
1 | nohup ./mysqld_exporter --config.my-cnf=./.my.cnf >> ./nohup.log 2>&1 & |
在浏览器访问10.10.10.11:9104/metrics
,可以看到监控数据,就说明服务启动成功了
JVM
监控部署
下载上述的jar文件,创建配置文件jmx_exporter.yml
配置文件内容如下:
1 | #--- # ---前的#要去掉 |
在启动tomcat的脚本中,添加参数-javaagent:/home/shadow/tools/JMX/jmx_prometheus_javaagent-0.12.0.jar=3080:/home/shadow/tools/JMX/jmx_exporter.yml
在启动脚本中:
1 | CATALINA_OPTS="-Xms2g -Xmx2g -javaagent:/home/shadow/tools/JMX/jmx_prometheus_javaagent-0.12.0.jar=3080:/home/shadow/tools/JMX/jmx_exporter.yml" |
这里定义的3080端口,既是prometheus
监控服务获取JVM参数的端口
还有一点需要注意的是:jmx_prometheus_javaagent-0.12.0.jar
和jmx_exporter.yml
存放的位置必须和tomcat的位置在同一用户下,不然可能会出现因为权限问题,无法调用的情况。
在浏览器访问10.10.10.11:3080/metrics
,可以看到监控数据,就说明服务启动成功了
Grafana
各个监控面板配置
每个不同类型的监控,需要有不同类型的面板,这里不自己配置面板,而是从外部导入,官方Dashboards平台
- 服务器监控面板:选择
主机基础监控(cpu,内存,磁盘,网络)
,ID
为9276
- MySQL监控面板:选择
MySQL Overview
,ID
为7362
- JVM监控面板:选择
JMX Overview
,ID
为3457