2018.4.16 16周4次课

十六周四次课(4月16日)

19.12 添加自定义监控项目

19.13/19.14 配置邮件告警

19.15 测试告警

19.16 不发邮件的问题处理

19.12 添加自定义监控项目

前面提到过zabbix的优势,其中之一就是很方便地添加自定义监控项目,它虽然提供了丰富的模板,但依然不能满足各种各样的特殊需求。比如,想要监控Nginx的访问日志条数,此类个性化需求在zabbix的模板中是没有的。下面举一个实际的例子来教你添加自定义的监控项目,这涉及编写shell脚本。需求是:监控某台web服务器80端口的并发连接数,并设置图形。

先来分析一下该需求,有两步,第一是要创建自定义监控项,第二是要针对该监控项设置成图形。而该监控项不能在zabbix自带模板中找到,只能自己手动创建,监控项目有一个核心的元素就是数据源,有了数据源就可以创建监控项了,并且也很容易成图形。所以,问题的焦点在于:如何获取服务器80端口的并发连接数

需求:监控某台web的80端口连接数,并出图

两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现

在前面的章节中,曾经介绍过一个命令netstat,其中它有一个用法nestat -ant可以查看系统 TCP连接状态情况,在各个状态中有一个ESTABLISHED'它表示正在连接中。由此,就可以获取80端口的并发连接数,具体命令为:netstat -ant |grep ':80 ' |grep ESTABLISHED

80后面多了一个空格,这是为了更加精准,如果不加空格,8080这样的端口也会包含在内了。

对于第一步,需要到客户端定义脚本

vim /usr/local/sbin/estab.sh //内容如下

#!/bin/bash

##获取80端口并发连接数

netstat -ant |grep ':80 ' |grep -c ESTABLISHED

更改权限:chmod 755 /usr/local/sbin/estab.sh

客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf //增加

UnsafeUserParameters=1  //表示使用自定义脚本

UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh,[*]:*表示后面的脚本没有参数,如果有参数就写在中括号里,用逗号分隔

重启zabbix-agent服务:systemctl restart zabbix-agent

首先到服务端验证,执行命令

zabbix_get -s 192.168.37.104 -p 10050 -k 'my.estab.count' //得到的数字是0,如果不是说明脚本执行不对;-s:指定客户端IP;-p:指定端口,如果不指定就是用默认的10050;-k:指定键值

检查网络防火墙:

然后在zabbix监控中心(浏览器)配置增加监控项目

键值写my.estab.count

添加该项目后,到“监测中”→“最新数据”查看刚添加的项目是否有数据出现

依次点击“配置" →“主机",找到aming-06主机,然后点击“创建监控项",名称写“并发连接数",键值写类型保持默认,即被动模式,如果选择"zabbix客户端(主动式)"则为主动模式。键值写my.estab.count。其他项保持默认,点击最下面的“添加"按钮

目前还不确定是否正确添加监控项,依次点击”监测中”→“最新数据",主机那一栏选择aming-06,名称填写“ 80端口",然后点击“应用"按钮,则会过滤出刚刚添加的“并发连接数"监控项,可以看一下最新数据是什么。最新数据为0,这说明没有问题。

有了数据就可以添加图形了

“配置” “主机” “图形” “创建图形

如果需要报警的话,还可以做一个触发器

“配置” “主机” “触发器” “创建触发器”

19.13/19.14 配置邮件告警

使用126或者QQ邮箱发告警邮件

首先登录你的126邮箱,设置开启POP3、IMAP、SMTP服务

开启并记录授权码

然后到监控中心设置邮件告警

“管理”,“报警媒介类型”,“创建媒体类型”

{ALERT.SENDTO} ,{ALERT.SUBJECT},{ALERT.MESSAGE} //分布在python脚本的三个参数里

依次点击“管理"→“报警媒介类型",在右上角点击“创建媒体类型",名称填写baojing, 类型为“脚本",脚本名字填写mail.py。脚本参数这里点击“添加",然后填写{ALERT. SENDTO};继续点 “添加" , 填写{ALERT.SUBJECT} ;继续点 “添加",填写{ALERT.MESSAGE} 。也就是说 ,三个参数需要添加三次,最后点击下方的“添加" 蓝色按钮。

上一步仅仅是定义了告警媒介,但还未创建脚本,也未定义脚本的路径等信息。首先通过zabbix_server的配置文件确定告警邮件的脚本应该放到哪里

