天天看点

Linux学习笔记----zabbix监控及邮件报警(二)

回顾zabbix监控系统运行流程:

当我们在企业中,必须随时关注各服务器和网络的运行状况,以便及时发现问题,减少故障发生的情况。当网络中的设备服务器数量较多时,为了方便,快速的获得各种监控信息,就要用到集中监控软件-----zabbix(应用较多的)。

1>>>>>:zabbix:是一个基于web界面的企业级开源(免费)监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控,网络设备的监控,数据库的监控,监控对象多元化,多种警告方式等。

zabbix监控系统运行流程:(捡重要组件来说)

(1):zabbix server:负责接收agent发送报告信息的核心组件,所有配置数据统计数据操作都由它组织进行。

(2):database storage:负责存储所有配置信息以及收集的数据

(3):pxory:可选组件常用于分布式监控环境中

(4):agent:部署在被监控的主机(客户端)上,负责收集被监控端主机的数据。

Agent部署在被监控端上----> 将监控收集到的信息发送给----> pxory,pxory相当于一个中转站 ,把agent发送的信息转交给----> zabbix server;server服务端将收集到的信息存储在----> database storage数据收集库中。

以下案例讲述zabbix监控邮件服务器,及各种处理报警信息

案例环境:

Zabbixserver 192.168.1.10 Lnmp环境+zabbix
Zabbix agent 192.168.1.20 Mysql+agent

Zabbixserver环境基于上篇博文安装zabbix要求,(此处略)

安装mysql数据库(步骤略。。。)

zabbix 客户端的安装

既然要监控我们就要添加要监控的主机,在添加主机之前我们首先要在被检测主机上面安装agent,安装 agent 比较简单,我们也是按照安装 server 的流程,下载软件包,在编译的时候,我们只选择 agent

192.168.1.20 作为 zabbix 的被监控端,提供 web 和 mysql 应用

安装 Zabbix,配置 Zabbix agent:

rz

  [[email protected] ~]#   tar zxf zabbix-3.2.1.tar.gz

  [[email protected] ~]# cd zabbix-3.2.1/

  [[email protected] zabbix-3.2.1]#./configure --prefix=/usr/local/zabbix   --enable-agent   (只安装agent)

  [[email protected] zabbix-3.2.1]#make && make install

[[email protected] zabbix-3.2.1]#useradd zabbix

[[email protected] zabbix-3.2.1]#   cp misc/init.d/fedora/core/zabbix_agentd   /etc/init.d/

[[email protected] zabbix-3.2.1]#vim /etc/init.d/zabbix_agentd  (编辑客户端配置文件)

Linux学习笔记----zabbix监控及邮件报警(二)

[[email protected] zabbix-3.2.1]# chmod +x /etc/init.d/zabbix_agentd

[[email protected] zabbix-3.2.1]# cd /usr/local/zabbix/etc/

配置开机自动启动:

[[email protected] zabbix-3.2.1]# chkconfig --add zabbix_agentd

[[email protected] zabbix-3.2.1]# chkconfig zabbix_agentd  on

修改 zabbix 开机启动脚本中的 zabbix 安装目录

[[email protected] zabbix- etc]# vim zabbix_agentd.conf

(修改如下,前面数字为配置文件中行数)

11  PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid

30 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

91 Server=192.168.1.10

99  ListenPort=10050

132 ServerActive=192.168.1.10

143 Hostname=192.168.1.20

262  Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

 [[email protected] zabbix- etc]#  grep -v ^# zabbix_agentd.conf | grep -v ^$

Linux学习笔记----zabbix监控及邮件报警(二)

其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动后者是主动。也就是说 Server 这个配置是用来允许 192.168.1.10 这个 ip 来或取这些数据。而serverActive 的 192.168.1.10的意思是,客户端主动提交数据给他。

Hostname=XXX,这个定义的名字必须和 web 页面里面 host 的名字一样。

[[email protected] zabbix- etc]# mkdir -p /usr/local/zabbix/logs

[[email protected] zabbix- etc]# chown -R zabbix:zabbix /usr/local/zabbix/logs/

[[email protected] zabbix- etc]#  chown -R zabbix:zabbix /usr/local/zabbix/

启动 zabbix_agentd:

 [[email protected] zabbix- etc]# /etc/init.d/zabbix_agentd start

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

