chenqb 发表于 2019-1-24 14:03:48

基于rhel7.2的Zabbix平台搭建和部署(五)

基于rhel7.2的Zabbix平台搭建和部署(五)
  
  zabbix3.2.1邮件报警设置
  说明:zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,zabiix监控运行正常。
  在zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
  一、zabbix报警部署步骤(操作在Zabbix监控服务端进行):

[*]  安装sendmail两个依赖包
  # yum install -y perl-Net-SSLeay perl-IO-Socket-SSL
[*]  解压sendmail,然后将sendemail复制到/usr/local/bin/目录下,并加上可执行权限,然后修改用户和群组。
  # tar -zxvf sendEmail-v1.56.tar.gz
  # cd sendEmail-v1.56
  # cp sendEmail /usr/local/bin/sendEmail
  # chown zabbix:zabbix /usr/local/bin/sendEmail
  # ll /usr/local/bin/sendEmail
  -rwxr-xr-x 1 zabbix zabbix 80213 Jun 16 23:13 /usr/local/bin/sendEmail
https://s5.运维网.com/wyfs02/M00/99/1F/wKioL1lD9ifyDGXnAAAf4UZFAik479.png
[*]  执行# /usr/local/bin/sendEmail -h可查看sendEmail的帮助
https://s4.运维网.com/wyfs02/M00/99/1F/wKiom1lD9pzTVZfNAAA-4-GXPrY536.png
[*]  邮箱设置
  说明:先去申请一个邮箱,这里以163邮箱为例。
https://s3.运维网.com/wyfs02/M01/99/1F/wKioL1lD-YGDgPSYAAFX3dLReco793.png
https://s3.运维网.com/wyfs02/M00/99/1F/wKioL1lD-wPByOAgAACZjOwbfoQ074.png
  

https://s1.运维网.com/wyfs02/M01/99/20/wKiom1lD-3mTITfHAABoSVWtf2Y167.png
https://s5.运维网.com/wyfs02/M00/99/20/wKiom1lD_BTziB0PAABEIVzk1yc878.png
https://s2.运维网.com/wyfs02/M02/99/20/wKiom1lD_HDjipuRAABFhvtFl2Y876.png
https://s3.运维网.com/wyfs02/M00/99/20/wKiom1lD_L-ikIoPAABBdDxO-bE126.png
  说明:授权码是428xxxwtf
[*]  邮箱测试
  # sendEmail -f 1533xxxx280@163.com -t 1533xxxx280@163.com -s smtp.163.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu 1533xxxx280@163.com -xp 428xxxwtf -m "测试邮件!"
  说明:
  /usr/local/bin/sendEmail          #命令主程序
  -ffrom@163.com            #发件人邮箱
  -tto@163.com                     #收件人邮箱
  -ssmtp.163.com                   #发件人邮箱的smtp服务器
  -u"我是邮件主题"               #邮件的标题
  -omessage-content-type=html      #邮件内容的格式,html表示它是html格式
  -omessage-charset=utf8         #邮件内容编码
  -xufrom@163.com                  #发件人邮箱的用户名
  -xp428xxxwtf                     #发件人邮箱密码或授权码
  -m"我是邮件内容"               #邮件的具体内容
https://s5.运维网.com/wyfs02/M00/99/20/wKiom1lEALTw_dABAABDOvsy8Y4995.png
  从上图我们看出,邮件没发成功,有报错。
  原因是:sendemail软件和perl5里面的ssl版本不兼容导致的,通过修改sendemail里面的内容可以解决这个问题。
  解决办法如下:
  # vim /usr/local/bin/sendEmail
  将1906行改为如下内容:
  1906   if (! IO::Socket::SSL->start_SSL($SERVER)) {
  https://s4.运维网.com/wyfs02/M01/99/20/wKioL1lEAzeh262zAAAQWzbk6IU285.png
  再次验证
  

https://s5.运维网.com/wyfs02/M02/99/20/wKioL1lEAi-ipbBuAAA8Dxjqwss424.png
[*]  登入邮箱查看
https://s3.运维网.com/wyfs02/M01/99/21/wKiom1lEC67TKxfUAAAL81AWA2c092.png

https://s1.运维网.com/wyfs02/M00/99/20/wKiom1lEBGDBzembAAAkfc_I0-Q048.png
  测试成功!
  二、报警脚本

[*]  创建报警脚本
  # cd /usr/local/zabbix/share/zabbix/alertscripts/
  # vim mail.sh
  #!/bin/bash
  to=$1
  subject=$2
  body=$3
  /usr/local/bin/sendEmail-o tls=auto -f 1533xxxx280@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu 1533xxxx280@163.com -xp 428xxxwtf -m "$body"
[*]  执行脚本并测试发邮件
  # chmod +x mail.sh
  # ll mail.sh
  -rwxr-xr-x 1 root root 239 Jun 17 00:39 mail.sh
  # sh mail.sh 1533xxxx280@163.com test 第二次测试
https://s1.运维网.com/wyfs02/M00/99/20/wKioL1lECqLh2N7XAAA7lK_rtJg520.png
[*]  再次查看邮箱
https://s5.运维网.com/wyfs02/M02/99/20/wKioL1lEC3rQt0R7AAALPaKKo-4137.png

https://s5.运维网.com/wyfs02/M01/99/21/wKiom1lECt7h31p-AAAuYpnmvm8290.png
  三、zabbix web端配置

[*]  上面的邮件脚本配置好后,就要在web端添加报警媒介,在web页面的管理,报警媒介类型页面,点击右边的创建媒体类型
  https://s1.运维网.com/wyfs02/M00/99/20/wKioL1lEDG_C0gzXAAA6C_PiSIg512.png
[*]  进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE},分别对于mail.sh中的to、subject和body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了。
https://s5.运维网.com/wyfs02/M01/99/26/wKioL1lEloyiYqn5AADpdlPAj9w778.png
  发现上面步骤完成后报警!从报错内容上分析,应该是名称“邮件报警”无法使用中文。
  解决方法:
  将名称那一项改为:“youjianbaojing”
