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

项目准备

虚拟机版本:centos 7.4

关闭虚拟机防火墙及selinux

虚拟机分配

主机 IP地址 主要软件
zabbix服务器 172.16.10.34 zabbix-server-mysql-4.0.0-1、zabbix-web-mysql-4.0.0-1
mysql服务器 172.16.10.20 zabbix-agent-4.0.0-1

安装配置zabbix服务

Zabbix通过C/S模式采集数据,通过B/S模式在Web端展示和配置。zabbix服务需要使用LAMP平台来承载数据库和Web界面。本次实验环境,为了节约时间,LAMP架构采用的yum安装的方式简单部署。

yum快速部署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

配置httpd服务

httpd配置文件的修改包括按方面,一、域名的修改,二、监听地址修改,三、DirectoryIndex中增加index.php

vim /etc/httpd/conf/httpd.conf
Listen 172.16.10.34:80
ServerName www.benet.com      //域名自定义
DirectoryIndex index.html index.php

时区设置

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

启动服务

systemctl start httpd.service
systemctl enable httpd.service
systemctl start mariadb.service
systemctl enable mariadb.service
netstat -ntap | egrep '(80|3306)'

初始化数据库

mysql_secure_installation

数据库的创建及用户授权

mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
flush privileges;

测试连通性

vim /var/www/html/index.php   //创建测试页
<?php
$link=mysql_connect('172.16.10.34','zabbix','admin123');
if($link) echo "The database connection was successful!";
else echo "The database connection was Fail!!";
mysql_close();
?>

解决本地用户无法登陆问题

有时我们会遇到在mysql数据库中添加用户,并授权其远程登陆,但是在你测试时却是无法登陆,甚至在本地也无法登陆,可能原因是在mysql的用户列表中有空用户,对本地用户登陆造成了干扰,导致无法登陆。

mysql -uroot -p
select user,host from mysql.user;
+--------+-----------+
| user   | host      |
+--------+-----------+
| zabbix | %         |
| root   | 127.0.0.1 |
| root   | ::1       |
|        | cacti     |                  //存在空用户
| root   | cacti     |
|        | localhost |                  //空用户
| root   | localhost |
+--------+-----------+
drop user ''@localhost;
drop user ''@cacti;                     //删除这两个空用户
flush privileges;                       //刷新使修改生效

安装zabbix服务程序

安装php模块

yum install php-bcmath php-mbstring -y

安装zabbix软件

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
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
//这里输入的密码为之前授权的zabbix用户的密码,不是root密码

配置zabbix服务

修改zabbix_server

因为在前面的设置中数据库名称,用户都是zabbix,所以在此处都不需要修改,改配置文件唯一要修改的就是DBpassword。

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

解决WEB界面中文乱码

修改该配置文件defines.inc.php,将全文的graphfont替换为kaiti

vim /usr/share/zabbix/include/defines.inc.php
:%s /graphfont/kaiti/g            //末行模式中操作

添加字体文件

复制字体文件到指定目录下

cp STKAITI.TTF /usr/share/zabbix/fonts/

字体文件传送门:STKAITI.TTF

启动服务

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

访问WEB页面

访问http://172.16.10.34/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=172.16.10.34                   //修改为监控端地址
139:ServerActive=172.16.10.34       //修改为监控端地址
150:Hostname=mysql                       //hostname自定义             
268:Include=/etc/zabbix/zabbix_agentd.d/*.conf

启动服务

systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
netstat -anpt | grep zabbix

在WEB界面添加被控主机