zabbix监控jar微服务并实现自愈

其实监控jar微服务不需要借助JMX之类的插件,用自定义监控项就能解决了

先说下思路,监控jar微服务无非就是通过4个方式
1、进程是否存在
2、端口是否存在
3、url返回值是否是200
4、log有没有oom字样
废话少说,直接上干货

一、zabbix_agentd.conf配置

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix_agentd.log
EnableRemoteCommands=1
Server=zabbix服务端ip#被动模式用server
ServerActive=zabbix服务端ip#主动模式用ServerActive,这两个选一个填,要么被动要么主动,另外主动模式可用性的绿标是不亮的要注意
StartAgents=3
Hostname=客户端本机外网ip或hostname
Timeout=30
AllowRoot=1
UnsafeUserParameters=1
UserParameter=check_jar_status[*],/opt/zabbix/scripts/check_jar_status.sh $1 $2
UserParameter=check_jar_status_url[*],/opt/zabbix/scripts/check_jar_status_url.sh $1 $2 $3

解释下每行的意思
PidFile :zabbix客户端pid
LogFile:日志存放路径
EnableRemoteCommands=1 :允许远程执行命令,自愈用到
StartAgents=3:agentd被动检查进程数
Timeout:超时时间
AllowRoot:允许以root身份运行
UnsafeUserParameters=1 :自定义监控项开关
UserParameter=check_jar_status和下边的check_jar_status_url是自定义监控项的键,逗号后边的是值

二、准备校验脚本

校验脚本就是通过自定义监控项传过来的键值参数进行匹配,然后校验脚本经过逻辑运算给出返回值,这个返回值就可以根据监控项和触发器引发告警

我个人喜欢把zabbix放opt下,位置根据自己情况改
cd /opt/zabbix/scripts
vim check_jar_status.sh

#/bin/bash
#zabbix键值传过来的第一个参数,jar包名
JARNAME=$1
#zhabbix键值传过来的第二个参数,端口号
PORT=
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值