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代理的时候,zabbix_proxy的日志报错如下: sending data to server failed: error:"negative response: "failed"", info:"proxy "ah_proxy" not found"
原因是在服务器端添加的agent代理程序名称 与 代理服务器zabbix_proxy.conf中配置的Hostname名称不一样
|