[[email protected] localhost ~]# firewall-cmd --permanent --add-port=10050/tcp

success

[[email protected] localhost ~]# firewall-cmd --reload

Success

到此,zabbix3.2.1 监控系统的基本环境安装完成。

回到server的web页面:

实现 zabbix 添加监测项添加对 Linux 主机的监控

在浏览器中打开:http://192.168.1.10/zabbix

登录 zabbix

配置---主机---创建主机----模板---os Linux

Linux学习笔记----zabbix监控及邮件报警(二)

主机名称:agent

群组:Linux servers

agent 代理程序接口 ip:192.168.1.20

已启用:勾选

其它选项默认即可

切换到模板

Linux学习笔记----zabbix监控及邮件报警(二)

至此,Zabbix 监控 Linux 主机设置完成

Linux学习笔记----zabbix监控及邮件报警(二)

配置过一段时间后,观察下监控图效果出来了没:

Linux学习笔记----zabbix监控及邮件报警(二)

zabbix3.0 server 已自带 mysql 的模板了,只需配置好 agent 客户端,然后在 web 端给主机增加模板就行了。

Zabbix_agent 客户端操作

(1)首先在客户端的 mysql 里添加权限,即本机使用 test 账号连接本地的 mysql

mysql> grant all on *.* to [email protected]%'identified by "123.com”

这里与下面配置文件内容相同

mysql> flush privileges;

(2)在 zabbix_agent 服务目录下创建.my.cnf  连接文件

[[email protected] ]#cd /root/zabbix-3.2.1/conf/zabbix_agentd/

[[email protected] zabbix_agentd]# cp userparameter_mysql.conf  /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[[email protected] zabbix_agentd]#cd /usr/local/zabbix/etc/

[[email protected] etc]# vim .my.cnf

[client]

host=192.168.1.20

user=test

password=123.com

socket=/usr/local/mysql/mysql.sock

Linux学习笔记----zabbix监控及邮件报警(二)

[[email protected] etc]# cd zabbix_agentd.conf.d/

[[email protected] zabbix_agentd.conf.d]# vim userparameter_mysql.conf

Linux学习笔记----zabbix监控及邮件报警(二)

/etc/init.d/zabbix_agentd  restart  (重启agent服务)

用刚创建的test用户来登录mysql数据库;

mysql -u test -p123.com -h 192.168.1.20

mysql> use mysql ;

mysql> show global status;

Linux学习笔记----zabbix监控及邮件报警(二)

回到server主机的终端进行测试:

Linux学习笔记----zabbix监控及邮件报警(二)

如果出现类似这一串 key 的数字,就说明配置 ok,服务端能监控到客户端的 mysql 数据了!成功啦,之后在监控界面增加主机对应的 MySQL 模板就 ok 了。

注:zabbix_get 命令介绍

参数说明:

-s --host:指定客户端主机名或者 IP

-p --port:客户端端口,默认 10050

-I --source-address:指定源 IP,写上 zabbix server 的 ip 地址即可,一般留空,服务器如果有

多 ip 的时候,你指定一个。

-k --key:你想获取的 key

登录 zabbix 监控界面,在“配置”-“模板”里可以看到自带的 mysql 监控模板

Linux学习笔记----zabbix监控及邮件报警(二)

在相应主机监控配置里添加 mysql 的监控模版(zabbix 自带的)即可。

配置---主机---选择刚才创建的主机---模板---选择---APP mysql ---添加---更新

Linux学习笔记----zabbix监控及邮件报警(二)

下面是 mysql 监控项的效果图:

监控 mysql 的操作状态:在 zabbix 前端可以实时查看各种 SQL 语句每秒钟的操作次数。

Linux学习笔记----zabbix监控及邮件报警(二)

监控 mysql 的带宽:在 zabbix 前端可以实时查看 mysql 发送接收的字节数。其中 bytes received 表示从所有客户端接收到的字节数,bytes sent 表示发送给所有客户端的字节数。

Linux学习笔记----zabbix监控及邮件报警(二)

zabbix3.2.1 邮件报警设置:

Zabbix 监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix 监控运行正常。在 Zabbix 服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

具体操作:

以下操作在 Zabbix 监控服务端进行

下载 sendemail 软件

然后安装那两个依赖包,命令是:

yum install perl-Net-SSLeay perl-IO-Socket-SSL –y

