zabbix远程mysql_zabbix--远程执行命令

zabbix 远程执行命令 重启应用 服务器

使用远程执行命令可以在某些时候帮我做一些事情,达到轻量级的自动化,比如当 nginx、mysql、php、redis、tomcat、等等应用挂掉时帮我们自动重启并告警。再比如当磁盘空间满了,自动帮我们清理垃圾日志文件等。看下官网的描述:

使用远程命令,您可以定义在某些情况下,监视的主机上会自动执行某个预定义的命令。

在功能最明显的用途中,您可以尝试:

如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)

如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器

如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/tmp)

根据CPU负载,将VM从一个物理机移植到另一个物理机

在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中

远程命令限制为255个字符。可以通过将多个命令放置在新行上来执行多个命令。远程命令可能包含宏。

如果没有响应,则自动重新启动某些应用程序(Web服务器,中间件,CRM)

如果不响应请求,请使用IPMI“reboot”命令重新启动一些远程服务器

如果磁盘空间不足,可自动释放磁盘空间(删除较旧的文件,清理/ tmp)

根据CPU负载,将VM从一个物理盒移植到另一个物理盒

在CPU(磁盘,内存,任何资源)不足的情况下,将新节点添加到云环境中

实战

描述:该实战是完全创建一个新的模板,用于专们管理日常的一些服务等,在新建的模板上面创建对应服务的监控项、触发器、动作等。

具体步骤:

zabbix-agent端

1)根据官网提示 首先打开zabbix-agent上的 EnableRemoteCommands参数

# vim /etc/zabbix/zabbix_agentd.conf

EnableRemoteCommands=1

2)创建一个脚本存放路径

# mkdir /etc/zabbix/script

3)创建一个新的脚本

# vim /etc/zabbix/script/service_status.sh#!/bin/bash

#Desc:zabbix 远程执行命令、重启应用 nginx、mysql、php、等

#Date:2019-5-8#by:Lee-YJcase $1 inNginx)

result=`pidof nginx |wc -l`echo$result

;;

Php)

result=`pidof php-fpm |wc -l`echo$result

;;

Mysql)

result=`pidof mysqld |wc -l`echo$result

;;*)echo "Usage:$0(Nginx|Php|Mysql)";;esac

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

"pidof nginx |wc -l" 这条命令用于判断nginx进程是否存在,如果存在则返回1,不存在返回0

脚本补充说明

4)赋予脚本执行权限

# chmod +x /etc/zabbix/script/service_status.sh

5)创建一个新的专门用于服务监控的子配置文件

# cd /etc/zabbix/zabbix_agentd.d

# vim userparameter_service.conf

# 获取服务运行状态

UserParameter=service.status[*],/etc/zabbix/script/service_status.sh $1

6)重启 zabbix-agent

# service zabbix-agent restart

7)在 zabbix-server 端用命令进行测试

# zabbix_get -s 47.104.xx.xx -k "service.status[Nginx]"

1# zabbix_get-s 47.104.xx.xx -k "service.status[Mysql]"

1# zabbix_get-s 47.104.xx.xx -k "service.status[Php]"

1

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

当返回1时表示客户端服务正常,当返回0时表示客户端服务不正常(根据上面脚本内容所得)

测试结果补充说明

zabbix-server Web端

1)创建一个模板 Check Service (自定义名字)

54f385ee827de2bdf839249bcded816e.png

创建完成后里面什么东西都没有(应用集、监控项、触发器、图形等)

2)创建一个应用集 service (自定义名字)

aed40c7f77e647080309dd8e4e9659f4.png

d64bccaa11a4b4eed069ef2439411975.png

3)创建监控项(键值说明,这里我们得根据配置文件里面定义的来进行配置;service.status[Nginx])

e202fb3f1859c2ef6dfcaadd190fcf4f.png

689fc3b0b57aca8b39ed9201531a9117.png

5ed68218fd9a28df18b8203e5eace184.png

