客户故事

zabbix-proxy代理服务器和高可用

部署zabbix-proxy代理服务器和高可用,以及监控windows系统和java应用


zabbix代理服务器和高可用

  • 1.部署zabbix代理服务器
    • 1.1 代理端zabbix-proxy配置
    • 1.2 客户端zabbix-agent配置
    • 1.3 zabbix-proxy总结
  • 2. 部署Zabbix高可用集群
    • 2.1 主节点zabbix-server配置
    • 2.2 备节点zabbix-server配置
    • 2.3 客户端zabbix_agent配置
    • 2.4 Zabbix高可用集群总结
  • 3.Zabbix 监控Windows系统
    • 3.1 win10客户端配置
    • 3.2 服务端Web页面配置
    • 3.3 zabbix监控Windows服务器总结
  • 4.Zabbix监控java应用
    • 4.1 客户端zabbix-agent配置
    • 4.2 代理端zabbix-proxy配置
    • 4.3 zabbix 监控 JAVA应用总结
  • 5.Zabbix监控SNMP(端口号:161)
    • 5.1 服务端zabbix-server配置
    • 5.2 Web页面配置
    • 5.3 Zabbix监控SNMP总结

参见部署Zabbix监控步骤详解


1.部署zabbix代理服务器

在这里插入图片描述

分布式监控的作用:

  • 分担server的集中式压力
  • 解决多机房之间的网络延时问题

agent --> proxy --> server

在这里插入图片描述

1.1 代理端zabbix-proxy配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

(1)修改proxy代理的主机名,并将IP地址与主机名之间的对应关系加入到/etc/hosts文件中

###修改代理服务器的主机名hostnamectl set-hostname zbx-proxyvim /etc/hosts###将以下IP地址与主机名之间的对应关系,分别加入到服务端和客户端的所有主机/etc/hosts文件中192.168.80.20 zbx-server192.168.80.20 zbx.gzy.com192.168.80.40 zbx-agent01192.168.80.30 zbx-agent02192.168.80.10 zbx-proxy

在这里插入图片描述
(2)在服务端、客户端以及zabbix-proxy中设置计划性任务,每30分钟自动执行一次时间同步

crontab -e###在所有主机中执行时间同步操作*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com

在这里插入图片描述

(3)设置zabbix的下载源,安装zabbix-proxy

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpmsed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

在这里插入图片描述

(4)部署Mariadb yum源,安装并启动Mariadb数据库

#配置Mariadb yum源cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOFyum install -y mariadb-server mariadb###启动数据库systemctl restart mariadb.service 
systemctl enable mariadb.service 
netstat -lntp | grep 3306

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

(5)初始化数据库

mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如123) -> 后面一路 Y

mysql -u root -p123

在这里插入图片描述

创建数据库并指定字符集;

CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;

创建zabbix数据库用户并授权;

GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';FLUSH PRIVILEGES;

在这里插入图片描述

导入数据库信息;

cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -p123 zabbix_proxy

(6)修改zabbix-proxy配置文件

vim /etc/zabbix/zabbix_proxy.confServer=192.168.80.20				#32行,指定zabbix服务端的 IP 地址Hostname=zbx-proxy					#42行,指定当前zabbix代理服务器的主机名DBPassword=zabbix					#194行,指定当前数据库zabbix用户的密码

在这里插入图片描述

(7)在zabbix代理服务端,启动zabbix-proxy服务

systemctl start zabbix-proxy.service 
systemctl enable zabbix-proxy.service
systemctl status zabbix-proxy.service 
netstat -lntp | grep zabbix

在这里插入图片描述

(8)在Web页面配置agent代理

点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
【agent代理程序名称】输入 zbx-proxy
【系统代理程序模式】选择 主动式
【代理地址】输入 192.168.80.10
点击 【添加】

在这里插入图片描述

1.2 客户端zabbix-agent配置

(1)在客户端修改zabbix_agent2.conf配置文件

vim /etc/zabbix/zabbix_agent2.conf......Server=192.168.80.10			#80行,指定zabbix代理服务器的IP地址ServerActive=192.168.80.10		#133行,指定zabbix代理服务器的IP地址

在这里插入图片描述

(2)在Web页面配置

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux server
【Interfaces】选择 客户端,【IP地址】输入 192.168.80.40,【端口】输入 10050
【由agent代理程序监测】选择 zbx-proxy
点击 【添加】

在这里插入图片描述

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent02
【可见的名称】输入 zbx-agent02
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux server
【Interfaces】选择 客户端,【IP地址】输入 192.168.80.30,【端口】输入 10050
【由agent代理程序监测】选择 zbx-proxy
点击 【添加】

在这里插入图片描述

(3)分别在客户端和代理服务器上重启服务

###重启客户端服务systemctl restart zabbix-agent2netstat -lntp | grep zabbix###重启代理服务端systemctl restart zabbix-proxynetstat -lntp | grep zabbix

等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常;
在这里插入图片描述

在zabbix_proxy代理服务端查看日志;

tail -f /var/log/zabbix/zabbix_proxy.log

在这里插入图片描述
在zabbix_server服务端查看日志;

 tail -f /var/log/zabbix_server.log

在这里插入图片描述

1.3 zabbix-proxy总结

zabbix proxy代理服务器————代替zabbix server接收agent发来的监控数据,再汇总后转发给zabbix server端

2. 部署Zabbix高可用集群

此处的高可用仅仅针对Zabbix Server部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。
在这里插入图片描述

2.1 主节点zabbix-server配置

(1)服务端配置
默认情况下,HA是关闭的。HA部分的配置在配置文件的最下面:High availability cluster parameters部分。

主节点Zabbix Server配置

###修改zabbix_server主机名hostnamectl set-hostname zbx-server01suvim /etc/zabbix/zabbix_server.conf......DBHost=192.168.80.20DBName=zabbixDBUser=zabbixDBPassword=zabbix......HANodeName=zbx-server01					#设置为当前节点主机名或者IP地址,需保证同一集群中唯一NodeAddress=192.168.80.20:10051			#设置为相对应的节点IP

在这里插入图片描述

在这里插入图片描述
(2)重新启动主节点zabbix-server服务

systemctl restart zabbix-servernetstat -lntp | grep zabbix

在这里插入图片描述

(3)主节点给数据库授权远程登录权限

mysql -uroot -p123GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';FLUSH PRIVILEGES;

在这里插入图片描述

2.2 备节点zabbix-server配置

###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

(1)设置备节点与主节点时间同步

yum install -y ntpdate
ntpdate -u ntp.aliyun.com

(2)设置备节点主机名,并添加到/etc/hosts文件中

###备节点服务端主机名hostnamectl set-hostname zbx-server02suvim /etc/hosts192.168.80.20 zbx.gzy.com192.168.80.20 zbx-server01192.168.80.90 zbx-server02192.168.80.40 zbx-agent01192.168.80.10 zbx-agent02

在这里插入图片描述

(3)安装依赖包,创建zabbix用户

yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ makeuseradd -s /sbin/nologin -M zabbix

在这里插入图片描述

(4)上传源码包zabbix-6.0.13.tar.gz到/opt目录,然后编译安装

cd /opt
rz -E#zabbix-6.0.13.tar.gztar xf zabbix-6.0.13.tar.gzcd /opt/zabbix-6.0.13/

./configure \--sysconfdir=/etc/zabbix/ \--enable-server \--with-mysql \--with-net-snmp \--with-libxml2 \--with-ssh2 \--with-openipmi \--with-zlib \--with-libpthread \--with-libevent \--with-openssl \--with-ldap \--with-libcurl \--with-libpcremake -j2 install

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

(5)检查版本

zabbix_server --version

(6)修改zabbix server配置文件,修改数据库的密码

