zabbix 理论 + 操作 --02(zabbix 部署 + 邮件报警)
实验环境
监控端: 192.168.136.168
被监控端: 192.168.136.185
安装 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
- VIM /etc/httpd/conf/httpd.conf
- ServerName www.benet.com
DirectoryIndex index.html index.PHP
- vi /etc/PHP.INI
- date.timezone = PRC // 设置中国时区
- systemctl stop firewalld.service
- setenforce 0
- systemctl start httpd.service
- systemctl start mariadb.service
- netstat -ntap | egrep '(80|3306)'
- mysql_secure_installation
- vi /var/www/HTML/index.PHP
- <?PHP
- phpinfo();
- ?>
http://192.168.175.155/ MySQL -u root -p # 为 zabbix 设置一个数据库, 并且要设置一个用户去管理它 CREATE DATABASE zabbix character set utf8 collate utf8_bin; GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123'; flush privileges; # 写一个测试首页 [[email protected] ~]# cd /var/www/HTML/ [[email protected] HTML]# VIM index.PHP <?PHP phpinfo(); ?> # 验证 zabbix 能否连接数据库 <?PHP $link=mysql_connect('192.168.136.167','zabbix','admin123'); if($link) echo "<h1>Success!!</h1>"; else echo "Fail!!"; mysql_close(); ?>
--------- 解决本地无法登录问题 (可忽略)---------------
[[email protected] HTML]# MySQL -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 9 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select user,host from MySQL.user; // 有空用户名称占用导致本地无法登录远程可登录 +--------+-----------------------+ | user | host | +--------+-----------------------+ | zabbix | % | | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | | | localhost.localdomain | +--------+-----------------------+ 6 rows in set (0.01 sec) drop user ''@localhost; drop user ''@cacti; flush privileges;
---------------- 以下开始部署 zabbix Server-------
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 // 生成数据库文件, 注意密码不要输成 root 的 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 // 修改本行 347:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 465:Timeout=4 507:AlertScriptsPath=/usr/lib/zabbix/alertscripts 517:ExternalScripts=/usr/lib/zabbix/externalscripts 553:LogSlowQueries=3000 VIM /etc/httpd/conf.d/zabbix.conf // 修改时区 php_value date.timezone Asia/Shanghai VIM /usr/share/zabbix/include/defines.inc.PHP // 修正图表中文乱码 :%s /graphfont/kaiti/g // 从微软系统下复制相应的字体文件到 /usr/share/zabbix/fonts 目录中注意字体名称要对应配置文件, 且注意大小写 cp STKAITI.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.136.168/zabbix/ // 安装后登录 用户名 Admin 密码: zabbix
设置中文环境
Administrator-Users - 点击用户 - 语言中设置
----------- 配置代理端 - 就是被控服务器 ---- 如果服务器也需要被自己监控也需要安装 --zabbix-agent--
rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm 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 service firewalld stop setenforce 0 systemctl enable zabbix-agent.service systemctl restart zabbix-agent.service netstat -anpt | grep zabbix // 监听在 10050 端口
--------------- 增加被控主机 -- 在 Web 平台上做 -----
配置 - 主机 - 创建主机:
主机页面根据需求配置
模板页需要链接模板, 根据需要链接相应的模板
0K
-------- 配置邮件报警功能 --- 服务器上配置 ---------
yum install mailx vi /etc/mail.rc // 注意网易邮箱需要开启客户端授权码进行第三方登录
---- 文件末尾新增 ---
set [email protected] set smtp=smtp.qq.com set [email protected]
set smtp-auth-password = 邮箱密码
set smtp-auth=login echo "hello world" | mail -s "testmail" [email protected] // 测试发信正常 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/ ./mailx.sh [email protected] "主题" "内容" // 测试发邮件脚本是否可以正常工作
----- 在服务器 Web 上配置 ----
管理 -》报警媒体类型 -》创建媒体类型 -》
名称: Mail-Test
类型: 脚本
脚本名称: mailx.sh
脚本参数:// 新增以下三个参数
{ ALERT.SENDTO } { ALERT.SUBJECT } { ALERT.MESSAGE }
管理 - 用户 - 点击 Admin - 报警媒介:
类型: Mail-Test // 调用上面的脚本
收件人:[email protected]
其它默认 - 保存
配置 -》动作 -》创建动作 -》删除默认标签, 修改触发条件
名称: 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}
操作细节:-》
操作类型: 发送消息
发送到用户: 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 systemctl restart zabbix-agent.service
------ 以下是测试报警 -----
可以在被控主机上模拟相关参数超过阈值, 如磁盘空间. 然后验证邮件收发.
systemctl stop zabbix-agent.service // 在被监控主机上关闭 测试报警邮件接收
来源: http://www.bubuko.com/infodetail-3414963.html