zabbix监控
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
解压安装包 编译
[root@node2 zabbix-4.0.30]#tar xf zabbix-4.0.30.tar.gz [root@node2 zabbix-4.0.30]#cd zabbix-4.0.30/ [root@node2 zabbix-4.0.30]#./configure --prefix=/apps/zabbix --enable-agent [root@node2 zabbix-4.0.30]#make -j2 && make install
准备service文件
[root@node2 zabbix-4.0.30]#useradd zabbix # 新建用户 [root@node2 zabbix-4.0.30]#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 [root@node2 zabbix-4.0.30]#systemctl daemon-reload [root@node2 zabbix-4.0.30]#systemctl start zabbix-agent.service [root@node2 zabbix-4.0.30]#systemctl status zabbix-agent.service
[root@node2 etc]#vim /apps/zabbix/etc/zabbix_agentd.conf 94 Server=192.168.100.155 #指向当前zabbix server ##### Passive checks related #被动检查相关配置 ### Option: ListenPort ListenPort=10050 #监听端口 默认的无需修改 119 StartAgents=3 #启动3个进程收集数据 146 Hostname=192.168.100.160 #指定名称 一般使用 IP地址, 等会需要使用
systemctl restart zabbix-agent.service
systemctl status zabbix-agent.service
添加模板
#在zabbix_server上执行
/apps/zabbix_server/bin/zabbix_get -s 192.168.100.60 -p 10050 -k "agent.ping" -s 指明主机 -k 指明监控项 -p 端口
在192.168.100.160上安装tomcat
所谓JMX,是Java Management Extensions(Java管理扩展)的缩写,是一个为应用程序植入管理功能的框架。用户可以在任何Java应用程序中使用这些代理和服务实现管理。
https://www.jianshu.com/p/8c5133cab858
vim /usr/local/tomcat/bin/catalina.sh #一般加在117行 12345为JMX监控的端口号 CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.100.160"
systemctl restart tomcat.service systemctl status tomcat ss -napt|grep 12345
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" |
在windows安装windows版本的JDK,安装过程略,安装完成之后点击安装目录的jconsole.exe,比如C:\ProgramFiles\Java\jdk1.8.0_221\bin\jconsole.exe,如下:
在主服务器上配置启动 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 # 启动gateway服务 ss -antp |grep 10052
配置 zabbix-server 对接 java-gateway
[root@localhost data]#vim /apps/zabbix_server/etc/zabbix_server.conf 282 JavaGateway=192.168.100.160 #指明gateway地址 297 StartJavaPollers=5 #开启多少个进程去收集java服务器的信息 289 JavaGatewayPort=10052 # 默认不用改 [root@localhost ~]#systemctl restart zabbix-server #快照起不来 重启机器 #重启后不要忘记开启 javagateway
1.
被动模式的优点就是配置简单,安装后即可使用,因此也成为zabbix 的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabbix agent发送数据采集指令,如果zabbix server负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。
-
主服务器会开启随机端口去连接 客户端的 10050 端口 来获取数据
-
从节点将数据交给主
-
主写入数据库
-
主动模式是由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的压力。
-
-
从节点将数据交给主
-
主写入数据库
-
最后展示在 web页面中
-
[root@node2 zabbix]#grep -in "^[a-z]" etc/zabbix_agentd.conf 30:LogFile=/tmp/zabbix_agentd.log 94:Server=192.168.91.100 #谁可以来获取数据 119:StartAgents=3 135:ServerActive=127.0.0.1 146:Hostname=192.168.91.102 [root@node2 zabbix]#vim /apps/zabbix/etc/zabbix_agentd.conf 修改第135 作为 94:Server=192.168.91.100 #谁可以来获取数据 135:ServerActive=192.168.91.100 #主动模式的zabbix server地址 146:Hostname=192.168.91.102 #当亲主机名字 [root@node2 zabbix]#systemctl restart zabbix-agent.service
点击全克隆
修改名称
修改多个
服务器的磁盘 网卡个不相同, 模板中有一些自动发现规则,可以适当将 其中的一些选项时间调低点,默认1小时太长了
监控项原型, 自动适配改成你的名字
应用模板
查看网卡
另外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 server版本一致,否则会导致出现zabbix server与zabbix 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
mysql_secure_installation
#新建表 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.100.%' identified by '123'; grant all privileges on zabbix_proxy_passive.* to proxy@'192.168.100.%' identified by '123'; grant all privileges on zabbix_proxy_active.* to proxy@'localhost' identified by '123'; grant all privileges on zabbix_proxy_passive.* to proxy@'localhost' identified by '123'; #导入数据结构 #先去源码包目录 mysql -uproxy -p123 -h192.168.100.140 zabbix_proxy_passive < database/mysql/schema.sql mysql -uproxy -p123 -h192.168.100.140 zabbix_proxy_active < database/mysql/schema.sql
地址 | |
---|---|
zabbix server | 192.168.100.155 |
被动proxy | 192.168.100.140 |
web服务器IP |
# vim /apps/zabbix_proxy/etc/zabbix_proxy.conf ProxyMode=1 #0为主动,1为被动 Server=192.168.91.100 #zabbix server服务器的地址或主机名 Hostname=passive #代理服务器名称,需要与zabbix server添加代理时候的proxyname是一致的! ListenPort=10051 #zabbix proxy监听端口 LogFile=/tmp/zabbix_proxy.log EnableRemoteCommands=1 #允许zabbix server执行远程命令 DBHost=192.168.91.103 #数据库服务器地址 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 #毫秒,多久的数据库查询会被记录到日志
[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/ [root@localhost zabbix_proxy]#vim zabbix_proxy.conf
13 ProxyMode=1 # 1是被动 #0为主动 修改为1 30 Server=192.168.100.155 # 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的 39 ServerPort=10051 #被动模式可以不修改 应为是 zabbix-server 主动 49 Hostname=passive # web 配置中需要使用, 必须一致 156 DBHost=192.168.100.140 #数据库地址 167 DBName=zabbix_proxy_passive # 数据库名字 182 DBUser=proxy #数据库用户 192 DBPassword=123 #数据库密码 244 ConfigFrequency=5 #间隔多少秒从zabbix server获取监控项信息
[root@localhost zabbix-4.0.30]#useradd zabbix
[root@localhost zabbix-4.0.30]#chown zabbix:zabbix /apps/zabbix_proxy/ -R
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy [root@localhost zabbix-4.0.30]#ss -natpl |grep 10051 [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd # 一定要开
[root@localhost ~]# vim /apps/zabbix/etc/zabbix_agentd.conf 94 Server=192.168.100.155,192.168.100.140 #被动模式 允许 .140代理 来获取数据 [root@localhost ~]#systemctl restart zabbix-agent.service [root@localhost ~]#systemctl status zabbix-agent.service
[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/ [root@localhost zabbix_proxy]#vim /apps/zabbix_proxy/etc/zabbix_proxy.conf 13 ProxyMode=0 # 1是被动 0为主动 需要开启 31 Server=192.168.100.155 # 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的 40 ServerPort=10051 #被动模式可以不修改 应为是 zabbix-server 主动 50 Hostname=active # web 配置中需要使用, 必须一致 158 DBHost=192.168.91.103 #数据库地址 169 DBName=zabbix_proxy_active # 数据库名字 184 DBUser=proxy #数据库用户 192 DBPassword=123 #数据库密码
[root@localhost zabbix-4.0.30]#useradd zabbix [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd [root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy [root@localhost zabbix-4.0.30]#ss -natpl |grep 10051