回顾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 (编辑客户端配置文件)
[[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 ^$
其中 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
[[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
主机名称:agent
群组:Linux servers
agent 代理程序接口 ip:192.168.1.20
已启用:勾选
其它选项默认即可
切换到模板
至此,Zabbix 监控 Linux 主机设置完成
配置过一段时间后,观察下监控图效果出来了没:
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
[[email protected] etc]# cd zabbix_agentd.conf.d/
[[email protected] zabbix_agentd.conf.d]# vim userparameter_mysql.conf
/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;
回到server主机的终端进行测试:
如果出现类似这一串 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 监控模板
在相应主机监控配置里添加 mysql 的监控模版(zabbix 自带的)即可。
配置---主机---选择刚才创建的主机---模板---选择---APP mysql ---添加---更新
下面是 mysql 监控项的效果图:
监控 mysql 的操作状态:在 zabbix 前端可以实时查看各种 SQL 语句每秒钟的操作次数。
监控 mysql 的带宽:在 zabbix 前端可以实时查看 mysql 发送接收的字节数。其中 bytes received 表示从所有客户端接收到的字节数,bytes sent 表示发送给所有客户端的字节数。
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
编写邮件脚本:
[[email protected] sendEmail-v1.56]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[[email protected] alertscripts]# vim mail.sh
#!/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邮箱登录---设置---账户---开启服务(发送短信获取授权码)
将获取的授权码添加在邮件脚本的配置文件中 -xp 授权码
zabbix web 端配置
上面的邮件脚本配置好后,就要在 web 端添加报警媒介,在 web 页面的管理,报警媒介类型页面,点击右边的创建媒体类型
进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择 mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分别对
于 mail.sh 中的 to、 subject 和 body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了
管理---用户---admin---报警媒介
创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户 admin 也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。
现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。
在动作这一页名称中写入我们定义的动作名以及触发条件
配置---动作---创建动作---名称—
步骤是 1-3,也即是从 1 开始到 3 结束。一旦故障发生,就是执行 Email.sh 脚本发生报警邮件给 zabbix 用户。
假如故障持续了 1 个小时,它也只发送 3 次,第 1-3 次(即前 3 次)邮箱发送给 zabbix 用户,时间间隔为 0 秒。
如果改成 1-0,0 是表示不限制.无限发送
设置“恢复操作”
添加好以后就可以看到我们添加的动作名,以及该动作已启用的状态。
配置---主机---触发器---主机---触发器---群组选择template---主机选择templat APP zabbix agent ----
报警测试
将 192.16831.20 服务器的 zabbix_agent 进程关闭。
发现可以正常收到故障报警邮件
[[email protected] ~]# /etc/init.d/zabbix_agentd stop
Stopping zabbix_agentd (via systemctl): [ 确定 ]
[[email protected] ~]#
在web页面 监测中---仪表盘---
开启agent服务: