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页面,配置,主机群组,主机的顺序

go编写监控linux服务器的代码 linux搭建监控服务器_服务端

监控项中定义主动和被动

应用集包含监控项

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_02

应用集、监控项、触发器(具有不同的颜色显示)、图形、自动发现、web监测 这几个概念需要知道

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_03

Web场景是监控某个网址状态

 

 

19.9 添加自定义模板

思路:

配置——模板——创建模半6

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_04

添加模板

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_05

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_06

增加监控项

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_07

可以把别的模板用的监控项复制到需要的模板上去

如果一些规则没有复制按钮,但是又很好用,想挪过去

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_08

可以把整个导出

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_09

然后,在导入到需要用的模板中,删掉不需要的

然后编辑文件导入,但是这个比较麻烦,不建议用,这里我们用其他的办法

这里我们用链接模板

 

go编写监控linux服务器的代码 linux搭建监控服务器_vim_10

更新之后,就有模板了,但是,这时候是没办法删除的

这时候,我们可以去去掉链接,再删除

go编写监控linux服务器的代码 linux搭建监控服务器_vim_11

然后可以看到监控项还有,这时候,删除监控项再删除应用集

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_12

应用集

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_13

到这里为止这个模板配置完毕

 

 

19.10 处理图形中的乱码

将主机链接到模板上

配置—主机—132—模板—选择—zhaotest—选择—添加—更新

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_14

点到主机-图形-预览,发现有方块

go编写监控linux服务器的代码 linux搭建监控服务器_vim_15

这里因为缺少字库我们可以从Window系统中,拷贝一份中文字体,上传到linux服务端上

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_16

查看服务端上

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_17

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_18

用winscp可以简单传过去,我们先放到root目录下

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_19

先放到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  //更改名称

再看,则正常显示,这时候其实有数据了

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_20

如何增加图形

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_21

go编写监控linux服务器的代码 linux搭建监控服务器_vim_22

 

 

19.11 自动发现

自动发现是一个小时一个统计,这里我们可以配置自动发现

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_23

 

go编写监控linux服务器的代码 linux搭建监控服务器_vim_24

图形中就看到了新的

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_25

 

 

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

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_26

更改权限

[root@localhost ~]# chmod 755 /usr/local/sbin/estab.sh

[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf     //编辑配置文件

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_27

增加之前配置的名字,这里是定义了脚本了[*]中定义写脚本的参数,用逗号隔开

UserParameter=my.estab.counmt[*],/usr/local/sbin/estab.sh

go编写监控linux服务器的代码 linux搭建监控服务器_vim_28

[root@localhost ~]# systemctl restart zabbix-agent

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_29

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_30

如果都配置对了,打印如下

[root@localhost fonts]# zabbix_get -s 192.168.188.132 -p 10050 -k '  '

0

如果不对,可以临时关闭防火墙

[root@localhost fonts]# setenforce 0

接着在zabbix上配置

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_31

图形中添加

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_32

也可以创建触发器

测试

go编写监控linux服务器的代码 linux搭建监控服务器_vim_33

 

 

19.13 配置邮件告警(上)

 

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_34

如果用163邮箱,先申请163邮箱

 

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_35

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_36

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_37

配置zabbix

 

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_38

继续配置服务端

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_39

[root@localhost fonts]# vim /etc/zabbix/zabbix_server.conf  //配置文件找脚本地址

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_40

所以我们在这个目录下创建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 目标邮箱 "邮件主题" "邮件内容"

 

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_41

最后修改权限(已经要记住这点)

[root@localhost fonts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_42

发现一个错误,是脚本中多了一个1,去掉之后再试试

go编写监控linux服务器的代码 linux搭建监控服务器_vim_43

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_44

第一步已经完成了

 

 

19.14 配置邮件告警(下)

zabbix创建用户去接受,增加一个用户

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_45

增加报警媒介

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_46

注意,这里有个坑,权限要去用户群组中更改

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_47

 

 

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_48

更改所有组变成读写

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_49

 

0

 

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_50

再看用户权限是所有组了

检查,一定要是配置上的

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_51

最后还是要配置动作

go编写监控linux服务器的代码 linux搭建监控服务器_vim_52

继续改操作

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE}  {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_53

go编写监控linux服务器的代码 linux搭建监控服务器_vim_54

记得点击添加

go编写监控linux服务器的代码 linux搭建监控服务器_vim_55

恢复操作

HOST:{HOST.NAME} {HOST.IP}

TIME:{EVENT.DATE}  {EVENT.TIME}

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

messages:{ITEM.NAME}:{ITEM.VALUE}

ID:{EVENT.ID}

go编写监控linux服务器的代码 linux搭建监控服务器_vim_56

最后的状态是已启用

接下来就是测试报警了

 

 

19.15 测试告警

我们故意将监控项改错误

创建一个新的告警,让负载小于1的适合告警

go编写监控linux服务器的代码 linux搭建监控服务器_客户端_57

go编写监控linux服务器的代码 linux搭建监控服务器_vim_58

查看最近20个问题

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_59

发现有一个提示

go编写监控linux服务器的代码 linux搭建监控服务器_go编写监控linux服务器的代码_60

修改这里

go编写监控linux服务器的代码 linux搭建监控服务器_vim_61

等待一会儿,发现成功了

go编写监控linux服务器的代码 linux搭建监控服务器_服务端_62

因为这里配置了多个告警的原因,所以有些不成功,可以去掉

 

 

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