https://s4.运维网.com/wyfs02/M00/99/27/wKiom1lElryTre4DAABFKA6OYkw807.png
https://s5.运维网.com/wyfs02/M02/99/27/wKiom1lEl6vhAH--AABWoGaSR-o349.png
  说明:添加成功后,会多出一个报警媒介类型!
[*]  创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户admin也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。
https://s3.运维网.com/wyfs02/M02/99/26/wKioL1lEmPzyc27eAACBXAdLZkI387.png
https://s2.运维网.com/wyfs02/M00/99/27/wKiom1lEmVXwp19vAAAfvMULpws365.png
https://s5.运维网.com/wyfs02/M00/99/28/wKioL1lEra_y58I_AAA9pziCf_g217.pnghttps://s2.运维网.com/wyfs02/M00/99/27/wKioL1lEmrLzCb9eAAAnG-u_iw8854.png
[*]现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。
在动作这一页名称中写入我们定义的动作名以及触发条件。
https://s1.运维网.com/wyfs02/M00/99/27/wKioL1lEm3ijeXjtAABQMbHcHcY192.png
https://s3.运维网.com/wyfs02/M01/99/27/wKioL1lEnqnQ31PLAAA9LEY4PJ8218.png
https://s3.运维网.com/wyfs02/M01/99/27/wKiom1lEoEOjuP2OAAA655L20NA047.png
https://s5.运维网.com/wyfs02/M01/99/27/wKioL1lEoJvzWrv3AABJ5xjCT0g807.png
https://s3.运维网.com/wyfs02/M01/99/27/wKiom1lEoQXzKiDmAABUjCbiF9g945.png
https://s3.运维网.com/wyfs02/M00/99/28/wKiom1lEodDDEel4AAB7FGn_d0w590.png
https://s4.运维网.com/wyfs02/M00/99/27/wKioL1lEoi3T68G1AAAjkld0neg456.png
说明:步骤是1-3,也即是从1开始到3结束。一旦故障发生,就是执行Email.sh脚本发生报警邮件给zabbix用户。
  假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。
  如果改成1-0,0是表示不限制.无限发送
  接着设置“恢复操作”:
https://s3.运维网.com/wyfs02/M02/99/27/wKioL1lEov3QzGFQAABEwZNenV0874.png
https://s1.运维网.com/wyfs02/M00/99/2F/wKiom1lFBRSga2KZAABqgs7JJYk507.png
[*]  报警测试
  将192.168.100.120服务器的zabbix_agent进程关闭,然后等待邮件。
  # systemctl stop zabbix_agentd

  # systemctl status zabbix_agentd
https://s5.运维网.com/wyfs02/M02/99/2F/wKioL1lFBu6AwateAAA_lhrUdqg455.png
  查看163邮箱
https://s4.运维网.com/wyfs02/M01/99/2F/wKiom1lFB27BpI1BAAAnS30lRRo389.png
[*]  最后,点击”报表“->”动作日志“,可以看到触发动作的次数(右边还看查看到邮件发送状态“已发送”)。
https://s1.运维网.com/wyfs02/M02/99/2F/wKioL1lFB-PiorjxAACb9jk5Gow262.png

  






页: [1]
查看完整版本: 基于rhel7.2的Zabbix平台搭建和部署(五)