Zabbix监控


一、监控linux系统

在其他从节点安装 zabbix agent,然后添加到zabbix server以对其进行资源监控。

安装zabbix-agent

安装依赖环境

yum install gcc libxml2-devel   net-snmp net-snmp-devel   curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel    libevent-devel    java-1.8.0-openjdk-devel  -y

解压安装包并编译

./configure --prefix=/apps/zabbix --enable-agent
make -j2 && make install

准备service文件

vim /usr/lib/systemd/system/zabbix-agent.service 
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/apps/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target


systemctl daemon-reload
systemctl start  zabbix-agent.service
systemctl status zabbix-agent.service

在这里插入图片描述
修改配置文件

vim  zabbix_agentd.conf
94 Server=192.168.91.100   
指向当前zabbix server

ListenPort=10050 
监听端口  默认的无需修改

119 StartAgents=3
启动3个进程收集数据


146 Hostname=192.168.91.101
指定名称 一般使用 IP地址, 等会需要使用
一般是客户端的IP。

在这里插入图片描述
web页面主控端添加被监控主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用命令获取数据

/apps/zabbix_server/bin/zabbix_get -s 192.168.232.20 -p 10050 -k "agent.ping"
-s  指明主机
-k  指明监控项
-p  端口

在这里插入图片描述
在这里插入图片描述
这边会变绿

监控tomcat

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务,通常使用JMX来监控系统的运行状态。

vim /usr/local/tomcat/bin/catalina.sh
一般加在116行
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
 启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345
默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false 
不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false
不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" 
tomcat主机自己的IP地址,不要写zabbix服务器的地址

jconsole验证JMX数据
在windows安装windows版本的JDK,安装过程略,安装完成之后点击安装目录的jconsole.exe,比如C:\ProgramFiles\Java\jdk1.8.0_221\bin\jconsole.exe,如下:
在这里插入图片描述
在这里插入图片描述
配置zabbixserver
在主服务器上配置启动javagateway

vim /apps/zabbix_server/sbin/zabbix_java/settings.sh 
35 START_POLLERS=5  
启动5个线程去采集java数据
43 TIMEOUT=30  
一个数据的超时时间30s

/apps/zabbix_server/sbin/zabbix_java/startup.sh 
ss -antp |grep 10052

在这里插入图片描述
配置zabbix-server 对接 java-gateway

vim /apps/zabbix_server/etc/zabbix_server.conf
281 JavaGateway=192.168.232.10
指明gateway地址
297 StartJavaPollers=5 
开启多少个进程去收集java服务器的信息

289 JavaGatewayPort=10052
 默认不用改
 改完之后记得重启服务

web界面配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更换监控模版
导入新的模板
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、zabbix主动与被动监控模式

主动被动模式是相对于客户端来说的。

被动模式

zabbix-server 服务器主动去连接被监控服务器
无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式,比如被动模式,是说zabbix agent被动的接受zabbix server周期性发送过来的数据收集指令,在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送zabbix agent就什么时候采集,zabbix server不发送zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期间隔时间。
被动模式的优点就是配置简单,安装后即可使用,因此也成为zabbix 的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabbix agent发送数据采集指令,如果zabbix server负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。

在这里插入图片描述
被动模式搭建过程如上,不再演示。

主动模式

主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求,因此主动模式下必须在zabbixagent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址),在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix server,在主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上可减轻zabbix server打开的本地随机端口和进程数,在一定程度就减轻看zabbix server的压力。

工作流程
在这里插入图片描述
修改zabbix agent为主动模式
在这里插入图片描述

vim  /apps/zabbix/etc/zabbix_agentd.conf
94:Server=192.168.232.10
谁可以来获取数据
135:ServerActive=192.168.232.10
被动模式的zabbix server地址
146:Hostname=192.168.232.40   
当前主机名字

注意:需要生成主动模版才是适配主动模式
生成主动模版
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模版中有一些自动发现规则,时间太长了,我们可以将其缩短。
在这里插入图片描述
在这里插入图片描述
记得应用模版。在这里插入图片描述
在这里插入图片描述

三、zabbix proxy

zabbix 作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy 可以代替 zabbix server 收集监控数据,然后把数据汇报给 zabbix server,所以zabbix proxy可以在一定程度上分担了zabbix server 的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。

