Zabbix是一个高度集成的企业级开源网络监控解决方案,与Cacti、Nagios并称监控三剑客,提供分布式监控以及集中的WEB管理界面。被监控对象只要支持SNMP协议或者运行Zabbix_agents即可。Zabbix具备创建商业监控软件所具备的功能,例如主机性能监控、网络设备性能监控、数据库性能监控、ftp等通用协议的监控,能够利用灵活的可定制警告机制,允许用户对事件发送基于E-mail的警告,保证相关维护人员对问题做出快速解决,还可以利用存储数据提供杰出的报表及实时的图形化数据处理,实现对Linux、Windows主机的7*24小时集中监控。监控的项目可以包括CPU、内存、磁盘、网卡流量、服务可用性等各种资源。
项目准备
-
虚拟机版本:centos 7.4
-
关闭虚拟机防火墙 及 selinux
-
虚拟机分配
主机 | IP地址 | 主要软件 |
---|---|---|
zabbix服务器 | 192.168.8.100 | zabbix-server-mysql-4.0.0-1、zabbix-web-mysql-4.0.0-1 |
mysql服务器 | 192.168.8.101 | zabbix-agent-4.0.0-1 |
安装配置zabbix服务
Zabbix通过C/S模式采集数据,通过B/S模式在Web端展示和配置。zabbix服务需要使用LAMP平台来承载数据库和Web界面。本次实验环境,为了节约时间,LAMP架构采用的yum安装的方式简单部署。
准备
- 管理防火墙
停止:
systemctl stop firewalld
禁用:
systemctl disable firewalld
- 关闭selinux
临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce Permissive
-------------------------------------
永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务reboot
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 192.168.8.100: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 'wangle';
flush privileges;
测试连通性
vim /var/www/html/index.php //创建测试页
<?php
$link=mysql_connect('192.168.8.100','zabbix','wangle');
if($link) echo "<h1>数据库连接成功</h1>";
else echo "<h1>数据库连接失败</h1>";
mysql_close();
?>
然后访问192.168.8.100/index.php
页面显示数据库连接成功 即可
解决本地用户无法登陆问题
有时我们会遇到在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 wangle
//这里输入的密码为之前授权的zabbix用户的密码,不是root密码
配置zabbix服务
修改zabbix_server
因为在前面的设置中数据库名称,用户都是zabbix,所以在此处都不需要修改,改配置文件唯一要修改的就是DBpassword 改为你数据库zabbix授权的用户名。
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 //末行模式中操作
添加字体文件
从windows 中随便弄个字体 ,复制字体文件到指定目录下
cp STKAITI.TTF /usr/share/zabbix/fonts/
启动服务
systemctl enable zabbix-server
systemctl start zabbix-server
netstat -anpt | grep zabbix //监听在10051端口上
systemctl restart httpd.service
访问WEB页面
访问http://192.168.8.100/zabbix/
,完成安装之后即可登陆,默认用户名:Admin,密码:zabbix
顺着设置即可,登录后 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.8.101 //修改为监控端地址
139:ServerActive=192.168.8.101 //修改为监控端地址
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界面添加被控主机
在配置的菜单下,点击主机
-
主机名称:主机名称需要与配置文件中的内容对应
-
可见名称:不是必填项,可以忽略
-
群组: 单机选择,从中添加群组,我这里默认选择的是
linux servers
-
agent代理程序接口 填写对应的ip地址
然后就是配置模版
- 从监控中选取需要监控的项目 我这里由于是监控mysql 所以选择两个自带的模版
Template App Service
Template DB MySQL
切记啊 要点一下添加。
- 点下面的添加就成功添加了代理
回到首页就看到了所监控的群组和参数和异常。