2211we 发表于 2016-4-18 10:26:16

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官方文档既可

喵喵俠 发表于 2016-4-28 16:22:19

楼主,请问下 我单台服务器,即是server也是agentd然后测试tomcat down掉重启功能。zabbix web界面查看命令是执行正常的。 但是服务器上tomcat却没有启动。有遇到过这种情况吗?这个要怎么处理才好?
页: [1]
查看完整版本: Zabbix 踩坑之旅——zabbix触发重启tomcat