Zabbix概述
Zabbix是一个高度集成的企业级开源网络监控解决方案,与Cacti、Nagios类似,提供分布式监控以及集中的Web管理界面。被监控对象只要支持SNMP协议或者运行Zabbix_agents代理程序即可。Zabbix具备常见商业监控软件所具备的功能:主机性能监控、网络设备性能监控、数据库性能监控、ftp等等通用协议的监控,能够利用灵活的可定制警告机制,允许用户对事件发送基于E-mail的警告,可以保证相关维护人员对问题作出快速响应,还可以利用存储数据提供杰出的报表及实时的图形化数据处理,实现对Linux、Windows主机的7*24小时集中监控,监控的项目可包括CPU、内存、磁盘、网卡流量、服务可用性等各种资源。
实验环境
zabbix服务器:192.168.10.128
linux客户机:192.168.10.142
安装LAMP
为访问Zabbix的web页面
1、安装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
2、修改httpd.conf文件
vim /etc/httpd/conf/httpd.conf
ServerName www.xxy.com //域名
DirectoryIndex index.html index.php //支持PHP首页
3、修改时区
vi /etc/php.ini
date.timezone = PRC //设置中国时区
4、关闭防火墙及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端口
5、编辑首页文件并访问测试
vim /var/www/html/index.php
http://192.168.10.128/ //浏览器输入测试
6、登录数据库,提权
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;
7、检查数据库是否可用
修改首页文件,改为如下内容
vim /var/www/html/index.php
Success!!";
else echo "Fail!!";
mysql_close();
?>
http://192.168.10.128/ //浏览器输入测试
部署Zabbix服务器
1、安装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
2、生成数据库文件
zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p zabbix //生成数据库文件,密码为admin123
3、修改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
vim /etc/zabbix/zabbix_server.conf
DBPassword=admin123
vim /etc/httpd/conf.d/zabbix.conf //修改时区
php_value date.timezone Asia/Shanghai
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/
4、开启zabbix-server服务,重启httpd服务
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //监听在10051端口上
systemctl restart httpd.service
5、浏览器访问测试
http://192.168.10.128/zabbix/ //安装后登录 用户名Admin 密码:zabbix
设置中文环境:Administrator-Users-点击用户-语言中设置
配置linux客户机
配置被控服务器,如果服务器也需要被自己监控也需要安装zabbix-agent
1、安装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
2、查看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
3、关闭防火墙及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服务端添加被控主机
web页面上操作步骤:配置→主机→创建主机
模板页需要链接模板,根据需要链接相应的模板,这里我添加了sshd和httpd两个服务
zabbix服务器配置邮件报警功能
1、安装邮箱服务
yum -y install mailx
2、修改/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
3、测试邮箱发送功能
echo "hello world" | mail -s "testmail" 131********@139.com //测试发信是否正常
4、编写发邮件脚本
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/目录属主属组
5、发邮件测试
./mailx.sh 131********@139.com "主题" "内容" //测试发邮件脚本是否可以正常工作
./mailx.sh 131********@139.com "test" "this is test"
部署邮件报警
在zabbix服务器web页面上配置
1、设置报警媒体类型
管理→报警媒体类型→创建媒体类型
名称:Mail-Test
类型:脚本
脚本名称:mailx.sh
脚本参数: //新增以下三个参数
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2、设置报警媒介
管理→用户→点击Admin→报警媒介
类型:Mail-Test //调用上面设置的脚本
收件人:131********@139.com
其它默认保存
3、设置出问题后的动作
配置→动作→创建动作→删除默认标签,修改触发条件
名称:Mailx
条件 A 主机群组=Linux servers
操作→如下配置
默认操作步骤持续时间 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 //一定要配置否则邮件发送不成功
恢复操作→如下配置
默认标题:{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 //一定要配置否则邮件发送不成功
4、zabbix服务端与linux客户端分别重启服务
systemctl restart zabbix-server //zabbix服务端重启zabbix-server
systemctl restart zabbix-agent.service //linux客户端重启zabbix-agent.service
5、测试报警
#可以在被控主机上模拟相关参数超过阈值,如磁盘空间。然后验证邮件收发。
systemctl stop httpd.service //linux客户端上开启了httpd服务,现将其关闭,测试报警邮件的发送