zabbix安装、邮件报警、自定义监控

 

 1、什么是zabbix及优缺点(对比cacti和nagios)php

 

Zabbix能监视各类网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各类问题。前端

是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。node

 

agent端:主机经过安装agent方式采集数据。mysql

 

server端:经过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再经过php+apache在web前端展现.linux

 

zabbix = cacti + nagiosios

   优势:基于两款工具优势于一身并更强大,实现企业级分布式监控。web

    缺点:2.2版本带宽占用大可是升级到2.4版本后更节省了带宽资源,其它再无发现。sql

 

2、监控功能数据库

 

主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制apache

 

监控主机zabbix有专用的agent,能够监控Linux,Windows,FreeBSD等 。

 

监控网络设备zabbix经过SNMP,ssh(很少用)

 

可监控对象

     设备:服务器,路由器,交换机

  软件:OS,网络,应用程序

  主机性能指标监控

  故障监控: down机,服务不可用,主机不可达

 

3、工做原理

 

一个监控系统运行的大概的流程是这样的:

 

zabbix agent须要安装到被监控的主机上,它负责按期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,

zabbix web根据数据在前端进行展示和绘图。这里agent收集数据分为主动和被动两种模式:

 

主动:agent请求server获取主动的监控项列表,并主动将监控项内须要检测的数据提交给server/proxy

 

被动:server向agent请求获取监控项的数据,agent返回数据。

 

 

 

4、zabbix的组件

 

 zabbix由如下几个组件部分构成:

 

一、Zabbix Server:负责接收agent发送的报告信息的核心组件,全部配置,统计数据及操做数据均由其组织进行;

 

二、Database Storage:专用于存储全部配置信息,以及由zabbix收集的数据;

 

三、Web interface:zabbix的GUI接口,一般与Server运行在同一台主机上;

 

四、Proxy:可选组件,经常使用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;

 

五、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;

 

注:zabbix node也是 zabbix server的一种 。

 

5、zabbix监控环境中基本概念

 

一、主机(host):要监控的网络设备,可由IP或DNS名称指定;

 

二、主机组(host group):主机的逻辑容器,能够包含主机和模板,但同一个组织内的主机和模板不能互相连接;主机组一般在给用户或用户组指派监控权限时使用;

 

三、监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每一个item都由"key"标识;

 

四、触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,

触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";

 

五、事件(event):触发一个值得关注的事情,好比触发器状态转变,新的agent或从新上线的agent的自动注册等;

 

六、动做(action):指对于特定事件事先定义的处理方法,如发送通知,什么时候执行操做;

 

七、报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;

 

八、媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;

 

九、通知(notification):经过选定的媒介向用户发送的有关某事件的信息;

 

十、远程命令(remote command):预约义的命令,可在被监控主机处于某特定条件下时自动执行;

 

十一、模板(template):用于快速定义被监控主机的预设条目集合,一般包含了item、trigger、graph、screen、application以及low-level discovery rule;

模板能够直接连接至某个主机;

 

十二、应用(application):一组item的集合;

 

1三、web场景(web scennario):用于检测web站点可用性的一个活多个HTTP请求;

 

1四、前端(frontend):Zabbix的web接口;

 

6、在centos7.3上安装zabbix4.0

 #安装mariadb10.3数据库
[mariadb]
name=MariaDB
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
#安装mariadb数据库

yum install MariaDB

#安装zabbix4.0的源
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

#安装zabbix所需的组件
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

# mysql -uroot -p密码
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> quit;

#导入zabbix服务器所须要的表和数据
zcat /usr/share/doc/zabbix-server-mysql-4.0.7/create.sql.gz | mysql -uzabbix -pzabbix zabbix

#编辑文件/etc/zabbix/zabbix_server.conf
DBPassword=zabbix

#编辑文件设置时区/etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai(打开注释)

#启动服务和开机自启
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

#浏览器访问
http://server_ip/zabbix

 

点击下一步

 

 

若是这里报错须要从新修改配置文件

/etc/httpd/conf.d/zabbix.conf

列如这里报了时区的错误,须要修改一下配置文件

再次刷新页面

 

 

确认无误以后,点击下一步

 

 

输入刚才建立的数据库zabbix,以及建立的用户zabbix及密码,而后点击下一步

 

 

 

若是这里报没法经过sock文件,链接到数据库的错误。

 

形成这个错误的缘由主要有以下几点:

 1.防火墙,selinux没有关

 2.配置文件的sock文件没有在/var/lib/mysql/下,sock文件是在/tmp下须要修改成/var/lib/mysql/mysql.sock.并从新启动mysql

 3.对于/var/lib/mysql/,没有权限读取,须要修改成chown -R mysql.mysql /var/lib/mysql

 4.zabbix用户受权错误,是查看是授予的localhost权限仍是%权限,便可以在哪一个主机上面登陆

 

