Zabbix 踩坑之旅——zabbix触发重启tomcat

一、实验需求

公司tomcat服务经常自动崩溃,导致业务中断,暂时用zabbix对其执行监控,在tomcat崩溃时能够先自动启动,保证业务尽快恢复正常。

二、准备环境

系统环境:CentOS 6.5

IP地址:

zabbix-server: 192.168.239.128

zabbix-agent: 192.168.239.130

zabbix的服务端和客户端的安装此处都以rpm包安装,配置略过。agent端上安装好tomcat。

三、开启踩坑之旅——agent端

① 修改zabbix-agent配置文件,修改后重启生效

# vim /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1    开启agent端远程命令执行功能

# sudo server zabbix-agent restart

② 修改sudoers,给zabbix用户赋予权限,不然zabbix-agent无法执行命令

# sudo visudo

zabbix ALL:NOPASSWD ALL

zabbix ALL:NOPASSWD /usr/loacal/catalina.sh start

四、开启踩坑之旅——server端

① 先创建一个Host ,直接填入agent端的IP就行

② 创建Item,使用內建的Key

"proc.num[<name>,<user>,<state>,<cmdline>]"

通过某用户执行,某进程状态,进程名称来统计进程的数量

name:进程名称(默认"all processes")

user:用户名(默认"all user")

state:进程状态(默认"all"),可选:run,sleep,zomb

cmdline:命令行过滤(使用正则表达式查找进程)

例如: proc.num[,root,all,tomcat]   统计root用户运行匹配tomcat的所有状态的进程。

③ 创建Trigger,设定触发条件,下面的表达式意思就是 最后两次的结果为0就触发告警

④ 创建Action

Operation type:改为执行远端命令

Target list:选定执行的agent

Type:可以有多种选择,此处是启动tomcat,选择Remote command或ssh既可

Execute on:执行端,默认选择agent端既可

Commands:写入想让agent端执行的命令既可

坑:这里的命令尤为注意,一定要加sudo提升zabbix的权限,不然命令无法执行,并且远程命令执行不会有回复信息的,排错也比较难。

五、测试

① agent端关闭tomcat

② server显示为故障,过一会儿就正常了。(正常的图是截完日志再截的,时间上有点久)

③ 通过日志也可以看出server端恢复了

总结:关键点总结

① zabbix-agent端:

添加 EnableRemoteCommands=1

修改sudoers,给zabbix授权

② zabbix-server端:

确保触发条件和执行条件正常,远程命令记得添加 sudo

直接参考zabbix官方文档既可

时间: 2024-10-22 07:25:20

Zabbix 踩坑之旅——zabbix触发重启tomcat的相关文章

一次痛苦又甜蜜的微信支付踩坑之旅

凡是和钱打交道的事,没有一样是容易的.这是我第一次接触微信支付,发现网上还是有很多同学在求助,XXX了怎么办?XXX是什么情况?为了帮助更多的小伙伴脱离"苦海",我决定写下这次的踩坑之旅,给更多的人帮助. 介绍 微信支付方式分为刷卡支付.公众号支付.扫码支付.APP支付.H5支付.小程序支付. 先从应用场景来各自说一说,这样,能够最快的判断出应该选择哪一种支付. 刷卡支付:使用扫描设备(扫描枪)多见于超市.便利店使用 公众号支付:嵌入公众号的H5页面 扫码支付:用户打开"微信

vue+ vue-router + webpack 踩坑之旅

