Zabbix-故障预处理和报警升级

本文介绍了如何通过Zabbix监控HTTPD服务,并在服务异常时执行远程Ansible命令进行恢复。当恢复失败,系统将发送邮件通知运维人员,延迟未解决则进一步通知领导。涉及步骤包括Zabbix组件安装、自定义监控项、触发器创建、邮件报警配置、Ansible远程命令及测试故障恢复流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验效果:实现httpd停止服务,zabbix执行远程命令进行恢复,1分钟之后如果恢复失败,发邮件给运维,1分钟之后,问题没解决发邮件给领导

1.环境规划

ip地址

主机

192.168.100.11

zabbix-server,anasible

192.168.100.12

zabbix-agent,httpd

2.zabbix-server安装

3.zabbix-agent安装

4.zabbix-agent上httpd安装

yum install httpd -y

5.自定义监控项

vim /etc/zabbix/zabbix_agentd.conf
UserParameter=httpd,ps -ef|grep -v grep|grep -c '/usr/sbin/httpd'
systemctl  restart zabbix-agent

 6.创建自定义触发器

6.创建自定义触发器 

7.创建邮件报警 

a:创建发件人

b:创建两个收件人

 c.boss用户需要超级管理权限

8.在zabbix-server上使用ansible远程重启httpd

yum install ansible -y
vim /etc/ansible/hosts
[web]
192.168.100.12  ansible_ssh_user='root' ansible_ssh_pass='123456'
​
ansible web -m shell -a 'systemctl restart httpd.service'

客户端效果

[root@oldboy ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: activating (start) since Tue 2019-08-06 22:20:08 CST; 4s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 2839 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 2894 (httpd)
   CGroup: /system.slice/httpd.service
           └─2894 /usr/sbin/httpd -DFOREGROUND
​
Aug 06 22:20:08 oldboy systemd[1]: Starting The Apache HTTP Server...
Aug 06 22:20:08 oldboy httpd[2894]: AH00558: httpd: Could not reliably determine the server's fully qua...ssage
Hint: Some lines were ellipsized, use -l to show in full.
​
[root@oldboy ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-08-06 22:20:13 CST; 295ms ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 2839 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 2894 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─2894 /usr/sbin/httpd -DFOREGROUND
           ├─2898 /usr/sbin/httpd -DFOREGROUND
           ├─2899 /usr/sbin/httpd -DFOREGROUND
           ├─2900 /usr/sbin/httpd -DFOREGROUND
           ├─2901 /usr/sbin/httpd -DFOREGROUND
           └─2902 /usr/sbin/httpd -DFOREGROUND

9.zabbix-server上的zabbix-agent启用远程命令功能

vim /etc/zabbix/zabbix_agentd.conf 
EnableRemoteCommands=1
AllowRoot=1
​
systemctl restart zabbix-agent.service

10.在zabbix-web上配置触发器动作

整体效果如下:

远程命令细节:

命令:ansible web -m shell -a 'systemctl restart httpd.service'

 11.测试zabbix-agent报警升级

测试1:

停止httpd服务

[root@oldboy ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: activating (start) since Tue 2019-08-06 22:20:08 CST; 4s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 2839 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 2894 (httpd)
   CGroup: /system.slice/httpd.service
           └─2894 /usr/sbin/httpd -DFOREGROUND

查看httpd服务状态

[root@oldboy ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-08-06 22:20:13 CST; 295ms ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 2839 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 2894 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─2894 /usr/sbin/httpd -DFOREGROUND
           ├─2898 /usr/sbin/httpd -DFOREGROUND
           ├─2899 /usr/sbin/httpd -DFOREGROUND
           ├─2900 /usr/sbin/httpd -DFOREGROUND
           ├─2901 /usr/sbin/httpd -DFOREGROUND
           └─2902 /usr/sbin/httpd -DFOREGROUND

测试2:

停止httpd服务

[root@oldboy ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: activating (start) since Tue 2019-08-06 22:20:08 CST; 4s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 2839 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
 Main PID: 2894 (httpd)
   CGroup: /system.slice/httpd.service
           └─2894 /usr/sbin/httpd -DFOREGROUND

#使用nc监听80端口,模拟httpd重启失败

yum install nc  -y
nc -l 80

至此,已经实现httpd停止服务,zabbix执行远程命令进行恢复,1分钟之后如果恢复失败,发邮件给运行,1分钟之后,问题没解决发邮件给领导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN-FuWei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值