江湖浪人 发表于 2019-1-17 13:19:55

zabbix分布式监控之zabbix

一、概述:
  zabbix 是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbixserver进行统一存储和展示。
架构如下:
http://i2.运维网.com/images/blog/201803/06/85e1052c26644322cc5dda8a94c05444.png
  说明:zabbix的分布式系统主机解决zabbix-server在监控设备过多分散时的压力;可以在各IDC部署zabbix-proxy服务代理监控本IDC机房中的所有设备再通过主动模式 把收集的监控数据主动提交到zabbix-server;上图即zabbix-server部署在IDC C,其他IDC部署zabbix-proxy各IDC设备的agent指向所在zabbix-proxy;
  本次测试说明:
本次测试基于前面本文是继LNMP环境部署zabbix实战等相关zabbix系列的补充;因此zabbix server不在部署;主要测试
zabbix proxy 及agent通过zabbix proxy分布式监控;
zabbix-server:CentOS7.4_x64 LNMP环境 zabbix-server172.16.3.152(zabbix.san.com)   (之前已经部署过)
zabbix-proxy:CentOS7.4_x64mariadb-serverzabbix-agent172.16.3.167(zabbix-proxy)
zabbix-agent:CnetOS7.4_x64    zabbix-agent172.16.3.175(node3.san.com)
为了减少不必要的故障排错,关闭selinux与iptablesfirewalld服务(注意:生产线上务必做好相应配置!)

二、zabbix-proxy安装配置
  1、安装mariadb
由于zabbix-proxy是代理收集数据,因此需要独立的数据系统;

# yum -y install mariadb-server mariadb-devel
启动数据库
# systemctl start mariadb
  配置zabbix proxy服务数据库
安装好mariadb 默认root为空;登录数据

mysql -uroot -p
设置root密码
set password for root@localhost = password("redhat");
创建数据库为proxy
create database proxy character set utf8 collate utf8_bin;
授权
grant all privileges on proxy.* to 'proxy'@'172.16.3.%' identified by '123456';

  2、配置zabbix安装源并安装

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# yum install zabbix-proxy -y
  初始化数据库

# cd /usr/share/doc/zabbix-proxy-mysql-3.2.11/
# gzip -d schema.sql.gz
# mysql -uzabbix -p123456proxy < schema.sql
  3、配置zabbix_proxy服务

# egrep -v '(^$|^#)' /etc/zabbix/zabbix_proxy.conf
ProxyMode=0             #主动上报数据到zabbix server
Server=172.16.3.152      #zabbix server地址
ServerPort=10051            #zabbix server端口
Hostname=SH_Proxy_172.16.3.167   #zabbix proxy主机名,此处和在zabbix server web GUI上添加时的名称必须保持一至
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=proxy
DBUser=proxy
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=3
ProxyOfflineBuffer=24
HeartbeatFrequency=60
ConfigFrequency=5
DataSenderFrequency=5
StartPollers=10
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

  4、zabbix proxy上的zabbix-agentd服务

# egrep -v "(^$|^#)" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.3.167
ServerActive=172.16.3.167
Hostname=SH_Proxy_172.16.3.167   #此处名称需要和zabbix-proxy.conf中保持一致
Include=/etc/zabbix/zabbix_agentd.d/*.conf

  启动zabbix-proxy 与zabbix-agent服务

# systemctl start zabbix-proxy
# systemctl start zabbix-agent
  5、zabbix server web GUI上添加zabbix proxy agent代理
管理-->agent代理程序员 -->agent代理程序名称 &quot;SH_Proxy_172.16.3.167&quot; -->系统代理程序模式 &quot;主动&quot; -->添加如图:
http://i2.运维网.com/images/blog/201803/06/d90252a5f8b60bb9fe4fc5870226cf3b.png

三、测试zabbix-proxy
  1、zabbix-agent安装配置

同样添加zabbix安装源并yum安装
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# yum install zabbix-agnet -y
  查看zabbix agent.conf配置

# cat /etc/zabbix/zabbix_agent.conf
# egrep -v '(^$|^#)' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.16.3.167      #指向zabbix-proxy
ServerActive=172.16.3.167   #指向zabbix-proxy
Hostname=SH_172.16.3.175   #此agent识别hostname
Timeout=15
Include=/etc/zabbix/zabbix_agentd.d/*.conf
  2、添加主动监控模板
zabbix-server web GUI中克隆复制创建基于Template OS Linux的Template OS Linux-Active 主动监控模板;原因就是zabbix-proxy所在的IDC设备通过agent主动发送数据到zabbix-proxy中;步聚如下:
配置-->模板-->Template OS Linux -->全克隆-->模板名称 &quot;Template OS Linux-Active&quot; -->添加
打开Template OS Linux-Active模板-->监控项-->全选后 指更新-->类型 修改为 &quot;zabbix客户端(主动模式)&quot;-->更新
如图:
http://i2.运维网.com/images/blog/201803/06/769605de33a0a69f4e73b20786559e2a.png
最终会看到该模板下的监控项 类型为类似下图:
http://i2.运维网.com/images/blog/201803/06/05267183d46237af070da62813c27216.png
zabbix-server web GUI 添加基于proxy的agent
配置-->主机-->创建主机-->主机名称&quot;SH_172.16.3.175&quot; -->可见名称&quot;web_server_01&quot; -->群组&quot;web services&quot; -->agent代理程序的接口 &quot;172.16.3.175&quot; -->由agent代理程序监测 &quot;SH_Proxy_172.16.3.167&quot; --> 同时给监控主机添加一个主动监控模板(Template OS Linux-Active); --> 添加 如图:
http://i2.运维网.com/images/blog/201803/06/554904fdcf76c77c35a3ef8d24acb5a0.png
  3、查看基于zabbix-proxy监控的数据
http://i2.运维网.com/images/blog/201803/06/b5305e47f14603721e9bcd9e803c5b97.png
可以看到通过zabbix-proxy监控了node3.san.com这台主机并获取了监控信息!
最终zabbix server上除了zabbix-server 自动发现并监控了node2.san.com外还有通过zabbix-proxy监控的node3.san.com(172.16.3.175)如图:
http://i2.运维网.com/images/blog/201803/06/5410994279f76717488cdabbae6535a2.png

四、总结
  基于zabbix server -> zabbix proxy(代理)
页: [1]
查看完整版本: zabbix分布式监控之zabbix