zabbix实战之httpd(一)

一.本人实验环境

前提是已经安装好zabbix,能够在web界面登陆:http://192.168.239.128/zabbix/html

  192.168.239.128 zabbix-serverweb

  192.168.239.141 zabbix-agent(安装httpd服务,yum install -y httpd,后面要用到因此提早准备好)shell

二.实验步骤

2.1 在zabbix的web主界面中,点击Configuration,下面有Hosts,你能够点击Create host,把192.168.239.141添加到主机中,也能够经过自动发现,自动注册也能够添加上来。vim

2.2 为agent主机192.168.239.141添加applications(至关因而item的集合,能够对监控项进行分类监控),随后建立Items,以下图所示。这里注意的问题是Key很关键(附上参考博客https://www.cnblogs.com/losbyday/articles/5836688.html)
服务器

 

2.3 添加触发器,让触发器表达式的最近一次查询数据为0时,触发报警。app

2.4 建立Graph图形,方便检测,主要是由于item项key,是布尔值,1表示httpd服务正常,0表示httpd已经中止工具

2.5 由于要发送报警(涉及到Media tyep那种类型,那个用户User,还有动做),还要设置Media type,这里我以QQ邮箱为主,发送报警,还能够设置为脚本报警。SMTP server:填QQ的SMTP服务器地址,端口是465,认证选择为SSL/TLS,用户名填写邮箱地址,Password填写受权码,不是本身的邮箱密码,别填错了,还要在QQ邮箱开启那俩个服务,POP3/SMTP服务,IMAP/SMTP服务 。确保已经开启测试

 

2.6 建立一个新用户,用以发送邮件,还应该注意权限问题,我就是卡在了权限上,致使邮箱收不到邮件,以后测试过验证了把权限换成其余权限,没法成功发送邮件。spa

2.7 建立动做actions,发送报警邮件,以及故障接触时发送邮件。.net

 2.8 能够模拟一个场景,在agent端192.168.239.141机器上,手动把httpd服务停掉,就会触发报警,等待几分钟后,而后又手动重启。能够收到两封邮件。

  出问题是发的邮件

  

  问题解决时发的邮件

  

结束语:到这里邮件发送就结束了(看你是否能够发送成功)

还有一个方式是CentOS7 Zabbix邮件报警,经过QQ邮件发送邮件的问题解决方案

第二种方式是以写脚本的方式发送邮件

如何经过shell脚本实现zabbix发送告警邮件,共有5步

1.设置mailx帐号:是配置mailx的发信帐号
2.zabbix服务器端编写邮件发送脚本:是增长zabbix的告警方式,增长经过sendmail.sh脚本方式调用mailx工具
3.zabbix后台配置shell邮件告警方式:是配置zabbix的告警方式,经过邮箱、短信、仍是脚本方式等
4.配置用户的邮箱地址:是配置谁来接收告警邮件
5.定义action:是达到触发条件时,谁接收告警邮件、经过怎样的告警方式

网上都是设置的网易邮箱,我就拿QQ邮箱来实验,由于在博客上看到说QQ邮箱限制比较大,网上截图以下:

参考博客:https://blog.csdn.net/liangpingguo/article/details/79804285

我本身亲自试过

这是我mail.rc中的添加的几行

  set nss-config-dir=/etc/pki/nssdb/

  set smtp-user-starttls

  set ssl-verify=ignore
  set from=1165656776@qq.com
  set smtp=smtps://smtp.qq.com:465
  set smtp-auth-user=1165656776@qq.com
  set smtp-auth-password=*******(填你本身生成的验证码)
  set smtp-auth=login

试着给本身发下邮件看是否成功

[root@zabbix-server alertscripts]# mail -v -s "theme" 1165656776@qq.com
nihao
eot    ctrl +d键结束 

 

EOT

Resolving host smtp.qq.com . . . done.
Connecting to 14.17.57.241:465 . . . connected.
Comparing DNS name: "pop.qq.com"
Comparing DNS name: "dav.qq.com"
Comparing DNS name: "ex.qq.com"
Comparing DNS name: "smtp.qq.com"
SSL parameters: cipher=AES-128, keysize=128, secretkeysize=128,
issuer=CN=GeoTrust RSA CA 2018,OU=www.digicert.com,O=DigiCert Inc,C=US
subject=CN=pop.qq.com,OU=R&D,O=Tencent Technology (Shenzhen) Company Limited,L=Shenzhen,ST=Guangdong,C=CN
220 smtp.qq.com Esmtp QQ Mail Server
>>> EHLO zabbix-server
250-smtp.qq.com
250-PIPELINING
250-SIZE 73400320
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
>>> AUTH LOGIN
334 VXNlcm5hbWU6
>>> MTE2NTY1Njc3NkBxcS5jb20=
334 UGFzc3dvcmQ6
>>> ZXZmenRicnVqeXR4aWVhZw==
235 Authentication successful
>>> MAIL FROM:<1165656776@qq.com>
250 Ok
>>> RCPT TO:<1165656776@qq.com>
250 Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Ok: queued as
>>> QUIT
221 Bye

 成功发送,邮件里多一封,因此证实能够实现,很成功。

 

2.写脚本,首先进入到zabbix默认放脚本的地方 cd  /usr/lib/zabbix/alertscripts

  建立一个shell脚本,名称为sendmail.sh,内容可参考上面的博客

 更改属主及赋予可执行权限

 测试邮件发送脚本

  ok,很完美,成功。

而后在zabbix的文本界面

Administration–>Media types–>Create media type: 
管理–>报警媒介类型–>建立媒体类型 ,建立完成,指定用户,动做。跟上面同样。

 

三.远程执行命令

3.1首先咱们须要在zabbix客户配置文件开启对远程命令的支持,编辑zabbix_agentd.conf,修改

  EnableRemoteCommands=1

  重启客户端

  备注:Aive zabbix不支持远程命令

  确保你的zabbix用户有执行权限,若是某些命令须要root权限,那么请使用sudo

  修改zabbix用户的执行权限

  # visudo或者 vim /etc/sudoers

  zabbix ALL=NOPASSWD:ALL(成功实现)可是由于个人httpd服务是yum安装的,因此这块我写的给它全部的权限。

  zabbix ALL=NOPASSWD:/etc/init.d/httpd start(个人没有实现,下来我在研究研究),大家能够试试

  能够提早在server端能够测试    

中间出现报错,百度查了下问题解决。参考博客:https://www.cnblogs.com/cainiaoit/p/8631813.html

大致意思是经过ps -ef | grep zabbix_agentd,查到相关进程,杀掉kill -9 PID号,重启zabbix_agent服务。ok问题解决,能够经过zabbix_get 命令测试,看是否能够查询到agent的数据。

 

能够在agent端测试,尝试手动关闭httpd服务,看是否可使用配置的远程命令自动启动起来。

 

在生产环境中,这种案例比较多,能够先使用远程命令尝试启动服务或者其余命令,若是问题真的解决不了,能够发报警,人工干预解决问题。 

相关文章
相关标签/搜索