部署Zabbix集中监控系统

Zabbix概述

Zabbix是一个高度集成的企业级开源网络监控解决方案,与Cacti、Nagios相似,提供分布式监控以及集中的Web管理界面。被监控对象只要支持SNMP协议或者运行Zabbix_agents代理程序便可。Zabbix具有常见商业监控软件所具有的功能:主机性能监控、网络设备性能监控、数据库性能监控、ftp等等通用协议的监控,可以利用灵活的可定制警告机制,容许用户对事件发送基于E-mail的警告,能够保证相关维护人员对问题做出快速响应,还能够利用存储数据提供杰出的报表及实时的图形化数据处理,实现对Linux、Windows主机的7*24小时集中监控,监控的项目可包括CPU、内存、磁盘、网卡流量、服务可用性等各类资源。php

实验环境

zabbix服务器:192.168.10.128
linux客户机:192.168.10.142

安装LAMP

为访问Zabbix的web页面html

一、安装lamp

yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash             //安装lamp

二、修改httpd.conf文件

vim /etc/httpd/conf/httpd.conf

ServerName www.xxy.com            //域名

DirectoryIndex index.html index.php           //支持PHP首页

三、修改时区

vi /etc/php.ini

date.timezone = PRC      //设置中国时区

四、关闭防火墙及SElinux,开启httpd及数据库服务

systemctl stop firewalld.service
setenforce 0        //关闭防火墙及SElinux

systemctl start httpd.service
systemctl start mariadb.service             //开启httpd及数据库服务

mysql_secure_installation               //数据库配置

netstat -ntap | egrep '(80|3306)'               //查看80及3306端口

五、编辑首页文件并访问测试

vim /var/www/html/index.php

<?php
phpinfo();
?>

http://192.168.10.128/              //浏览器输入测试

部署Zabbix集中监控系统

六、登陆数据库,提权

mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;       //建立zabbix数据库,并设置字符集
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';        //任何主机上都使用zabbix管理全部库与表,密码为admin123
flush privileges;

七、检查数据库是否可用

修改首页文件,改成以下内容mysql

vim /var/www/html/index.php