4)创建触发器(最新的t值说明:根据前面的命令结果判断,pidof vsftpd  |wc -l ,如果nginx处于运行状态该值为1,反正为0则为挂了,所以这里触发器判断是否为0)

99402682c7cf2cc71db96b5251fac328.png

99aec8188a6d971271f01aaafa05334d.png

38cf92fc30ff796e0d9e500f0001194b.png

c6a25d1de478ba36e4266ababab2da54.png

5)给监控的主机链接上 Check Service 模板

4bb77518b6cf7fbc64d266aab5540ce8.png

73547c6a2a3021ea7d88308e88afb647.png

d95c5c85df0525312b70f3e10fe0f331.png

6)测试;在配监控的主机上停掉nginx,后观察仪表盘

33beeb939d0d6fd41b766de94a09b37d.png

从上面可以看到当nginx挂掉后会第一时间发送邮件告知相关人员;但是我们更多的是希望能够帮我们自动重启nginx;那么接下来配置自动重启

7)配置动作(远程执行命令、恢复操作等)

进入:配置 -> 动作 -> 创建动作

5432739336a97b2c81f58bd1f596f50c.png

05fbf3b4a488d19ca71ea37b3a1f8db3.png

配置操作:配置操作时执行重启命令,(注意:因为zabbix 进程是使用zabbix用户来维护的,所以它没有权限去执行重启nginx命令,这里需要先在 zabbix-agent 上授权)

# chmod 640 /etc/sudoers

# vim/etc/sudoers //编辑sudo文件,添加如下两行

# Allow 'zabbix'user to restart nginx without password

zabbix ALL=NOPASSWD: /etc/init.d/nginx restart

c1882fc7e86e7c6ec24878729316d9e9.png

添加恢复操作:

dd4b14f1259f2b1bc222b0ddca5f8828.png

40af4373969b1dbee4b9f2d4e0533a7f.png

5de96bb7441a95ede4c69f53ed772a0b.png

162cf397c2654122ee04716f2b6eca66.png

到这里就配置完成了,当我在 zabbix-agent 上面停掉 nginx,便会自动帮我们重启并发送邮件

66a00ac422d5e4ceda44268d343e3abb.png

至此,zabbix远程执行命令就配置完成了。

附zabbix-agent端上的配置脚本(只针对当前配置里面的nginx、mysql、php)

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#!/bin/bash

#Desc:用于配置zabbix远程执行命令,zabbix-agent端上面的操作(包括nginx、mysql、php)

#Date:2019-5-8#by:Lee-YJmkdir /etc/zabbix/script -pcat >>/etc/zabbix/script/service_status.sh<

#!/bin/bash

#Desc:zabbix 远程执行命令、重启应用 nginx、mysql、php、等

#Date:2019-5-8#by:Lee-YJcase \$1 inNginx)

result=\`pidof nginx |wc -l\`echo\$result

;;

Php)

result=\`pidof php-fpm |wc -l\`echo\$result

;;

Mysql)

result=\`pidof mysqld |wc -l\`echo\$result

;;*)echo "Usage:\$0(Nginx|Php|Mysql)";;esacEOFchmod +x /etc/zabbix/script/service_status.sh

sed -i 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' /etc/zabbix/zabbix_agentd.confcat >/etc/zabbix/zabbix_agentd.d/userparameter_service.conf<

# 获取服务运行状态

UserParameter=service.status[*],/etc/zabbix/script/service_status.sh \$1EOF

service zabbix-agent restartchmod 640 /etc/sudoersecho "zabbix ALL=NOPASSWD: /etc/init.d/nginx restart" >> /etc/sudoersecho "zabbix ALL=NOPASSWD: /etc/init.d/mysqld restart" >> /etc/sudoersecho "zabbix ALL=NOPASSWD: /etc/init.d/php-fpm restart" >> /etc/sudoers

zabbix-agent_config.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值