prometheus+grafana监控平台搭建
1、安装prometheus(监控系统和时间序列数据库)
下载地址:https://prometheus.io/download/
选取对应版本:
#上传到服务器并解压 tar -zxvf prometheus-2.28.1.linux-amd64.tar.gz #运行prometheus cd prometheus-2.28.1.linux-amd64 ./prometheus --config.file=prometheus.yml
prometheus.yml配置说明
#Prometheus全局配置 global: scrape_interval: 15s #采集数据间隔,默认15秒。该配置可配置在每个job_name中 evaluation_interval: 15s #监控规则评估频率,比如设置了内存使用大于70%发出报警的规则,然后每15秒来执行一次这个规则 #Prometheus告警设置 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 #监控配置 scrape_configs: - job_name: 'prometheus-server' #定义一个监控组,其下可以有多个实例配置 static_configs: - targets: ['localhost:9090'] #节点的地址,可以写多个地址 - job_name: 'www_server' #定义另一个监控组 static_configs: - targets: ['10.160.2.107:9100','192.168.1.100:9100'] #组内多个被监控主机 labels: #自定义标签,可以通过标签对查询数据进行分组管理 idc:beijing #将上面2个主机打上idc标签,值为beijing # params: #过滤器 # collect[]: # - cpu #只采集CPU数据 ####使用正则替换标签 # - job_name: 'mysql_node' # static_configs: # - targets: ['10.160.2.110:9100','192.168.1.111:9100'] # metric_relable_configs: #通过正则重命名标签 # - action: replace #replace替换是默认动作。此外还有keep(只采集匹配标签的实例)、drop(不采集匹配正则的实例)、labelkeep\labeldrop(对标签进行过滤处理而非实例)等动作 # source_labels: ['job'] #原标签,job是默认就会产生的标签,这里job标签的值是mysql_node # regex: (.*) #正则匹配,这里匹配job标签内的内容,也就是node # replacement: beijing #替换成什么内容,如果写$1就是将正则里的内容拿过来 # target_label: idc #把替换到的内容赋值给idc标签 # - action: labeldrop #删除标签 # regex: job #把原有的job标签删除不显示
2、安装grafana
下载地址:https://grafana.com/grafana/download?pg=get&plcmt=selfmanaged-box1-cta1
上传到服务器并解压(也可以直接在服务器直接执行上图命令) rpm -ivh grafana-8.0.6-1.x86_64.rpm 或 yum install grafana-8.0.6-1.x86_64.rpm 启动grafana systemctl start grafana-server
浏览器输入http://ip:30000
配置数据源:
添加模板:
1、系统监控:8919、9276
2、jvm监控:8563
3、mysql数据监控:7362
3、安装node_exporter
下载地址:https://prometheus.io/download/
选取对应版本:
上传到服务器并解压
tar -zxvf node_exporter-1.2.0.linux-amd64.tar.gz
启动node_exporter
cd node_exporter
./node_exporter
浏览器输入http://ip:9100/metric
回到prometheus服务器的配置文件里添加被监控机器的配置段
在主配置文件最后面添加被监控主机信息 [root@server ~]# vim /prometheus/prometheus.yml - job_name: 'prometheus001' # 给被监控主机取个名字,我这里直接填的IP static_configs: - targets: ['192.168.0.78:9100'] # 这里填写被监控主机的IP和端口 - job_name: 'prometheus002' static_configs: - targets: ['192.168.0.123:9100'] 有多少台被监控主机就照格式添加在后面好了,我这里监控了105/115两台主机
4、监控mysql
下载地址:https://prometheus.io/download/
选取对应版本:
安装 tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz 创建mysql配置文件、运行时可免密码连接数据库:vi /opt/Prometheus/mysql_exporter/.my.cnf [client] user=root password=123456 port=3337 启动exporter客户端 ./mysqld_exporter --config.my-cnf=.my.cnf
网站查看捕获mysql数据
访问:http://192.168.0.113:9104/metrics
使用prometheus监控修改监控端配置文件:vi prometheus.yml
5、监控jvm
下载地址:https://github.com/prometheus
选取对应版本:
配置config.yaml
[root@master-node prometheus]#vi config.yaml
wercaseOutputLabelNames: true lowercaseOutputName: true whitelistObjectNames: ["java.lang:type=OperatingSystem"] blacklistObjectNames: [] rules: - pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:' name: os_$1_bytes type: GAUGE attrNameSnakeCase: true - pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):' name: os_$1 type: GAUGE attrNameSnakeCase: true
监控tomcat配置
被测服务器: jmx_xxx.jar tomcat.yml 方到tomcat的bin文件夹 # 修改bin/catalina.sh 文件 # 添加: JAVA_OPTS="-javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8585:./tomcat.yml"
监控微服务JVM
java -javaagent:./jmx_prometheus_javaagent-0.16.1.jar=8585:config.yaml -jar yourJar.jar
网站查看捕获jvm数据 访问:http://192.168.0.102:8585/metrics
Prometheus配置修改 修改prometheus.yml文件