017-zabbix_proxy分布式监控部署
一、proxy分布式监控介绍
来源于zabbix官网:
https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitoring/proxies
zabbix通过Zabbix proxies为IT基础设施提供有效和可用的分布式监控
代理(proxies)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器
当选择使用/不使用proxy时,必须考虑几个注意事项
Proxy |
|
轻量级(Lightweight) |
Yes |
图形界面(GUI) |
No |
独立工作(Works independently) |
Yes |
易于维护(Easy maintenance) |
Yes |
自动生成数据库(Automatic DB creation)1 |
Yes |
本地管理(Local administration) |
No |
准备嵌入式硬件 (Ready for embedded hardware) |
Yes |
单向TCP连接(One way TCP connections) |
Yes |
集中配置(Centralised configuration) |
Yes |
生成通知(Generates notifications) |
No |
zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法
zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化分布式监控的维护
zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可
zabbix proxy 数据库必须和 server 分开,否则数据会被破坏
proxy 收集到数据之后,首先将数据缓存在本地,然后在一定的时间之后传递给 zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由 proxy配置文件中参数 ProxyLocalBuffer 和 ProxyOfflineBuffer 决定
注意从Zabbix server数据库直接更新最新配置的proxy可能会比Zabbix server新,而Zabbix server的配置由于 CacheUpdateFrequency 的原因而无法快速更新。因此,proxy收集发送Zabbix server数据可能会被忽略
zabbix proxy 是一个数据收集器,它不计算触发器、不处理事件、不发送报警。有关proxy功能的概述,如下表:
功能 |
proxy支持(yes/no) |
|
项目(Items) |
||
Zabbix agent checks |
Yes |
|
Zabbix agent checks (active) |
Yes 1 |
|
Simple checks |
Yes |
|
Trapper items |
Yes |
|
SNMP checks |
Yes |
|
SNMP traps |
Yes |
|
IPMI checks |
Yes |
|
JMX checks |
Yes |
|
日志文件监控(Log file monitoring) |
Yes |
|
内部检查(Internal checks) |
Yes |
|
SSH checks |
Yes |
|
Telnet checks |
Yes |
|
外部检查(External checks) |
Yes |
|
内置web监控(Built-in web monitoring) |
Yes |
|
网络发现(Network discovery) |
Yes |
|
自动发现(Low-level discovery) |
Yes |
|
触发器计算(Calculating triggers) |
No |
|
处理事件(Processing events) |
No |
|
发送报警(Sending alerts) |
No |
|
远程命令(Remote commands) |
No |
二、分布式监控部署
环境说明
系统版本 CentOS 7.2 x86_64
软件版本 zabbix 3.0.18
机器角色及ip
zabbix server 10.0.0.63
zabbix proxy eth0:10.0.0.65 eth1:192.168.1.65
zabbix agent 192.168.1.66
通过zabbix proxy的搭建,zabbix server可以远程从proxy获取到数据,这里的环境相当于zabbix server具有一个公网ip地址,zabbix agent只具有内网地址,zabbix proxy具有外网地址和内网地址,搭建zabbix proxy使zabbix server能通过proxy远程获取到zabbix agent的数据
1、配置zabbix proxy
1.1 安装并配置zabbix的源
[root@zabbix-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安装源
[root@zabbix-proxy ~]# vim /etc/yum.repos.d/zabbix.repo #修改配置文件,将地址改为清华的
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/$basearch/
……
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
……
[root@zabbix-proxy ~]# yum makecache #更新缓存
1.2 安装配置zabbix proxy
[root@zabbix-proxy ~]# yum install -y zabbix-proxy-mysql #安装zabbix-proxy
[root@zabbix-proxy ~]# yum install -y mariadb-server #安装数据库
[root@zabbix-proxy ~]# systemctl start mariadb.service #启动数据库
[root@zabbix-proxy ~]# systemctl enable mariadb.service #开机启动
[root@zabbix-proxy ~]# mysql #登录数据库
create database zabbix_proxy default charset utf8;
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin; #创库
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123456'; #授权
MariaDB [(none)]> exit
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql|grep sql
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-3.0.18
/usr/share/doc/zabbix-proxy-mysql-3.0.18/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-3.0.18/COPYING
/usr/share/doc/zabbix-proxy-mysql-3.0.18/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-3.0.18/NEWS
/usr/share/doc/zabbix-proxy-mysql-3.0.18/README
/usr/share/doc/zabbix-proxy-mysql-3.0.18/schema.sql.gz
[root@zabbix-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.18/ #导入数据库
[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# zcat schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy
[root@zabbix-proxy zabbix-proxy-mysql-3.0.18]# cd
[root@zabbix-proxy ~]# vim /etc/zabbix/zabbix_proxy.conf #修改zabbix-proxy的配置文件
ProxyMode=0 #使用主动模式,1为被动模式,默认为主动模式,web前端也配置主动模式
24 Server=10.0.0.63 #zabbix-server的地址
43 Hostname=zabbix-proxy #主机名
128 DBHost=localhost #数据库主机
139 DBName=zabbix_proxy #数据库名称
154 DBUser=zabbix #数据库用户名
162 DBPassword=123456 #数据库密码
Timeout=15
配置文件中没有配置的内容如下:(有需要可以配置)
# ProxyLocalBuffer=0
#数据保留的时间(小时为单位)
# ProxyOfflineBuffer=1
#连不上Server,数据要保留多久(小时为单位,默认1小时)
# DataSenderFrequency=1
#数据的发送时间间隔(默认是1秒)
# StartPollers=5
#启动的线程数
# StartIPMIPollers=0
#启动IPMI的线程数
[root@zabbix-proxy ~]# systemctl start zabbix-proxy.service #启动zabbix-proxy
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy.service #开机启动
2、server端的web界面添加zabbix proxy
配置——>anget代理程序——>创建代理
agent代理程序名称和proxy代理的主机名相同
proxy代理添加后,等待发现代理,如果不能及时发现代理,可以通过查看server和proxy的日志进行检查
[root@zabbix-server ~]# tail -f /var/log/zabbix/zabbix_server.log
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
[root@zabbix-server ~]# systemctl restart zabbix-server.service #重启server端服务
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service #再重启proxy端服务
Web界面进行检查,代理成功添加
3、安装配置zabbix-agent
由于agent端只有一个内网卡,不能上网,要安装zabbix-agent可以采取的方法有:
a、将proxy配置为路由器和agent的网关,使agent通过proxy上网安装
b、在proxy端下载好agent程序发送到agent端再安装
这里选择方法b
在proxy下载并发送
[root@zabbix-proxy ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.18-1.el7.x86_64.rpm
[root@zabbix-proxy ~]# scp zabbix-agent-3.0.18-1.el7.x86_64.rpm root@192.168.1.66:/root/
root@192.168.1.66's password:
zabbix-agent-3.0.18-1.el7.x86_64.rpm 100% 341KB 341.4KB/s 00:00
agent端yum本地安装
[root@zabbix-agent ~]# yum localinstall -y zabbix-agent-3.0.18-1.el7.x86_64.rpm
[root@zabbix-agent ~]# vim /etc/zabbix/zabbix_agentd.conf #修改配置文件
95 Server=192.168.1.65 #服务端即proxy的ip地址,内网地址
147 Hostname=192.168.1.66 #填写主机名称,或填写为ip地址便于区分
[root@zabbix-agent ~]# systemctl start zabbix-agent.service #启动zabbix-agent
[root@zabbix-agent ~]# systemctl enable zabbix-agent.service #开机启动
4、server端的web界面添加主机
配置——>主机——>创建主机
主机名称和agent端配置文件中相同,选择代理
为主机链接模板
5、检验
等待添加的主机变绿,变绿之后查看最新数据
若不能及时变绿,则需要重启服务或使用命令zabbix_server -R config_cache_reload刷新配置缓存
至此,zabbix跨网段通过proxy代理监控主机配置完成!
分布式监控zabbix_proxy及交换机监控
1、Zabbix分布式监控
zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.zabbix proxy 可以非常简便的实现了集中式、分布式监控。
zabbix proxy 使用场景:
监控远程区域设备
监控本地网络不稳定区域
当 zabbix 监控上千设备时,使用它来减轻 server 的压力
简化 zabbix 的维护
Zabbix_proxy只需要一条tcp链接到zabbix_server,只需要配置一个防火墙规则。zabbix_proxy数据库必须和server分开,否则数据会被破坏。因为这两个数据库的表大部分相同。
Zabbix_proxy收集的所有数据在传输到服务器之前都存储在本地。然后再一定时间之后传递给zabbix_server。这个时间是由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。
Zabbix_proxy是一个数据收集器。它不计算触发器,处理事件或发送警报。
备注:使用 agent active 模式,一定要记住在 agent 的配置文件参数 ServerActive 加上 proxy 的 IP 地址。
2、分布式部署
![](https://common.cnblogs.com/images/copycode.gif)
(1)安装zabbix-proxy-mysql和mariadb
[root@linux-node3 ~]# yum list|grep zabbix-proxy-mysql
[root@linux-node3 ~]# yum install -y zabbix-proxy-mysql
[root@linux-node3 ~]# yum install -y mariadb
[root@linux-node3 ~]# systemctl enable mariadb.service
[root@linux-node3 ~]# systemctl start mariadb.service (2)创建zabbix_proxy库
[root@linux-node3 ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 11579
Server version: 5.5.56-MariaDB MariaDB Server Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database zabbix_proxy CHARATER set utf8 COLLATE utf8_bin; MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix'; MariaDB [(none)]> exit;
Bye (3)导入数据库
[root@linux-node3 ~]# rpm -ql zabbix-proxy-mysql
[root@linux-node3 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-3.0.8/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy
[root@linux-node3 ~]# mysql -uzabbix -pzabbix -e "use zabbix_proxy;show tables;" (4)修改zabbix_proxy配置文件
[root@linux-node3 ~]# vim /etc/zabbix/zabbix_proxy.conf
ProxyMode=0 #使用主动模式,1为被动模式,默认为主动模式,web前端也配置主动模式
Server=192.168.56.11 #填写zabbix-server的ip地址
ServerPort=10051 #zabbix的端口
HostnameItem=system.hostname
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix
Timeout=15 配置文件中没有配置的内容如下:(有需要可以配置)
# ProxyLocalBuffer=0
#数据保留的时间(小时为单位)
# ProxyOfflineBuffer=1
#连不上Server,数据要保留多久(小时为单位,默认1小时)
# DataSenderFrequency=1
#数据的发送时间间隔(默认是1秒)
# StartPollers=5
#启动的线程数
# StartIPMIPollers=0
#启动IPMI的线程数 (5)启动服务并检查端口
[root@linux-node3 ~]# systemctl start zabbix-proxy.service
[root@linux-node3 ~]# netstat -tulnp |grep 10051 (6)创建proxy
"Administration"-->"Proxies"-->"Create proxy"
![](https://common.cnblogs.com/images/copycode.gif)
![](https://common.cnblogs.com/images/copycode.gif)
(7)修改agent的配置
[root@linux-node2 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DebugLevel=5
Server=192.168.56.13 #指向zabbix_proxy
ServerActive=192.168.56.13 #指向zabbix_proxy
HostnameItem=system.hostname
HostMetadata=web
Timeout=15
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@linux-node2 ~]# systemctl restart zabbix-agent.service
![](https://common.cnblogs.com/images/copycode.gif)
3、交换机监控
创建HOST,交换机监控
使用SNMP协议,思科默认端口为161。
添加zabbix的SNMP模板:
设置团体名:
{$SNMP_COMMUNITY}=团体名称
通过proxy监控到的数据 在proxy机器上的mysql数据库会保存吗?
答案:是的,server、proxy、agent这三者的关联就是,采集到的数据从agent到proxy,再从proxy到server,你也可以理解为proxy和agent最直观的差别就是没有web界面以及数据处理功能,proxy的目的就是为了在被监控主机量较多的情况下减轻server端的数据采集压力,proxy安装了数据库并且导入了表,当然会有数据保存,随着监控数据的采集,也是会不断变化的
017-zabbix_proxy分布式监控部署的更多相关文章
- zabbix分布式监控部署--技术流ken
前言 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix pr ...
- zabbix proxy分布式监控部署
一.proxy分布式监控介绍 来源于zabbix官网: https://www.zabbix.com/documentation/3.4/zh/manual/distributed_monitorin ...
- ganglia分布式监控部署
一.介绍 Ganglia是由UC Berkeley发起的一个开源监控项目,设计用于监控数以千几的节点.每台服务器都运行一个收集和发送监控数据名为gmond的守护进程.它将从操作系统和指定 ...
- zabbix分布式监控的部署与win被控端
zabbix是一个分布式监视,管理系统,基于server-clinet架构,可用于监视各种网络服务,服务器和网络机器等状态. server端基于C语言,web管理端Frontend则是基于PHPA制作 ...
- Zabbix学习之路(十)之分布式监控zabbix_proxy及交换机监控
1.Zabbix分布式监控 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix serv ...
- 分布式监控系统Zabbix-3.0.3-完整安装记录(0)
一.Linux下开源监控系统简单介绍1)cacti:存储数据能力强,报警性能差2)nagios:报警性能差,存储数据仅有简单的一段可以判断是否在合理范围内的数据长度,储存在内存中.比如,连续采样数据存 ...
- zabbix的日常监控-分布式监控(十)
参考博文:http://blog.51cto.com/jinlong/2051966 zabbix proxy 可以代替 zabbix server 检索客户端的数据,然后把数据汇报给 zabbix ...
- 第6章Zabbix分布式监控
Zabbix是一个分布式的监控系统.分布式监控适合跨机房.跨地域的网络监控.从多个Proxy收集数据,而每个Proxy可以采集多个设备的数据,从而轻松地构建分布式监控系统. ZabbixProxy可以 ...
- zabbix分布式监控服务 安装与配置
zabbix安装与配置 一.什么是zabbix及优缺点(对比cacti和nagios) Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...
随机推荐
- [Java]算术表达式求值之一(中序表达式转后序表达式方案)
第二版请见:https://www.cnblogs.com/xiandedanteng/p/11451359.html 入口类,这个类的主要用途是粗筛用户输入的算术表达式: package com.h ...
- accesstoken 中控服务器 并发刷新 加并发锁
https://www.cnblogs.com/digdeep/p/4369725.html 由获取微信access_token引出的Java多线程并发问题 https://mp.weixin.qq. ...
- Android 多分辨率与不同语言适配
一.适配不同国家语言 智能手机系统设置里各国语言的选项,然后我们项目里可以通过资源目录实现适配语言.我们知道工程的根目录有个res/的目录,res/下有一个资源类型的目录,其中有个values/str ...
- struts1使用select标签
今天使用struts1标签的时候总是出错,后来查了一下,好像不能和什么标签混用.就只用了html原来的标签实现 <select name="newsType_id"> ...
- Activity 怎么和 Service 绑定,怎么在 Activity 中启动自己对应的 Service?
Activity 通过 bindService(Intent service, ServiceConnection conn, int flags)跟 Service 进行绑定,当绑定成功的时候 Se ...
- 第七章 SpringCloud之非声明式RestClient:Feign
study-url:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/1.4.6.RELEASE/multi/multi ...
- 阶段3 2.Spring_08.面向切面编程 AOP_7 通用化切入点表达式
下面配置了通用的表达式,,上面的四个就不用再配置那么长 索罗的切入点表达式了. 节省了每次都要写一长段表达式的过程 写在一个aop:aspect这个切面下面就只能当前切面用 写在切面里面 运行测试 挪 ...
- nginx报错:nginx: [emerg] unknown directive in /etc/nginx/conf.d/test.conf:4
nginx报错:nginx: [emerg] unknown directive in /etc/nginx/conf.d/test.conf:4 解决: 第四行出现了 tab 空格 , 换成正常的 ...
- 【myeclipse2014-2017】使用相关
1.窗口背景颜色修改 2.javascript代码块背景颜色修改 3.控制台颜色相关 4.myeclipse主题相关 5.myeclipse清除项目缓存 (1.删除work中的文件.2.删除wabap ...
- Flutter路由(一)
第一点:push使用 1.pushNamed——Navigator.of(context).pushNamed('routeName') Navigator.of(context).pushNamed ...