vim /etc/zabbix/zabbix_server.conf 
......LogFile=/var/log/zabbix_server.log		#38行,指定zabbix日志路径DBPassword=zabbix					#123行,指定在zabbix监控中,登录zabbix数据库的密码###创建/var/log/zabbix_server.log文件,并设置所属主用户为zabbixtouch /var/log/zabbix_server.logchown zabbix.zabbix /var/log/zabbix_server.log

(7)准备systemctl服务管理文件

vim /usr/lib/systemd/system/zabbix-server.service[Unit]Description=Zabbix Server with MySQL DBAfter=syslog.target network.target mysqld.service[Service]Type=simpleExecStart=/usr/local/sbin/zabbix_server -fUser=zabbix[Install]WantedBy=multi-user.target

(8) 启动zabbix-server服务

systemctl start zabbix-server.service
systemctl enable zabbix-server.servicenetstat -lntp | grep 10051			#zabbix_server默认监听10051端口

在这里插入图片描述
(9)修改备节点Zabbix Server的配置文件zabbix_server.conf

vim /etc/zabbix/zabbix_server.conf......DBHost=192.168.80.20DBName=zabbixDBUser=zabbixDBPassword=zabbix......HANodeName=zbx-server02NodeAddress=192.168.80.90:10051

(10)启动备节点zabbix-server服务

systemctl start zabbix-server
systemctl enable zabbix-servernetstat -lntp | grep zabbix

2.3 客户端zabbix_agent配置

vim /etc/zabbix/zabbix_agentd.conf 
......Server=192.168.80.20,192.168.80.90ServerActive=192.168.80.20;192.168.80.90			#注意,ServerActive 的连接符是‘;’ ,而不是‘,’

2.4 Zabbix高可用集群总结

zabbix HA:仅对zabbix server实现的高可用
           主备节点都要配置相同的 DBHost DBName DBUser DBPassword
		                   HANodeName 指定集群节点名称,要求每个节点名称唯一
						   NodeAddress  指定集群节点的 IP:端口

3.Zabbix 监控Windows系统

3.1 win10客户端配置

(1)下载Windows客户端Zabbix agent 2

https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.13/zabbix_agent2-6.0.13-windows-amd64-openssl.msi

(2)安装客户端,配置

双击客户端软件包开始安装
【Host name】:WIN10-SERVER
【Zabbix server IP/DNS】:192.168.80.20
【Agent listen port】:10050
【Server or Proxy for active checks】:192.168.80.20
勾选 【Add agent location to the PATH】

在这里插入图片描述

3.2 服务端Web页面配置

(1)在服务端 Web 页面添加主机,关联模板

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 win10-agent01
【可见的名称】输入 win10-agent01-192.168.80.120
【模板】搜索 windows ,选择 Windows by Zabbix agent
【群组】输入 windows ,选择 windows(新)
【Interfaces】点击添加 客户端,【IP地址】输入 192.168.80.120,【端口】输入 10050

在这里插入图片描述
在这里插入图片描述
关闭win10主机,观察web页面的监控情况;

在这里插入图片描述

3.3 zabbix监控Windows服务器总结

zabbix 监控 Windows服务器   在 Windows服务器 上安装 Windows版本的 zabbix agent2 客户端应用,并配置

4.Zabbix监控java应用

在这里插入图片描述

4.1 客户端zabbix-agent配置

(1) 客户端开启java jmx的remote远程监控功能
上传tomcat软件包到/opt目录中

cd /opt
rz -E#apache-tomcat-9.0.16.tar.gztar zxvf apache-tomcat-9.0.16.tar.gzmv apache-tomcat-9.0.16 /usr/local/tomcat

(2)配置java jmx的remote远程监控功能

vim /usr/local/tomcat/bin/catalina.sh......	#位置在 cygwin=false 前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.80.30"           #tomcat服务器地址cygwin=false

在这里插入图片描述

(3)客户端启动tomcat服务,查看暴漏的JMX端口

/usr/local/tomcat/bin/startup.sh 
netstat -lntp | grep 12345

在这里插入图片描述

4.2 代理端zabbix-proxy配置