另外zabbix proxy也区分主动模式和被动模式,通信方式与zabbix server主动模式和被动模式一样,区别是zabbixproxy由于没有zabbix agent的配置,所以zabbix proxy在主动模式下要向zabbix server周期性的向zabbix server申请获取zabbix agent的监控项信息,但是zabbix proxy在被动模式下也是等待zabbix server的连接并接受zabbixserver发送的监控项指令,然后再有zabbix proxy向zabbix agent发起请求获取数据。

zabbix proxy架构

在这里插入图片描述
在这里插入图片描述

zabbix proxy对比zbbbix server

功能zabbxy proxyzabbix server
轻量级相对重量级
图形带图形控制界面
可以独立工作是,可以独立采集数据并存储是,即数据采集、存储、分析、展示于一体
易维护是,配置完成后基本无需管理维护也不难
独立数据库保留少量最近数据保留指定时间内的所有数据
报警通知否,代理服务器不发送邮件通知支持邮件、短信等告警机制

注意:
zabbix proxy的大版本必须要和zabbix server版本一致,否则会导致出现zabbix server与zabbix proxy不兼容。

实现被动模式

编译安装proxy软件

yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y

./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

make   install

准备数据库

yum install mariadb-server -y
systemctl start mariadb
新建表
create database zabbix_proxy_active  character set utf8 collate utf8_bin;
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
授权
grant all privileges on zabbix_proxy_active.*  	to proxy@'192.168.232.%' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'192.168.232.%' identified by '123456';
grant all privileges on zabbix_proxy_active.*  	to proxy@'localhost' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'localhost' identified by '123456';


导入数据结构,先去源码包目录
mysql -uproxy -p123456 -h192.168.232.50 zabbix_proxy_passive < database/mysql/schema.sql
mysql -uproxy -p123456 -h192.168.232.50 zabbix_proxy_active < database/mysql/schema.sql

被动配置

服务器类型地址
zabbix server192.168.232.10
被动proxy192.168.232.50
web服务器IP192.168.232.40
# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf
ProxyMode=1 				#0为主动,1为被动
Server=192.168.232.10   	#zabbix server服务器的地址或主机名
Hostname=passive   			#代理服务器名称,需要与zabbix server添加代理时候的proxyname是一致的!
ListenPort=10051 			#zabbix proxy监听端口
LogFile=/tmp/zabbix_proxy.log
EnableRemoteCommands=1 		#允许zabbix server执行远程命令
DBHost=192.168.232.50 		#数据库服务器地址
DBName=zabbix_proxy_active 	#使用的数据库名称
DBUser=proxy 				#连接数据库的用户名称
DBPassword=123456 			#数据库用户密码
DBPort=3306					#数据库端口
ProxyLocalBuffer=720 		#已经提交到zabbix server的数据保留时间 720小时
ProxyOfflineBuffer=720 		#未提交到zabbix server的时间保留时间
HeartbeatFrequency=60 		#心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=5 			#间隔多少秒从zabbix server获取监控项信息
DataSenderFrequency=5 		#数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 			#启动的数据采集器数量
JavaGateway=172.31.0.104 	#java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGatewayPort=10052 		#Javagatewa服务端口
StartJavaPollers=20 		#启动多少个线程采集数据
CacheSize=2G 				#保存监控项而占用的最大内存
HistoryCacheSize=2G 		#保存监控历史数据占用的最大内存
HistoryIndexCacheSize=128M 	#历史索引缓存的大小
Timeout=30 					#监控项超时时间,单位为秒
LogSlowQueries=3000 		#毫秒,多久的数据库查询会被记录到日志

配置

vim  apps/zabbix_proxy/etc/zabbix_proxy.conf
13 ProxyMode=0
# 1是被动   0为主动  需要开启

31 Server=192.168.232.10
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的


40 ServerPort=10051
#被动模式可以不修改  应为是  zabbix-server 主动

50 Hostname=active
# web 配置中需要使用, 必须一致



158 DBHost=192.168.232.50
#数据库地址

169 DBName=zabbix_proxy_active
# 数据库名字

184 DBUser=proxy
#数据库用户

192 DBPassword=123456
#数据库密码

在这里插入图片描述
客户端也需要更改。
在这里插入图片描述

/apps/zabbix_proxy/sbin/zabbix_agentd
/apps/zabbix_proxy/sbin/zabbix_proxy 

在这里插入图片描述
web网页配置
在这里插入图片描述
在这里插入图片描述

主动模式

服务器类型地址
zabbix server192.168.232.10
主动proxy192.168.232.30
web服务器IP192.168.232.20

修改proxy配置文件
在这里插入图片描述
客户端
在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值