Zabbix 简介 :

Zabbix 是一个高度集成的企业级开源网络监控解决方案,与Cacti、Nagios类似,提供分布式监控以及集中的 Web 管理界面。被监控对象只要支持 SNMP 协议或者运行 Zabbix_agents 代理程序即可。

总结 :

  • Zabbix 是一个企业级、开源的、分布式的监控套件,可以监控网络和服务的状态。

  • Zabbix 可以利用数据提供图形化的报告。还具有灵活的告警机制。

  • Zabbix 可以使用 Zabbix Web 管理页面进行管理配置。

  • Zabbix 自带多种监控模板可以直接使用。

本案环境 :

主机 操作系统 IP地址 主要软件
zabbix 服务机 CentOS 7.4 192.168.100.144 Zabbix 4.0.0alpha9
被控端 CentOS 7.4 192.168.100.131 zabbix-agent

部署 Zabbix 服务端 :

1.关闭防火墙 :

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安装 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

3.设置 php 时区 :

vim /etc/php.ini
date.timezone = PRC    #设置中国时区

4.开启服务 :

systemctl start httpd.service
systemctl start mariadb.service

netstat -ntap | egrep '(80|3306)'   #查看端口是否启动

5.进入数据库 :

[root@localhost ~]# mysql  #进入数据库
......
#创建 zabbix 数据库 
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

#添加权限
MariaDB [(none)]> GRANT all privileges ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';  
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;  #刷新
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye
[root@localhost ~]# mysql -uzabbix -padmin123   #测试zabbix能否登录数据库

6.安装 php 环境:

yum install php-bcmath php-mbstring -y

7.安装 zabbix yum 源 :

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm 

8.安装 zabbix-server 服务 :

yum install zabbix-server-mysql zabbix-web-mysql -y

9.导入数据库文件数据 :

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz | mysql -uzabbix -p  zabbix #把数据导入 zabbix 数据库
Enter password:   # zabbix 用户密码

10.修改 zabbix_server 配置文件 :

[root@localhost ~]# 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   #添加访问数据库 zabbix 用户的密码
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

11.修改 zabbix 配置文件 :

 vim /etc/httpd/conf.d/zabbix.conf
......
        php_value always_populate_raw_post_data -1
        php_value date.timezone Asia/Shanghai      #去注释 修改时区
    </IfModule>
.......

12.启动服务 访问 http://192.168.100.144/zabbix :

systemctl start zabbix-server
systemctl restart httpd.service

netstat -anpt | grep zabbix   #监听 10051 端口

配置被监控端 :

1.关闭防火墙 :

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.安装 zabbix 代理服务 :

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

3.修改 zabbix-agent 配置文件 :

[root@localhost ~]# 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.100.144    #指向 zabbix 服务器
139:ServerActive=192.168.100.144  #指向 zabbix 服务器
150:Hostname=test  #主机名
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf
systemctl start zabbix-agent.service  #开启服务

在 web 界面添加被控主机 :

配置邮件报警功能

1.在 zabbix 服务器上安装 mail 服务 :

yum install mailx -y

vi /etc/mail.rc #注意有些邮箱需要开启客户端授权码进行第三方登录

#末尾添加  zabbix 发送告警信息邮箱
set from=xxxxxx@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=xxxxx@qq.com
set smtp-auth-password=邮箱密码
set smtp-auth=login
echo "hello world" | mail -s "testmail" xxxxxx@qq.com   #测试发信正常 去邮箱查看

2.编写发邮件脚本 :

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

3.修改权限 :

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/

4.测试脚本发送邮件 :

./mailx.sh xxxxx@139.com "主题" "内容"   #测试发邮件脚本是否可以正常工作

5.在 zabbix web 上配置 :

6.测试、关闭被控端查看是否收到短信 :

收到告警信息 :

收到恢复信息 :

解决 zabbix web 界面中文乱码问题 :https://blog.csdn.net/qq_42100241/article/details/82142434