Centos7 安装zabbix

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

项目准备

  1. 虚拟机版本:centos 7.4
  2. 关闭虚拟机防火墙 及 selinux
  3. 虚拟机分配
    主机 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安装的方式简单部署。

准备

  1. 管理防火墙
停止:
systemctl stop firewalld
禁用:
systemctl disable firewalld
  1. 关闭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界面添加被控主机

在配置的菜单下,点击主机

  1. 主机名称:主机名称需要与配置文件中的内容对应
  2. 可见名称:不是必填项,可以忽略
  3. 群组: 单机选择,从中添加群组,我这里默认选择的是 linux servers
  4. agent代理程序接口 填写对应的ip地址

然后就是配置模版

  1. 从监控中选取需要监控的项目 我这里由于是监控mysql 所以选择两个自带的模版

Template App Service Template DB MySQL 切记啊 要点一下添加。

  1. 点下面的添加就成功添加了代理

回到首页就看到了所监控的群组和参数和异常。