说是踩坑之旅 其实是最近在思考一些问题 然后想实现方案的时候,就慢慢的查到这些方案   老司机可以忽略下面的内容了 1)起因  考虑到数据分离的问题  因为server是express搭的   自然少不了res.render("xx",data)    这句话的意思就是去查找相应的模板文件然后在用数据去渲染在将渲染好的页面去返回给浏览器,给浏览器去解析,渲染模板其实就是做的替换字符串+拼接字符串的活  各种的模板引擎也有各个优化的点(比如可以将对应的模板编译的函数保存在内存中,然后在通

小程序踩坑之旅

小程序踩坑之旅 —— 分包 小程序踩坑之旅 —— 分享 小程序踩坑之旅 —— 页面路由 小程序踩坑之旅 —— canvas 原文地址:https://www.cnblogs.com/xxhuan/p/11334792.html

Python踩坑之旅其一杀不死的Shell子进程

1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程, 包括但不限于如下类型的任务在执行: a. 多线程的网络通信包处理 和控制Master节点交互 有固定Listen端口 b. 定期作业任务, 通过subprocess.Pipe执行shell命令 c. etc 发现坑的过程很有意思: a.重启Agent发现Port被占用了 => 立刻想到可能进程没被杀死, 是不是停止脚本出问题 => 排除发现不是, Agent进程确实死亡了 => 通过 netstat -tanop|grep p

Python 踩坑之旅进程篇其四一次性踩透 uid euid suid gid egid sgid的坑坑洼洼

目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 技术关键字 1.5 坑后思考 下期坑位预告 代码示例支持 平台: Centos 6.3 Python: 2.7.14 代码示例: 菜单 - Python踩坑指南代码示例 1.1 踩坑案例 小明是个服务器管理员, 他从老管理员手里接手了一个非常繁琐的运维工作: 短暂授权root 账号给不同的 team 接口人运行备份任务 该运维任务有几个特点: 任务需且仅需运行在 root 下 root 账号只能短暂授权给各个小组 通过账号管理平

百度地图sdk踩坑之旅

1.写在前面 项目中需要加上路线规划,导航,添加覆盖物,因为我最开始项目中定位我使用的是百度定位,所以为了省事,接着使用百度地图sdk实现这些.这两天踩了很多百度地图的坑,记下来.因为一些原因,后面会说,需求还没做完,所以效果图很简单,如下. 2.坑1,环境配置 对于百度地图sdk的配置我是无语.因为一开始项目中并没打算使用百度地图其他功能,只是准备定位.所以我下载sdk时只是下载了定位的sdk,如图 现在需要加上地图和导航的sdk(后面才知道导航并不需要下载专门的导航sdk,因为地图sdk可以

Ubuntu搭建Hadoop的踩坑之旅(三)

之前的两篇文章介绍了如何从0开始到搭建好带有JDK的Ubuntu的过程,本来这篇文章是打算介绍搭建伪分布式集群的.但是后来想想反正伪分布式和完全分布式差不多,所幸直接介绍完全分布式了. 如果你想自己搭建伪分布式玩的话,参考:在VMware下安装Ubuntu并部署Hadoop1.2.1分布式环境 - CSDN博客 这一篇主要参考这篇文章:Hadoop2.6.0安装 - 集群(搭建的过程中没截图,大家可以到原博客看) 一.所需的环境和软件:(以下是我们的环境,仅供参考) 1. 操作系统:Window

快应用开发的踩坑之旅

前言 尝试一款新的开发框架的时候势必会遇见各种各样的问题.可能因为一开始不熟悉文档,导致配置错误,或是api使用错误.当然开发的时候我们也不能确认框架没有问题,是否存在bug.所以在某些出错的情况下,我们也许会不断怀疑自己,怀疑框架,最终怀疑人生.这时候就需要开发者们发挥无私的精神,积极讨论,记录并贡献自己的填坑秘笈,供大家讨论参考.所以在这里我就先记录自己收集及遇见的坑,希望起到抛砖引玉的作用.大家有不同的问题的可以一起讨论,方便后来的开发者. 容易出错的地方 1.更新 rpk 的时候出现版本

iview 踩坑之旅

公司重构管理系统,框架定了vue,UI在element和iview之间选,element样式被吐槽丑,于是选了iview,但是,,这个坑多啊... 废话少说,罗列了iview中容易出错或者懵逼的一些地方,希望后来的老哥们少费点头发. #环境:vue-2.5, iview-3.0.1# 避免你浪费时间,先列出要点: 1,重置表单: 2,校验表单: 3,  Table相关: 4,select相关. 1,重置表单 1)单独重置某一项: 1 2 3 4 5 this.$refs[name].fields