zabbix企业应用之分布式监控proxy

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介:

先简单的介绍一下zabbix分布式的2种实现方式proxy与node的优缺点

Proxy:

Zabbix proxy 是一个或多个从监控设备收集监测数据和发送到zabbixserver 的进程,属于代表zabbix server 的运行,所有收集到的数据被暂时存放在代理服务器,之后统一由代理服务器转发给zabbix proxy 所属的服务器,部署proxy是可选的,但是对于分担单个zabbix服务器的负载是非常有益的。如果尽在proxies上收集数据,那么将减轻服务器上的进程对cpu资源和磁盘I/O的消耗。

zabbix proxy在没有本地管理员的情况下,是集中监控远程区域,分支和网络的理想解决方案。

Node:

使用node节点,建立一个层次结构的分布式监测。每一个节点是一个完整的zabbix服务器,和负责监视它自己的位置,zabbx 支持高达一千个节点的分布式安装。

使用node节点的好处:

1、在大型的网络中,涉及多个地点建立一个多层次的监控,在层次结构中的一个节点报告其主节点。

2、一个节点可以在本地配置或通过其主节点,它的所有子节点的配置数据的副本。

3、数据收集更多的免疫可能的通信问题。如果主站和子节点之间的通信发生故障时,节点可以保持运行状态。历史信息和事件存储在本地。当通信又回来了,一个子节点将有选择地将数据发送到主节点。

4、节点可以分裂一个单一的zabbix服务器的工作,监视数千台主机。

5、新节点的连接和拆卸,不影响现有的设置的功能。无需重新启动所需的任何节点。

所以本文选为以proxy为主是zabbix分布式(同时我的跨机房监控方案也是proxy,好处是安装配置方便,坏处是如果proxy代理有问题,所有监控主机都报警,但可以在配置里添加一个检测来解决)。

环境为

1
2
3
4
Ip              状态          hostname        软件版本    系统
192.168 . 56.101   zabbix agent        server           2.0 . 6        ubuntu server  12.04
192.168 . 56.102   zabbix server       centos           2.0 . 6        centos  6.2
192.168 . 56.103   zabbix proxy        client1          2.0 . 6        ubuntu server  12.04

1.安装依赖库

如果是debian或者ubuntu需要安装

1
apt- get  install mysql-server gcc make  libghc6-hsql-mysql-dev libcurl4-openssl-dev libsnmp-dev snmp curl

如果是centos或者redhat的需要安装

1
yum install install mysql-server mysql-devel gcc make wget net-snmp* curl libcurl

2.添加用户

1
2
groupadd zabbix
useradd zabbix -g zabbix –s /sbin/nologin

注意:

如果是redhat或者centos系统,如果不想用户登录,可以使用-s /sbin/nologin,如果是debian或者ubuntu系统,可以使用-s /usr/sbin/nologin

3.下载源码包

去官网下载的zabbix-2.0.6.tar.gz,或者在这里下载http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz

4.解压与安装

1
2
3
4
tar zxvf zabbix- 2.0 . 6 .tar.gz
cd zabbix- 2.0 . 6
./configure --prefix=/usr/local/zabbix --enable-proxy -- with -mysql -- with -net-snmp -- with -libcurl
make install

5.配置数据库

1
2
3
4
mysql –u root –p
create database zabbix character  set  utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by  'zabbix' ;
mysql -uzabbix -p 'zabbix'  zabbix < database/mysql/schema.sql

6.修改zabbix_proxy.conf文件

下面是我的修改后的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
root@client1:/usr/local/zabbix/etc# grep -v  "#"  zabbix_proxy.conf|sed  '/^$/d'
Server= 192.168 . 56.102
Hostname=client1
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
ProxyLocalBuffer= 0
ProxyOfflineBuffer= 1
ConfigFrequency= 600
DataSenderFrequency= 10
StartPollers= 10
StartPollersUnreachable= 1
StartTrappers= 10
StartPingers= 1
CacheSize=64M
Timeout= 10
TrapperTimeout= 30

