zabbix搭建proxy实现分布式监控


    前言


  众所周知,Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。Zabbix能监视各种网络尝试,保证服务器系统的安全运营;并提供灵活的通知机制以让系统工程师快速定位/解决存在的问题。当我们的监控的服务器增多或者需要监控异地IDC服务器的时候,单台服务器的Server-Client 架构可能就不能满足我们的需求了,此时就需要考虑使用分布式的Server-Proxy-Client/Server-Node-Client架构了。

  本次将介绍的分布式架构是Server-Proxy-Client,即添加一台proxy代理服务器,zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控。


    实验环境

Zabbix_server    IP:192.168.163.187

Zabbix_proxy     IP:192.168.163.191

client1                IP:192.168.163.188


    实验过程


下载并解压zabbix安装包(zabbix安装包可以在官网找)

[root@localhost ~]# cd /usr/local/src/

[root@localhost ~]# tar xf zabbix-3.4.3.tar.gz


下载依赖包

[root@localhost ~]# yum install -y mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml unixODBC-devel OpenIPMI-devel libxml2-devel libevent-devel


编译安装zabbix_proxy

[root@localhost ~]# ./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl

[root@localhost ~]# make && make install


创建zabbix用户

[root@localhost ~]# useradd zabbix -s /sbin/nologin


创建表并给予权限

MariaDB [(none)]> create database zabbix_proxy;

MariaDB [(none)]> grant all on zabbix_proxy.* to 'zabbix'@'localhost' identified by 'zabbix';


导入zabbix默认数据库文件

[root@localhost ~]# cd /usr/local/src/zabbix-3.4.3/database/mysql/

[root@localhost ~]# mysql -uzabbix -pzabbix zabbix_proxy < schema.sql


更改zabbix_proxy 的配置文件

[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_proxy.conf

Server=192.168.163.187       #zabbix服务端IP
Hostname=Zabbix_proxy        #必须和WEB页面添加代理时设置的名称一致
LogFile=/tmp/zabbix_proxy.log   #日志文件路径
DBHost=localhost           #数据库IP
DBName=zabbix_proxy          #数据库名
DBUser=zabbix             #数据库用户名
DBPassword=zabbix           #数据库密码
ConfigFrequency=60           #配置文件同步间隔
DataSenderFrequency=5         #数据同步间隔


启动proxy服务

[root@localhost ~]# /usr/local/zabbix/sbin/zabbix_proxy 


将client1的配置文件的Server指向这个代理服务器的IP地址

接下来就是在server端的web界面配置了,很简单,只需要配置个代理就行


进入首页--》管理--》agent代理程序

zabbix搭建proxy实现分布式监控_代理


创建自动发现后,看到主机上线

zabbix搭建proxy实现分布式监控_proxy _02


  在部署zabbix代理的时候,zabbix_proxy的日志报错如下: sending data to server failed: error:"negative response: "failed"", info:"proxy "ah_proxy" not found"

  原因是在服务器端添加的agent代理程序名称 与 代理服务器zabbix_proxy.conf中配置的Hostname名称不一样