(1)服务端/代理端安装并启动zabbix-java-gateway服务
重点强调:由于我安装了proxy代理服务,因此我应该是在proxy代理服务上安装zabbix-java-gateway服务。

yum install -y zabbix-java-gateway

systemctl restart zabbix-java-gateway.service
systemctl enable zabbix-java-gateway.servicenetstat -lntp | grep 10052    #zabbix-java-gateway 默认监听 10052 端口

在这里插入图片描述

(2) 修改代理端zabbix_proxy.conf配置

vim /etc/zabbix/zabbix_proxy.conf 
......
JavaGateway=192.168.80.10		# 317行,指定 zabbix-java-gateway 的 IP 地址
StartJavaPollers=5				# 333行,开启用来收集java数据的poller进程的数量

systemctl restart zabbix-proxy.service 
ps -ef | grep zabbix | grep java

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

(3) 在服务端 Web 页面添加主机,关联模板

点击左边菜单栏【配置】中的【主机】,点击 zbx-agent01
【模板】搜索 JMX ,选择 Generic Java JMX
【Interfaces】点击添加 JMX,【IP地址】输入 192.168.80.30,【端口】输入 12345
点击 【更新】
等待一段时间后 Zabbix server 的可用性增加了 JXM 监控方式

在这里插入图片描述

重启zabbix服务端、代理端以及客户端所有主机服务;
在这里插入图片描述
在zabbix_proxy代理服务端查看日志

tail -f /var/log/zabbix/zabbix_proxy.log

在这里插入图片描述
在zabbix_server服务端查看日志

tail -f /var/log/zabbix_server.log

在这里插入图片描述

4.3 zabbix 监控 JAVA应用总结

(1)需要在JAVA应用启动参数中添加 开启JMX端口的参数配置-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.80.30"

(2)在 zabbix server 或 zabbix proxy 安装 zabbix java gateway,并修改配置zabbix server 或 zabbix proxy的配置设置java gateway的地址和进程数
(3)在服务端web管理页面中修改被监控主机配置,添加 JMX 接口监控

5.Zabbix监控SNMP(端口号:161)

5.1 服务端zabbix-server配置

SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。

(1)服务端安装snmp监控程序

yum install -y net-snmp net-snmp-utils

在这里插入图片描述

(2)修改snmp的配置文件,并启动服务

vim /etc/snmp/snmpd.conf......view    systemview    included   .1				#57行,添加此配置systemctl start snmpd
systemctl enable snmpdnetstat -lntp | grep snmpd

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

(3)使用snmpwalk命令测试

snmpwalk -v 2c -c public 127.0.0.1 sysname
-------------------------------------------------------
–v 1|2c|3:指定SNMP协议版本,v2c通过团体名作为认证,v3通过用户名和密码认证
–c:指定团体名(设备间的暗号)
sysname:为 snmp 的 key,用于查看系统名称;SysDesc 用于查看系统信息
-------------------------------------------------------

在这里插入图片描述

5.2 Web页面配置

(1)在Web页面配置snmp方式监控

点击左边菜单栏【配置】中的【主机】,点击 Zabbix server
【模板】取消链接并清理 现有模板 Linux by Zabbix agent
搜索 Generic,选择 Generic by SNMP
【群组】搜索 net,选择 net(新)
【Interfaces】点击【添加】选择 SNMP ,【IP地址】输入 127.0.0.1,【端口】输入 161
【SNMP version】选择 SNMPv2
【SNMP community】输入 {$SNMP_COMMUNITY}

在这里插入图片描述

点击上方菜单栏【宏】
选择【主机宏】
【宏】输入 {$SNMP_COMMUNITY},【值】 输入 public(要与网络设备设置的团体名一致),【描述】输入 网络设备snmp的团队名
点击 【更新】
等待一段时间后 Zabbix server 的可用性就变成了 SNMP 监控方式

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

5.3 Zabbix监控SNMP总结

zabbix 监控 支持SNMP协议的网络设备  
在服务端web管理页面中使用 SNMP 接口监控主机,默认端口为 161,并指定网络设备的团体名(设备暗号)


-->