<?php
$link=mysql_connect('192.168.10.128','zabbix','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>

http://192.168.10.128/              //浏览器输入测试

部署Zabbix集中监控系统

部署Zabbix服务器

一、安装zabbix服务程序

yum install php-bcmath php-mbstring -y
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm       //会自动生成yum源文件,须要在联网状态
yum install zabbix-server-mysql zabbix-web-mysql -y

二、生成数据库文件

zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix      //生成数据库文件,密码为admin123

三、修改zabbix配置文件

grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf 

38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
101:DBName=zabbix
117:DBUser=zabbix
125:DBPassword=admin123        //只修改本行,其他不用修改
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
474:Timeout=4
517:AlertScriptsPath=/usr/lib/zabbix/alertscripts
528:ExternalScripts=/usr/lib/zabbix/externalscripts
564:LogSlowQueries=3000

部署Zabbix集中监控系统

vim /etc/zabbix/zabbix_server.conf 

DBPassword=admin123

部署Zabbix集中监控系统

vim /etc/httpd/conf.d/zabbix.conf        //修改时区

php_value date.timezone Asia/Shanghai

部署Zabbix集中监控系统

vim /usr/share/zabbix/include/defines.inc.php       //修正图表中文乱码

:%s /graphfont/simkai/g     将本来graphfont字体替换成simkai字体

从微软系统下复制相应的字体文件到 /usr/share/zabbix/fonts 目录中,注意字体名称要对应配置文件,且注意大小写
cp simkai.ttf /usr/share/zabbix/fonts/

部署Zabbix集中监控系统

四、开启zabbix-server服务,重启httpd服务

systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix       //监听在10051端口上

systemctl restart httpd.service

部署Zabbix集中监控系统

五、浏览器访问测试

http://192.168.10.128/zabbix/             //安装后登陆 用户名Admin 密码:zabbix

部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统
设置中文环境:Administrator-Users-点击用户-语言中设置
部署Zabbix集中监控系统linux

配置linux客户机

配置被控服务器,若是服务器也须要被本身监控也须要安装zabbix-agentios

一、安装zabbix-agent

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm         //安装yum源
yum install -y zabbix-agent

二、查看zabbix-agent配置文件

grep -n '^'[a-Z] /etc/zabbix/zabbix_agentd.conf

13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
98:Server=192.168.175.155
139:ServerActive=192.168.175.155
150:Hostname=test
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

部署Zabbix集中监控系统

三、关闭防火墙及SElinux,开启zabbix-agent服务

syatemctl stop firewalld.service
setenforce 0

systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.service
netstat -anpt | grep zabbix         //监听在10050端口

部署Zabbix集中监控系统

zabbix服务端添加被控主机

web页面上操做步骤:配置→主机→建立主机
部署Zabbix集中监控系统
部署Zabbix集中监控系统
模板页须要连接模板,根据须要连接相应的模板,这里我添加了sshd和httpd两个服务
部署Zabbix集中监控系统
部署Zabbix集中监控系统web

zabbix服务器配置邮件报警功能

一、安装邮箱服务

yum -y install mailx

二、修改/etc/mail.rc文件

vi /etc/mail.rc     //注意网易邮箱须要开启客户端受权码进行第三方登陆

#文件末尾添加
set from=131********@139.com        //实际不是*号
set smtp=smtp.139.com
set smtp-auth-user=131********@139.com
set smtp-auth-password=邮箱密码
set smtp-auth=login

部署Zabbix集中监控系统

三、测试邮箱发送功能

echo "hello world" | mail -s "testmail" 131********@139.com        //测试发信是否正常

部署Zabbix集中监控系统

四、编写发邮件脚本

cd /usr/lib/zabbix/alertscripts

vi mailx.sh //编写发邮件脚本

#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

touch /tmp/mailx.log     //建立日志文件 
chown -R zabbix.zabbix  /tmp/mailx.log       //设置日志文件属主属组
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh       //给发邮件脚本执行权限
chown -R zabbix.zabbix /usr/lib/zabbix/        //设置/usr/lib/zabbix/目录属主属组

五、发邮件测试

./mailx.sh 131********@139.com "主题" "内容"       //测试发邮件脚本是否能够正常工做

./mailx.sh 131********@139.com "test" "this is test"

部署Zabbix集中监控系统

部署邮件报警

在zabbix服务器web页面上配置sql

一、设置报警媒体类型

管理→报警媒体类型→建立媒体类型

名称:Mail-Test
类型:脚本
脚本名称:mailx.sh
脚本参数:         //新增如下三个参数

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

部署Zabbix集中监控系统
部署Zabbix集中监控系统

二、设置报警媒介

管理→用户→点击Admin→报警媒介

类型:Mail-Test      //调用上面设置的脚本
收件人:131********@139.com
其它默认保存

部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统

三、设置出问题后的动做

配置→动做→建立动做→删除默认标签,修改触发条件

名称:Mailx
条件 A 主机群组=Linux servers

部署Zabbix集中监控系统
部署Zabbix集中监控系统
部署Zabbix集中监控系统

操做→以下配置

默认操做步骤持续时间 60
默认标题: {TRIGGER.STATUS}:{TRIGGER.NAME}
消息内容:

告警主机:{HOST.NAME}
告警  IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件  ID:{EVENT.ID}

操做细节:

步骤:1-3
步骤持续时间:60
操做类型:发送消息
发送到用户:Admin (Zabbix Administrator) 
仅送到:Mail-Test       //必定要配置不然邮件发送不成功

部署Zabbix集中监控系统

恢复操做→以下配置

默认标题:{TRIGGER.STATUS}:{TRIGGER.NAME}
消息内容:

恢复主机:{HOST.NAME}
恢复  IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复  ID:{EVENT.ID}

操做细节:
操做类型:发送消息
发送到用户:Admin (Zabbix Administrator) 
仅送到:Mail-Test          //必定要配置不然邮件发送不成功

部署Zabbix集中监控系统
添加完成
部署Zabbix集中监控系统数据库

四、zabbix服务端与linux客户端分别重启服务

systemctl restart zabbix-server               //zabbix服务端重启zabbix-server
systemctl restart zabbix-agent.service             //linux客户端重启zabbix-agent.service

五、测试报警

#能够在被控主机上模拟相关参数超过阈值,如磁盘空间。而后验证邮件收发。
systemctl stop httpd.service      //linux客户端上开启了httpd服务,现将其关闭,测试报警邮件的发送

正常监控页面以下
部署Zabbix集中监控系统
被控端关闭httpd服务后出现问题
部署Zabbix集中监控系统
收到邮件提醒
部署Zabbix集中监控系统
被控端开启httpd服务,显示问题已解决
部署Zabbix集中监控系统
问题解决邮件提醒
部署Zabbix集中监控系统vim

相关文章
相关标签/搜索