参数介绍

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Server= 192.168 . 56.102  #zabbix server的ip地址或者域名
Hostname=client1 #proxy主机名,在zabbix web会以这个名字为准
#DB 设定档
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
ProxyLocalBuffer= 0  #设定为 0 小时,除非有其他第三方应用和插件需要调用
ProxyOfflineBuffer= 1  #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency= 600  #server和proxy配置修改同步时间间隔,设定 5 - 10 分钟即可。
DataSenderFrequency= 10  #数据发送时间间隔, 10 -30s;
#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;
StartPollers= 10  #开启多线程数,一般不要超过 30 个;
StartPollersUnreachable= 1  #该线程用来单独监控无法连接的主机, 1 个即可;
StartTrappers= 10  #trapper线程数
StartPingers= 1  #fping线程数
CacheSize=64M #用来保存监控数据的缓存数,根据监控主机数量适当调整;
Timeout= 10  #超时时间,设定不要超过30s,不然会拖慢其他监控数据抓取时间;
TrapperTimeout= 30  #同上
FpingLocation=/usr/sbin/fping #配合simple check icmp检测使用,如不需要可关闭;
其他配置默认即可;

7.启动

1
/usr/local/zabbix/sbin/zabbix_proxy

8.去agent节点修改配置文件

主要修改

1
2
Server= 192.168 . 56.103
ServerActive= 192.168 . 56.103 : 10051

其中Server为代理服务器的ip,ServerActive也为代理服务器的ip与端口

然后重启服务

1
2
ps -ef|grep zabbix|grep -v grep|awk  '{print $2}' |xargs kill - 9
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

9.web添加proxy节点

高级配置-》节点管理-》代理节点-》创建节点

100207482.jpg

填写proxy的主机名即可,与配置文件一致:

Active - 代理服务器将主动连接zabbix服务器并请求配置数据
被动模式 - zabbix服务器连接代理服务器

现在我也把代理的主机server给添加了,如果不想在这里添加,可以在系统配置-》主机-》Create host,”由代理监控”选择刚添加的proxy

查看状态

100248850.jpg

同时也提醒大家一下,如果使用自动注册功能,并且在agent里设置了serveractive的话,就能自动的在server上注册,但一定要先建立好节点。




 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/dl528888/1334573,如需转载请自行联系原作者




相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
5月前
|
监控 应用服务中间件 nginx
基于Zabbix的SLA监控体系构建与实践
本文由Zabbix社区专家褚凤彬分享,详解SLA在Zabbix中的应用。通过Trigger与Service联动,构建Web应用的多层级监控体系,并介绍SLA计算规则、维护期处理及升级注意事项,助力企业精准掌控服务可用性。
495 36
|
11月前
|
运维 监控 安全
【案例分享】中国通号卡斯柯公司:ZABBIX如何破解轨道交通监控难题
本文根据2023上海峰会上朱林贤的演讲整理,聚焦中国通号卡斯柯公司如何借助Zabbix实现轨道交通信号系统的智能化管理。作为中外合资企业,卡斯柯通过统一平台整合设备监控,大幅降低成本并提升灵活性,成功应用于国内外项目。文章探讨了传统监控系统的痛点、研发维护经验及国产化与开源技术挑战,为行业转型提供了宝贵启示。未来,开放协作将是推动轨道交通智能化发展的关键。
537 8
|
存储 缓存 监控
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
196 23
|
7月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
480 2
|
7月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
429 6
|
8月前
|
存储 缓存 NoSQL
Redis核心数据结构与分布式锁实现详解
Redis 是高性能键值数据库,支持多种数据结构,如字符串、列表、集合、哈希、有序集合等,广泛用于缓存、消息队列和实时数据处理。本文详解其核心数据结构及分布式锁实现,帮助开发者提升系统性能与并发控制能力。
|
12月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
1317 0
分布式爬虫框架Scrapy-Redis实战指南
|
6月前
|
NoSQL Java 调度
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
分布式锁是分布式系统中用于同步多节点访问共享资源的机制,防止并发操作带来的冲突。本文介绍了基于Spring Boot和Redis实现分布式锁的技术方案,涵盖锁的获取与释放、Redis配置、服务调度及多实例运行等内容,通过Docker Compose搭建环境,验证了锁的有效性与互斥特性。
526 0
分布式锁与分布式锁使用 Redis 和 Spring Boot 进行调度锁(不带 ShedLock)
|
6月前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。

推荐镜像

更多