接上一篇,安装好zabbix客户端和服务端、初始化完web前端后,接下来的就是将监控主机、设备加入监控,监控的目的是及时得到运维场景的各类告警,并及时采起各类挽救措施。
整个运维流程大体是:首先按项目角色新建zabbix用户群组,其次新建对应用户并设置报警媒介,随后按应用服务和项目名称新建主机群组;再就是新建模版、监控项和触发器,或者导入各类应用模版;最后加入监控主机并设置告警动做。
下面逐一实现:
1,新建op用户群组
单击 新建用户群组
输入组名ops,单击添加便可
2,新建用户
安全起见,禁用guest用户
新建用户如上图
3,新建报警媒介
报警媒介有四种,如上图,用的最多的就是电子邮件和脚本,脚本很是灵活,微信、QQ、邮件均可实现。
这里用脚本实现邮件告警
|
4,在zabbix server端设置与上图对应的告警脚本html
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz前端
tar zxf sendEmail-v1.56.tar.gz -C /usr/srcweb
cd /usr/src/sendEmail-v1.56centos
cp -a sendEmail /usr/local/bin安全
yum install perl-Net-SSLeay perl-IO-Socket-SSL -ybash
# /usr/local/bin/sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u "我是邮件主题" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 123456 -m "我是邮件内容" -l /var/log/sendMyEmail.log服务器
命令说明:微信
/usr/local/bin/sendEmail 命令主程序 -f from@163.com 发件人邮箱 -t to@163.com 收件人邮箱 -s smtp.163.com 发件人邮箱的smtp服务器 -u "我是邮件主题" 邮件的标题 -o message-content-type=html 邮件内容的格式,html表示它是html格式 -o message-charset=utf8 邮件内容编码 -xu from@163.com 发件人邮箱的用户名 -xp 123456 发件人邮箱密码 -m "我是邮件内容" 邮件的具体内容app
-l /var/log/sendMyEmail.log 非必输项,邮件发送日志记录到日志文件运维
报错:
*******************************************************************
Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you really don't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application.
*******************************************************************
at /usr/bin/sendEmail line 1906.
invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415.
centos7.2默认perl的版本是5.16,centos6.5的是5.10,把7上perl的版本换成5.10,就能够正常发邮件了
wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz
tar -zxf perl-5.10.0.tar.gz
cd perl-5.10.0
./configure.gnu -des -Dprefix=/usr/local/perl
make
make install
mv /usr/bin/perl /usr/bin/perl.bak
ln -s /usr/local/perl/bin/perl /usr/bin/perl
perl -v
修改/usr/local/etc/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/etc/alertscripts
cd /usr/local/etc/
mkdir alertscripts
vi ./alertscripts/sendEmail.sh
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -f from@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp password -m "$body"
chmod +x sendEmail.sh
chown zabbix.zabbix -R ./alertscripts
service zabbix_server restart
5,在zabbix web端,为告警用户monitor设置报警媒介
随后在ops组设置权限,选择全部组,读写
6,设置告警动做
新建动做
设置具体操做:默认的步骤是1-1,也便是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给ops组和monitor用户
设置恢复时操做后,单击更新
操做和恢复操做的‘默认信息’框,官方默认的格式发到邮件里会叠加在一起,不便于查看,最好如图写成HTML格式的:
告警主机: {HOSTNAME1}<br/> 告警时间: {EVENT.DATE} {EVENT.TIME}<br/> 告警等级: {TRIGGER.SEVERITY}<br/> 告警信息: {TRIGGER.NAME}<br/> 告警项目: {TRIGGER.KEY1}<br/> 问题详情: {ITEM.NAME}: {ITEM.VALUE}<br/> 当前状态: {TRIGGER.STATUS}: {ITEM.VALUE1}<br/> 事件ID: {EVENT.ID}<br/> 1,CPU Load(webserver:system.cpu.load):$1 2,...
至此告警动做设置完成,要动做生效需下一篇添加主机、设置监控项、触发器