Zabbix proxy分布式监控(学习笔记三十一)
转载:http://www.cnblogs.com/yaoyaojcy/p/8182067.html
自学Zabbix13.1分布式监控proxy介绍
zabbix2.4版本之前,zabbix提供了两种解决方案,分别为:proxy和nodes
proxy代替zabbix server在本地检索数据,然后提交给zabbix server
Nodes则就是一个完整的zabbix Server(不做介绍)
zabbix自从2.4版本之后,分布式监控就移除了 nodes 模式
1. 概述
zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式、分布式监控。
zabbix proxy使用场景:
监控远程区域设备
监控本地网络不稳定区域
当zabbix监控上千设备时,使用它来减轻server的压力
简化zabbix的维护
2.zabbix proxy架构图
zabbix proxy仅仅需要一条tcp连接到zabbix server,所以防火墙上仅仅需要加上一条规则即可。
zabbix proxy数据库必须和server分开,否则数据会被破坏,毕竟这两个数据库的表大部分都相同。总之记住,数据库分开即可。
proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server。
这个时间由proxy配置文件中参数ProxyLocalBuffer and ProxyOfflineBuffer决定。
3. zabbix proxy功能
zabbix proxy是一个数据收集器,它不计算触发器、不处理事件、不发送报警,如下是proxy的功能.
ItemsFunction Supported by proxy
Zabbix agent checks Yes
Zabbix agent checks (active) Yes
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
Built-in web monitoring Yes
Network discovery Yes
Low-level discovery Yes
Calculating triggers No
Processing events No
Sending alerts No
Remote commands No
备注:
使用agent active模式,一定要记住在agent的配置文件参数ServerActive加上proxy的IP地址
分为两部分:
安装proxy
配置proxy
1. 安装proxy
官方文档使用的是源码安装,因为方便我们使用yum安装,因为我们只有2台,所以就用agent当做Proxy
1.1 安装
[root@linux-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mariadb-server
我们需要启动MySQL
[root@linux-node2 ~]# systemctl start mariadb.service
1.2 创建数据库
1mysql2create database zabbix_proxy character set utf8;3grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by'zabbix_proxy';
1.3 导入数据
[root@linux-node2 ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.0.8/[root@linux-node2 zabbix-proxy-mysql-3.0.8]# zcat schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxyEnter password: #密码是:zabbix_proxy 是我们数据库授权的密码
1.4 检查数据库
1mysql2show databases;3use zabbix_proxy;4show tables;5#查看是否含有数据
1.5 修改proxy的配置文件
1[root@linux-node2 zabbix-proxy-mysql-3.0.8]# vim /etc/zabbix/zabbix_proxy.conf 2Server=172.18.50.33 3Hostname=Zabbix proxy 4DBName=zabbix_proxy 5#数据库名称 6DBUser=zabbix_proxy 7#用户名 8DBPassword=zabbix_proxy 9#用户密码10配置文件中没有配置的内容如下:(有需要可以配置)11# ProxyLocalBuffer=012#数据保留的时间(小时为单位)13# ProxyOfflineBuffer=114#连不上Server,数据要保留多久(小时为单位,默认1小时)15# DataSenderFrequency=116#数据的发送时间间隔(默认是1秒)17# StartPollers=518#启动的线程数19# StartIPMIPollers=020#启动IPMI的线程数
过滤修改过的配置如下:
1[root@linux-node2 zabbix-proxy-mysql-3.0.8]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf 2Server=172.18.50.33 3Hostname=Zabbix proxy 4LogFile=/var/log/zabbix/zabbix_proxy.log 5LogFileSize=0 6PidFile=/var/run/zabbix/zabbix_proxy.pid 7DBName=zabbix_proxy 8DBUser=zabbix_proxy 9DBPassword=zabbix_proxy10SNMPTrapperFile=/var/log/snmptrap/snmptrap.log11Timeout=412ExternalScripts=/usr/lib/zabbix/externalscripts13LogSlowQueries=3000
1.6 启动, 查看proxy进程
[root@linux-node2 ~]# systemctl start zabbix-proxy
1[root@linux-node2 ~]# netstat -lntup 2Active Internet connections (only servers) 3Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 4tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 15685/mysqld 5tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1073/sshd 6tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2498/master 7tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 15924/zabbix_proxy 8tcp6 0 0 :::44589 :::* LISTEN 9052/java 9tcp6 0 0 :::8080 :::* LISTEN 9052/java 10tcp6 0 0 :::22 :::* LISTEN 1073/sshd 11tcp6 0 0 :::8888 :::* LISTEN 9052/java 12tcp6 0 0 ::1:25 :::* LISTEN 2498/master 13tcp6 0 0 :::39743 :::* LISTEN 9052/java 14tcp6 0 0 :::10051 :::* LISTEN 15924/zabbix_proxy 15tcp6 0 0 127.0.0.1:8005 :::* LISTEN 9052/java 16tcp6 0 0 :::8009 :::* LISTEN 9052/java
Zabbix-proxy 监控10051端口,因为是代理就必须跟Server的端口相同,对于Agent Proxy就是Server
2. proxy配置
2.1 administrator --- proxies---creat proxy
参数描述
Proxy nameproxy名称,必须和proxy配置文件中的hostname一致
Proxy mode选择proxy模式
Activeproxy主动连接到zabbix server并且请求配置文件数据
PassiveZabbix server连接到proxy
Hosts哪些主机需要被proxy监控
2.2 encryption选项
连接到代理服务器如何连接到被动代理:没有加密(默认),使用PSK(预共享密钥)或证书。
来自代理的连接选择从活动代理允许什么类型的连接
可以同时选择几种连接类型(用于测试和切换到其他连接类型)
默认没有加密
发行人允许颁发证书。证书首先由CA(证书颁发机构)验证。如果它是有效的,在CA签署,然后发行领域可以用来进一步限制允许约这个字段是可选的,如果你打算使用Zabbix安装使用证书从多个CAS。
科目允许证书。证书首先由CA.验证,如果它是有效的,由CA签名,则主题字段可用于只允许一个主题字符串值。如果此字段为空,则接受配置的CA签署的任何有效证书。
身份认证预共享密钥标识字符串。
预共享密钥最大长度:512进制数(256字节的PSK)
如果Zabbix uses GnuTLS或OpenSSL库,64进制数(32字节的PSK)
如果Zabbix使用MBED TLS(polarssl)。例如:1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952
2.3
配置主机HOST的时候,如果需要被proxy代理,那么都选择对应的proxy名称 。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaScript学习之旅-11(原创)
在上一篇文章中,主要学习了JavaScript的闭包,箭头函数。这一篇文章我们主要学习JavaScript中的Date、正则表达式、Json、浏览器对象 Data: JavaScript中,使用Data来表示日期对象,既然是日期对象我们就可以获取具体的时间、月份、分钟等等,下面是基本的使用: Data相关API 通过代码的日志可以看到,JavaScript的Date对象月份值居然是从0开始算起,0 = 1 月,1 = 2月,……,11=12月。 那这种尴尬的结果,如何变成我们想要的实际结果咧?(也就是数字1代表的就是1月) 可以直接在月份的数据加 1 ,这样可以快速解决问题。 正则表达式: 跟Java的设计理念一样,正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。比如,匹配邮箱,匹配电话号码等等,关于JavaScript的具体的正则表达式的内容这里就不具体讲了,因为百度谷歌很多开源的轮子,我们只需要知道有这样一个概念,使用的时候根据场景合理Copy就行 下面是...
- 下一篇
Zabbix 二次开发API(学习笔记三十)
Zabbix API我们可以做很多,自己开发web界面、开发手机端zabbix、获取zabbix指定数据、创建zabbix监控项等等。 1. zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、Python、Perl、go等等语言,简单看了下phpzabbixapi,使用非常方便。 2.请求zabbix API post json数据到api接口地址,例如你得zabbix地址是http://company.com/zabbix,那么你得接口地址是:http://company.com/zabbix/api_jsonrpc.php,必须包含content-type头,值为application/json-rpc,application/jsonorapplication/jsonrequest之一。 POSThttp://company.com/zabbix/api_jsonrpc.php HTTP/1.1 Content-Type:a...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境