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界面添加被控主机