zabbix5.0.4 配置自动发现Actuator 1.x监控接口

目录

1、环境准备

2、导入模板

2.1创建模板

3、zabbix客户端设置

4、代码

5、监控效果图 


1、环境准备

1、centos7.5

2、zabbix 5.0.4

3、python 2.7 + requests模块

4、shell脚本

2、导入模板

模板下载:https://download.csdn.net/download/Hu_wen/19541753

该模板适用于 zabbix5.0以上的版本,若低于5.0请根据以下操作创建模板

 2.1创建模板

  1. 新建模板-自定义命名为:Template Actuator 1 by huwj 

  2. 新建自动发现规则

      自定义名称为:获取Actuator接口地址 

      键值为: check.api.url

      应用集:app_jvm

      更新间隔:30m

  3. 触发器根据现场情况,自行配置

3. 新建监控项

监控项名称:{#API_NAME}-JVM守护线程数	键值:check.api1.metrics[{#API_URL},threads.daemon] 
监控项名称:{#API_NAME}-JVM峰值线程数	键值:check.api1.metrics[{#API_URL},threads.peak]
监控项名称:{#API_NAME}-健康状态	键值:check.api1.health[{#API_HURL}]   设置进程-替换 UP 对应 1  ; DOWN 对应 2
监控项名称:{#API_NAME}-处理器核数	键值:check.api1.metrics[{#API_URL},processors]
监控项名称:{#API_NAME}-实例运行时间	键值:check.api1.metrics[{#API_URL},instance.uptime] 单位 s
监控项名称:{#API_NAME}-应用堆初始内存	键值:check.api1.metrics[{#API_URL},heap.init]  单位 B ;设置进程-自定义倍数 1024
监控项名称:{#API_NAME}-应用平均负载	键值:check.api1.metrics[{#API_URL},systemload.average]
监控项名称:{#API_NAME}-应用当前空闲内存	键值:check.api1.metrics[{#API_URL},mem.free]  单位 B ; 设置进程-自定义倍数 1024
监控项名称:{#API_NAME}-应用总内存	键值:check.api1.metrics[{#API_URL},mem] 单位 B ;  设置进程-自定义倍数 1024
监控项名称:{#API_NAME}-当前可用堆内存	键值:check.api1.metrics[{#API_URL},heap.committed]  单位 B ; 设置进程-自定义倍数 1024
监控项名称:{#API_NAME}-当前已用堆内存	键值:check.api1.metrics[{#API_URL},heap.used] 单位 B ; 设置进程-自定义倍数 1024

3、zabbix客户端设置

  1、将配置文件 check_status.conf 文件上传至 /etc/zabbix/zabbix-agent.d/ 目录下

  2、将脚本 actuator_1.py  actuator_h_1.py find_actuator_api.sh 上传至 /opt/scripts/java/ 目录下

  3、mysql 数据库新建表

CREATE TABLE `T_checkUrl` (`ID` int(4) NOT NULL AUTO_INCREMENT,`WEB_NAME` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,  --名称`URL` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,       --参数请求地址`H_URL` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,     --健康状态访问地址`del` int(4) DEFAULT '0',                                    --是否删除状态 0 否 1 是`type` int(4) DEFAULT '1',                                   --地址类型,0 web  1 apiPRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

  4、重启zabbix-agent客户端 

注:后续要监控的地址,只需往该表插入数据即可。

4、代码

find_actuator_api.sh

该脚本需修改对应的数据库帐号、密码、IP等信息

#!/bin/bash
# license:GPL
# date:2021.01.07
# author by huwjMYSQL_USER='root'
MYSQL_PWD='123456'
MYSQL_HOST='localhost'
MYSQL_PORT='3306'
MYSQL_DB='zabbix'
MYSQL_CONN="/usr/bin/mysql -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT} ${MYSQL_DB}"
JOB_NAME="SELECT WEB_NAME,URL,H_URL FROM T_checkUrl WHERE del=0 and type=1;"
result=`${MYSQL_CONN} -e "$JOB_NAME" 2>/dev/null|awk 'NR!=1 { print }'`
n=0
list=()
for x in $resultdolist[$n]=\"$x\"n=`expr $n + 1`done
length=${#list[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
doprintf '\n\t\t{'printf "\"{#API_NAME}\":${list[$i]}"printf ','printf "\"{#API_URL}\":${list[$i+1]}"printf ','printf "\"{#API_HURL}\":${list[$i+2]}"printf "}"if [ $i -lt $[$length-3] ];thenprintf ','fii=$i+2
done
printf  "\n\t]\n"
printf "}\n"

actuator_1.py

#coding=utf-8
#!/usr/bin/env python
# Author by huwj create time: 2021-02-24
import requests
import json
import sysdef send_to_api(pushURL, modul):try:pushURL = pushURL + modulr = requests.get(pushURL, timeout=30)response = json.loads(r.text)status = response[modul]print(status)except Exception,e:print('1500')if __name__ == "__main__":send_to_api(sys.argv[1],sys.argv[2])

actuator_h_1.py

#coding=utf-8
#!/usr/bin/env python
# Author by huwj create time: 2021-02-24
import requests
import json
import sysdef send_to_api(pushURL):try:r = requests.get(pushURL, timeout=30)response = json.loads(r.text)status = response["status"]print(status)except Exception,e:print("DOWN")if __name__ == "__main__":send_to_api(sys.argv[1])

5、监控效果图 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部