rz

 [[email protected] ]#   tar zxf sendEmail-v1.56.tar.gz

 [[email protected] ]# cd sendEmail-v1.56/

[[email protected] sendEmail-v1.56]# cp sendEmail /usr/local/bin/

[[email protected] sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail

[[email protected] sendEmail-v1.56]# vim /usr/local/bin/sendEmail

Linux学习笔记----zabbix监控及邮件报警(二)

编写邮件脚本:

[[email protected] sendEmail-v1.56]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[[email protected] alertscripts]# vim mail.sh

Linux学习笔记----zabbix监控及邮件报警(二)

#!/bin/bash

  to=$1

  subject=$2

body=$3

   /usr/local/bin/sendEmail  -o tls=auto  -f [email protected]  -t "$to"  -s smtp.qq.com  -u     "$subject" -o message-content-type=html  -o message-charset=utf8  -xu [email protected]  -    xp yjmqxuthuhwfbfgd  -m "$body"

命令主要选项说明:

/usr/local/bin/sendEmail                               #命令主程序

-f    [email protected]                                    #发件人邮箱

-t [email protected]                                             #收件人邮箱

-s smtp.qq.com                                        #发件人邮箱的 smtp 服务器

-u "我是邮件主题"                                              #邮件的标题

-o message-content-type=html               #邮件内容的格式,html 表示它是 html 格式

-o message-charset=utf8                            #邮件内容编码

-xu [email protected]                                 #发件人邮箱的用户名

-xp [email protected]$                                           #发件人邮箱密码

-m "我是邮件内容"                                           #邮件的具体内容

[[email protected] alertscripts]# sh mail.sh

测试脚本 :./mail.sh [email protected] test 123

               Sh    mail.sh    收件人地址               主题    内容

执行脚本测试发邮件

./mail.sh [email protected] test 123

进行发送邮件测试时,出现了第一个报错

原因是 sendemail 软件和 perl5 里面的 ssl 版本不兼容导致的,通过修改 sendemail 里面的内容可以解决这个问题。

即不指定 SSL 的版本,让程序来自己选择

不管你使用的是 163/126 邮箱还是 qq 邮箱,你都必须开通 pop3 服务,而且 126/qq 邮箱还

要求使用第三方客户端发送邮件是必须使用授权码登录.

Qq邮箱登录---设置---账户---开启服务(发送短信获取授权码)

Linux学习笔记----zabbix监控及邮件报警(二)

将获取的授权码添加在邮件脚本的配置文件中  -xp  授权码

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

zabbix web 端配置

上面的邮件脚本配置好后,就要在 web 端添加报警媒介,在 web 页面的管理,报警媒介类型页面,点击右边的创建媒体类型

进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择 mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分别对

于 mail.sh 中的 to、 subject 和 body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了

Linux学习笔记----zabbix监控及邮件报警(二)

管理---用户---admin---报警媒介

创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户 admin 也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。

Linux学习笔记----zabbix监控及邮件报警(二)

现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。

在动作这一页名称中写入我们定义的动作名以及触发条件

配置---动作---创建动作---名称—

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

步骤是 1-3,也即是从 1 开始到 3 结束。一旦故障发生,就是执行 Email.sh 脚本发生报警邮件给 zabbix 用户。

假如故障持续了 1 个小时,它也只发送 3 次,第 1-3 次(即前 3 次)邮箱发送给 zabbix 用户,时间间隔为 0 秒。

如果改成 1-0,0 是表示不限制.无限发送 

设置“恢复操作”

Linux学习笔记----zabbix监控及邮件报警(二)

添加好以后就可以看到我们添加的动作名,以及该动作已启用的状态。

Linux学习笔记----zabbix监控及邮件报警(二)

配置---主机---触发器---主机---触发器---群组选择template---主机选择templat APP zabbix agent ----

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

报警测试

将 192.16831.20 服务器的 zabbix_agent 进程关闭。

发现可以正常收到故障报警邮件

[[email protected] ~]# /etc/init.d/zabbix_agentd stop

Stopping zabbix_agentd (via systemctl):                    [  确定  ]

[[email protected] ~]#

在web页面   监测中---仪表盘---

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

开启agent服务:

Linux学习笔记----zabbix监控及邮件报警(二)
Linux学习笔记----zabbix监控及邮件报警(二)

继续阅读