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

编程入门 行业动态 更新时间:2024-10-15 10:19:49

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

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

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

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

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

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

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

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

 

Agent部署在被监控端上----> 将监控收集到的信息发送给----> pxorypxory相当于一个中转站 ,把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

  [root@localhost ~]#   tar zxf zabbix-3.2.1.tar.gz

  [root@localhost ~]# cd zabbix-3.2.1/

  [root@localhost zabbix-3.2.1]#./configure --prefix=/usr/local/zabbix   --enable-agent   (只安装agent

  [root@localhost zabbix-3.2.1]#make && make install

[root@localhost zabbix-3.2.1]#useradd zabbix

[root@localhost zabbix-3.2.1]#   cp misc/init.d/fedora/core/zabbix_agentd   /etc/init.d/

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

[root@localhost zabbix-3.2.1]# chmod +x /etc/init.d/zabbix_agentd

[root@localhost zabbix-3.2.1]# cd /usr/local/zabbix/etc/

配置开机自动启动:

[root@ zabbix-3.2.1]# chkconfig --add zabbix_agentd

[root@ zabbix-3.2.1]# chkconfig zabbix_agentd  on

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

[root@localhost 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/

 [root@localhost 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 的名字一样。

[root@localhost zabbix- etc]# mkdir -p /usr/local/zabbix/logs

[root@localhost zabbix- etc]# chown -R zabbix:zabbix /usr/local/zabbix/logs/

[root@localhost zabbix- etc]#  chown -R zabbix:zabbix /usr/local/zabbix/

启动 zabbix_agentd

 [root@localhost zabbix- etc]# /etc/init.d/zabbix_agentd start

[root@ localhost ~]# firewall-cmd --permanent --add-port=10050/tcp

success

[root@ localhost ~]# firewall-cmd --reload

Success

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

 

回到serverweb页面:

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

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

登录 zabbix

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

主机名称:agent

群组:Linux servers

agent 代理程序接口 ip192.168.1.20

已启用:勾选

其它选项默认即可

切换到模板

 

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

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

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

Zabbix_agent 客户端操作

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

mysql> grant all on *.* to test@192.168.1.%'identified by "123”

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

mysql> flush privileges;

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

[root@localhos ]#cd /root/zabbix-3.2.1/conf/zabbix_agentd/

[root@localhost zabbix_agentd]# cp userparameter_mysql.conf  /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@localhost zabbix_agentd]#cd /usr/local/zabbix/etc/

[root@localhost etc]# vim .myf

[client]

host=192.168.1.20

user=test

password=123

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

[root@localhost etc]# cd zabbix_agentd.conf.d/

[root@localhost zabbix_agentd.conf.d]# vim userparameter_mysql.conf

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

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

mysql -u test -p123 -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

 [root@localhos ]#   tar zxf sendEmail-v1.56.tar.gz

 [root@localhos ]# cd sendEmail-v1.56/

[root@localhos sendEmail-v1.56]# cp sendEmail /usr/local/bin/

[root@localhos sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail

[root@localhos sendEmail-v1.56]# vim /usr/local/bin/sendEmail

编写邮件脚本:

[root@localhos sendEmail-v1.56]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[root@localhost alertscripts]# vim mail.sh

 

#!/bin/bash

  to=$1

  subject=$2

body=$3

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

命令主要选项说明:

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

-f    576075690@qq                                    #发件人邮箱

-t 576075690@qq                                             #收件人邮箱

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

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

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

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

-xu 576075690@qq                                 #发件人邮箱的用户名

-xp WEE78@12l$                                           #发件人邮箱密码

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

[root@localhost alertscripts]# sh mail.sh

测试脚本 ./mail.sh 576075690@qq test 123

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

执行脚本测试发邮件

./mail.sh 576075690@qq 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-00 是表示不限制.无限发送 

设置“恢复操作”

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

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

报警测试

192.16831.20 服务器的 zabbix_agent 进程关闭。

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

[root@localhost ~]# /etc/init.d/zabbix_agentd stop

Stopping zabbix_agentd (via systemctl):                    [  确定  ]

[root@localhost ~]#

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

开启agent服务:

 

更多推荐

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

本文发布于:2023-06-14 09:57:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1463010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   邮件   Linux   zabbix

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!