解决错误后,再次网站刷新页面

 

 点击下一步

 

 

 点击下一步

 

 

 点击完成

 

 

 输入用户名Admin 密码zabbix

 

 

至此就已经安装并启动成功了,若是须要中文可经过右上角用户修改

 

 

经过配置-主机,能够查看zabbix是否启动

 

 

这里若是有乱码方块

解决办法
在windows下的C:\Windows\Fonts下找到宋体字文件simsun.ttc(其余字体也能够)
上传到linux服务器中
cd /usr/share/zabbix/fonts
#将原来的字体备份
mv graphfont.ttf graphfont.ttf.bak
#把windows中的字体更名为graphfont.ttf
mv simsun.ttc graphfont.ttf

 

 邮件报警

1、关闭sendmail或者postfix

systemctl stop  sendmail  #关闭

chkconfig sendmail off #禁止开机启动

systemctl stop postfix

chkconfig postfix off

备注:

使用外部邮箱帐号时,不须要启动sendmail或者postfix

若是在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱配置信息。

2、安装邮件发送工具mailx

下载mailx:

yum install mailx

whereis mailx #查看安装路径

mailx -V #查看版本信息

3、配置Zabbix服务端外部邮箱

vi /etc/mail.rc #编辑,添加如下信息

set from=xxx@qq.com smtp=smtp.qq.com

set smtp-auth-user=xxqq.com smtp-auth-password=密码

set smtp-auth=login

:wq! #保存退出

echo "zabbix test mail" |mail -s "zabbix" yyy@qq.com

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@qq.com

#这时候,邮箱yyy@1qq.com会收到来自xxx@1qq.com的测试邮件

4、配置Zabbix服务端邮件报警

一、打开Zabbix

用用的两种报警类型

(1)脚本报警

 

 

(2)email报警

 

 

 使用qq邮箱时,须要进入qq邮箱打开 设置-帐号-开启SMTP服务,,会生成SMTP密码,上边图片就是填写的SMTP密码

 

 

二、设置Zabbix用户报警邮箱地址

管理-用户-Admin

 

 选择报警类型

 

 三、设置Zabbix触发报警的动做

 

 

 操做(变量)

主题:

Problem: {EVENT.NAME}故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

内容:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

 

 

 按上面的变量进行填写

 

 恢复操做(变量)

恢复主题:

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

 按上面的变量进行填写

 

 

勾选启动项,点击更新,第一次配置点击保存

 

四、添加Zabbix服务端邮件发送脚本(若是选的是脚本报警执行下面的操做)

cd /usr/lib/zabbix/alertscripts    #进入脚本存放目录

vi sendmail.sh #编辑,添加如下代码

 #!/usr/bin/sh

echo 'start' >> /tmp/zabbix.log
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1
echo "end" >> /tmp/zabbix.log

wq! #保存退出

chown zabbix.zabbix sendmail.sh

chown zabbix.zabbix /tmp/zabbix.log

#设置脚本全部者为zabbix用户

chmod +x sendmail.sh

#设置脚本执行权限

 

5、测试Zabbix报警

关闭Zabbix客户端服务

systemctl stop zabbix_agentd

查看xxx@qq.com邮箱,会收到报警邮件

再开启Zabbix客户端服务

systemctl restart zabbix_agentd

查看xxx@qq.com邮箱,会收到恢复邮件

 

自定义监控

认识userparameter_mysql.conf文件

这个文件在zabbix客户端的子目录下,若是你想要本身来设置监控项的话,参考这个文件便可。

 

编辑zabbix-agent端的的配置文件

vim /etc/zabbix/zabbix_agentd.conf

在最后一行写入

UserParameter=key,value

 

 

重启zabbix-agent

  systemctl restart zabbix-agent

进入zabbix监控系统进行设置

选择对应的agent端

 

 

 

点击监控项建立监控项

 

 

 

到网页最下端选着添加

 

添加触发器用邮件报警

概述

监控项只是用于收集数据。若是须要自动评估收到的数据,咱们则须要定义触发器。触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。

若是收到的数据超过了这个定义好的级别,触发器将被“触发”,或者进入“异常(Problem)”状态——从而引发咱们的注意,让咱们知道有问题发生。

若是数据再次恢复到合理的范围,触发器将会到“正常(Ok)”状态。

 

添加触发器

为监控项配置触发器,前往 配置(Configuration) → 主机(Hosts),找到'新增主机(New host)',点击旁边的触发器(Triggers) ,

而后点击建立触发器(Create trigger)。这将会向咱们展示一个触发器定义表单。

 

 

 

 

严重性更具需求去选

 

 

 监控项选着本身定义的监控项,由于实验是检测MySQL数据是否运行,因此 结果 填 = 0 填写完成选着插入

 

 

 

 

 关闭数据库进行测试

 

查看是否会报警

 

从新启动报警消失

 

相关文章
相关标签/搜索