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

Zabbix 专栏收录该内容
41 篇文章 1 订阅

目录

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 api
  PRIMARY 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 huwj

MYSQL_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 $result
  do
   list[$n]=\"$x\"
   n=`expr $n + 1`
  done
length=${#list[@]}
printf "{\n"
printf  '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
    printf '\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] ];then
        printf ','
    fi
    i=$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 sys

def send_to_api(pushURL, modul):
    try:
        pushURL = pushURL + modul
        r = 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 sys

def 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、监控效果图 

  • 0
    点赞
  • 2
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值