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
为访问Zabbix的web页面html
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
vim /etc/httpd/conf/httpd.conf ServerName www.xxy.com //域名 DirectoryIndex index.html index.php //支持PHP首页
vi /etc/php.ini date.timezone = PRC //设置中国时区
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/ //浏览器输入测试
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/ //浏览器输入测试
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
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/
systemctl enable zabbix-server systemctl start zabbix-server netstat -anpt | grep zabbix //监听在10051端口上 systemctl restart httpd.service
http://192.168.10.128/zabbix/ //安装后登陆 用户名Admin 密码:zabbix
设置中文环境:Administrator-Users-点击用户-语言中设置linux
配置被控服务器,若是服务器也须要被本身监控也须要安装zabbix-agentios
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
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
syatemctl stop firewalld.service setenforce 0 systemctl enable zabbix-agent.service systemctl restart zabbix-agent.service netstat -anpt | grep zabbix //监听在10050端口
web页面上操做步骤:配置→主机→建立主机
模板页须要连接模板,根据须要连接相应的模板,这里我添加了sshd和httpd两个服务web
yum -y install mailx
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
echo "hello world" | mail -s "testmail" 131********@139.com //测试发信是否正常
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服务器web页面上配置sql
管理→报警媒体类型→建立媒体类型 名称:Mail-Test 类型:脚本 脚本名称:mailx.sh 脚本参数: //新增如下三个参数 {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}
管理→用户→点击Admin→报警媒介 类型:Mail-Test //调用上面设置的脚本 收件人:131********@139.com 其它默认保存
配置→动做→建立动做→删除默认标签,修改触发条件 名称: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 //必定要配置不然邮件发送不成功
添加完成数据库
systemctl restart zabbix-server //zabbix服务端重启zabbix-server systemctl restart zabbix-agent.service //linux客户端重启zabbix-agent.service
#能够在被控主机上模拟相关参数超过阈值,如磁盘空间。而后验证邮件收发。 systemctl stop httpd.service //linux客户端上开启了httpd服务,现将其关闭,测试报警邮件的发送
正常监控页面以下
被控端关闭httpd服务后出现问题
收到邮件提醒
被控端开启httpd服务,显示问题已解决
问题解决邮件提醒vim