19.7 主动模式和被动模式
19.8 添加监控主机
19.9 添加自定义模板
19.10 处理图形中的乱码
19.11 自动发现
19.12 添加自定义监控项目
19.13/19.14 配置邮件告警
19.15 测试告警
19.16 不发邮件的问题处理
19.7主动模式和被动模式说明
1,主动或者被动是相对客户端来讲的
2,被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端
3,主动模式,客户端会主动把监控数据汇报给服务端,服务端只负责接收即可。
4,当客户端数量非常多时,建议使用主动模式,这样可以降低服务端的压力。
5,服务端有公网ip,客户端只有内网ip,但却能连外网,这种场景适合主动模式
如果监控的服务器多,那么用主动模式肯定更好
19.8 添加监控主机
进web页面,配置,主机群组,主机的顺序
监控项中定义主动和被动
应用集包含监控项
应用集、监控项、触发器(具有不同的颜色显示)、图形、自动发现、web监测 这几个概念需要知道
Web场景是监控某个网址状态
19.9 添加自定义模板
思路:
配置——模板——创建模半6
添加模板
增加监控项
可以把别的模板用的监控项复制到需要的模板上去
如果一些规则没有复制按钮,但是又很好用,想挪过去
可以把整个导出
然后,在导入到需要用的模板中,删掉不需要的
然后编辑文件导入,但是这个比较麻烦,不建议用,这里我们用其他的办法
这里我们用链接模板
更新之后,就有模板了,但是,这时候是没办法删除的
这时候,我们可以去去掉链接,再删除
然后可以看到监控项还有,这时候,删除监控项再删除应用集
应用集
到这里为止这个模板配置完毕
19.10 处理图形中的乱码
将主机链接到模板上
配置—主机—132—模板—选择—zhaotest—选择—添加—更新
点到主机-图形-预览,发现有方块
这里因为缺少字库我们可以从Window系统中,拷贝一份中文字体,上传到linux服务端上
查看服务端上
用winscp可以简单传过去,我们先放到root目录下
先放到fonts中
[root@localhost ~]# mv /root/STXINWEI.TTF /usr/share/zabbix/fonts/
[root@localhost fonts]# cp graphfont.ttf graphfont.ttf1 //拷贝一下原来的数据
[root@localhost fonts]# mv STXINWEI.TTF graphfont.ttf //更改名称
再看,则正常显示,这时候其实有数据了
如何增加图形
19.11 自动发现
自动发现是一个小时一个统计,这里我们可以配置自动发现
图形中就看到了新的
19.12 添加自定义监控项目
需求,监控web端口80端口连接数,出图
方法:1;zabbix监控中心创建监控项目;2)针对该监控项目以图形展现
先从客户端编写estab.sh脚本
[root@localhost ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
更改权限
[root@localhost ~]# chmod 755 /usr/local/sbin/estab.sh
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf //编辑配置文件
增加之前配置的名字,这里是定义了脚本了[*]中定义写脚本的参数,用逗号隔开
UserParameter=my.estab.counmt[*],/usr/local/sbin/estab.sh
[root@localhost ~]# systemctl restart zabbix-agent
如果都配置对了,打印如下
[root@localhost fonts]# zabbix_get -s 192.168.188.132 -p 10050 -k ' '
0
如果不对,可以临时关闭防火墙
[root@localhost fonts]# setenforce 0
接着在zabbix上配置
图形中添加
也可以创建触发器
测试
19.13 配置邮件告警(上)
如果用163邮箱,先申请163邮箱
配置zabbix
继续配置服务端
[root@localhost fonts]# vim /etc/zabbix/zabbix_server.conf //配置文件找脚本地址
所以我们在这个目录下创建mail.py
[root@localhost fonts]# vim /usr/lib/zabbix/alertscripts/mail.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.163.com'
gport = 25
try:
# msg = MIMEText(unicode(content).encode('utf-8')) //如果发送的邮件有乱码,可以尝试把这行改成如下:
msg = MIMEText(content,'plan','utf-8')
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject
smtp = smtplib.SMTP(gserver, gport)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():
to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很惨)
sendqqmail('xxxxxx@163.com','xxxxx','xxxxxx@163.com',to,subject,content)
if __name__ == "__main__":
main()
#####脚本使用说明######
#1. 首先定义好脚本中的邮箱账号和密码
#2. 脚本执行命令为:python mail.py 目标邮箱 "邮件主题" "邮件内容"
最后修改权限(已经要记住这点)
[root@localhost fonts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py
发现一个错误,是脚本中多了一个1,去掉之后再试试
第一步已经完成了
19.14 配置邮件告警(下)
zabbix创建用户去接受,增加一个用户
增加报警媒介
注意,这里有个坑,权限要去用户群组中更改
更改所有组变成读写
0
再看用户权限是所有组了
检查,一定要是配置上的
最后还是要配置动作
继续改操作
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
记得点击添加
恢复操作
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE} {EVENT.TIME}
LEVEL:{TRIGGER.SEVERITY}
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}
最后的状态是已启用
接下来就是测试报警了
19.15 测试告警
我们故意将监控项改错误
创建一个新的告警,让负载小于1的适合告警
查看最近20个问题
发现有一个提示
修改这里
等待一会儿,发现成功了
因为这里配置了多个告警的原因,所以有些不成功,可以去掉
19.16 不发邮件的问题处理
1,建议写好脚本之后,用python测试一下
2,zabbix上一定要注意对应的配置,触发器,规则,用户,送往的地方要配置正确
扩展:
zabbix监控交换机(思科) http://tryrus.blog.51cto.com/10914693/1789847
zabbix远程执行命令 http://www.ywnds.com/?p=6610
zabbix分布式部署 http://sfzhang88.blog.51cto.com/4995876/1364399
zabbix监控tomcat(版本有点老,大家只需要参考步骤,不能照搬) http://www.fblinux.com/?p=616