编辑服务端配置文件:vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/aIertscripts

创建报警脚本mail.py

vim /usr/lib/zabbix/alertscripts/mail.py //内容参考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py

其中gserver = 'smtp.xxx.com' //更改为自己邮箱的smtp服务器

sendqqmail('邮箱地址,'邮箱的客户端授权密码','邮箱地址',to,subject,content)

更改脚本权限:chmod 755 /usr/lib/zabbix/alertscripts/mail.py

执行脚本:python /usr/lib/zabbix/alertscripts/mail.py 邮箱地址 “标题”“内容“

创建一个接受告警邮件的用户,“管理”→“用户”→“创建用户”→“报警媒介”,类型选择“baojing”,注意用户的权限,如果没有需要到选择的用户组去设置权限

设置动作,“配置”→“动作”→“创建动作”,名称写“sendmail”(自定义),

“操作”页面,内容如下

HOST:{HOST.NAME} {HOST.IP} //定义的主机名和IP

TIME:{EVENT.DATE}  {EVENT.TIME} //发生的日期和时间

LEVEL:{TRIGGER.SEVERITY} //定义的示警度

NAME:{TRIGGER.NAME} //告警的触发器名

messages:{ITEM.NAME}:{ITEM.VALUE} //出现告警时的状态信息

ID:{EVENT.ID} //事件的ID

“新的触发条件”,A维护状态 非在 维护,B触发器示警度>=未分类

“操作”,选择发送的用户为刚创建的用户“aming“,仅送到选择“baojing”

切换到“恢复操作”,把信息改成如下

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

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

LEVEL:{TRIGGER.SEVERITY}

NAME:{TRIGGER.NAME}

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

ID:{EVENT.ID}

点击“新的”,“操作”,选择发送的用户为刚创建的用户aming,仅送到选择“baojing”

19.15 测试告警

创建一个自定义的触发器

测试:

查看邮箱,报警邮件收到

原文地址:http://blog.51cto.com/415326/2104150

时间: 2024-10-31 16:19:57

2018.4.16 16周4次课的相关文章

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.4.25 18周1次课

十八周一次课(4月25日) 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及什么是正确的应答.它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. 我们熟知的shell编程功能虽然很强大,但是

2018.1.23 7周2次课

七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 10.6 监控io性能 1. iostat来对linux硬盘IO性能进行检测 使用iostat,需要先安装sysstat ,即yum -y install sysstat iostat可以产生三种类型的报告:CPU利用情况报告.设备利用情况报告.网络文件系统利用情况报告. iostat命令格式可概述为: iostat[参数][时间][次数] 其中,时

2018.1.25 7周4次课

七周四次课(1月25日) 10.15 iptables filter表案例 10.16/10.17/10.18 iptables nat表应用 10.15 iptables filter表案例 需求:只针对filter表,预设策略INPUT链DROP, 其他两个链ACCEPT,然后针对192.168.37.0/24开通22端口,对所有网段开放80端口,对所有网段开放21端口. 这个需求不算复杂,但是因为有多条规则,所以最好写成脚本的形式.脚本内容如下: vi /usr/local/sbin/ip

2018.3.29 14周4次课

十四周四次课(3月29日) 16.1 Tomcat介绍 16.2 安装jdk 16.3 安装Tomcat 16.1 Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同开发而成. java程序写的网站用tomcat+jdk来运行 tomcat是一个中间件,真正起作用的,解析java脚本的是jdk jdk(java development kit)是整个ja

2018.1.8 5周1次课

五周第一次课(1月8日) 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库 7.1 安装软件包的三种方法 rpm工具 yum工具 源码包 在Windows系统下安装软件很简单,只要双击后缀为.exe的文件,然后根据提示连续单击"下一步" 按钮即可. 然而在Linux系统下安装软件就没那么容易了,因为我们不是在图形界面下.所以,你必须学会如何在Linux下安装软件 前面我们多次提到了yum命令,它是Red Ha

2018.1.10 5周3次课

五周第三次课(1月10日) 8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向 8.1 shell介绍 shell是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具.实际上,在shell和计算机硬件之间还有一层东西一一系统内核.如果把计算机硬件比作一个人的躯体,那系统内核就是人的大脑.至于shell,把它比作人的五官似乎更贴切些.言归正传,用户直接面对的不是计算机硬件而是shell,用户把指令告诉shell,然后shell再传输给系