💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
一·proxy分布式监控介绍
来源于zabbix官网:
1.代理
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 |
二、分布式监控部署
环境说明
系统版本 | 软件版本 | 机器角色及ip |
CentOS 7.2 x86_64 | zabbix 3.0.18 | 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的配置文件
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 #数据库密码
配置文件中没有配置的内容如下:(有需要可以配置)
# 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代理监控主机配置完成!