目录
实验以博客<监控平台—zabbix介绍与部署>这篇博客内容为基础192.168.80.100已配置完成zabbix;192.168.80.101,zabbix客户端;添加一台服务器192.168.80.102;要求将192.168.80.102和192.168.80.101服务器使用自动发现添加到zabbix中

一、自动发现
1.初始化操作
192.168.80.101服务器
初始化操作
systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
hostnamectl set-hostname zbx-agent02
bahs #切换
vim /etc/hosts #三台服务器都需修改方便使用主机名管理
192.168.80.100 zbx-server
192.168.80.101 zbx-agent01
192.168.80.102 zbx-agent02


2.安装启动zabbix-agent2
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
systemctl enable --now zabbix-agent2.service
3.修改zabbix配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.80.100 #80行,指定server服务器
ServerActive=192.168.80.100 #133行
Hostname=zbx-agent01 #144行
HostnameItem=system.hostname #152行取消注释
systemctl restart zabbix-agent2.service
4. Web 页面配置自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成 mynetwork
【IP范围】设置成 192.168.80.1-254
【更新间隔】设置成 10s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【添加】点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【Auto discovery. Linux servers.】,点击 【启用】点击【Auto discovery. Linux servers.】进入点击上方【操作2】模板添加【Template Nginx Status】点击【update】点击【更新】
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机




二、自动注册
准备工作
关闭【发现动作】;【配置】中【主机】只保留server


vim /etc/zabbix/zabbix_agent2.conf
HostnameItem=system.hostname #152行,取消注释
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】
【名称】设置成 Auto registration
点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent
点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【Add】
再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,搜索Nginx,选择Template Nginx Status点击 【Add】
点击下方的【添加】等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机


三、Zabbix proxy代理服务器
分布式监控的作用:
●分担 server 的集中式压力
●解决多机房之间的网络延时问题agent --> proxy --> server
添加服务器192.168.80.103用来安装Zabbix proxy
初始化操作
systemctl disable --now firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
hostnamectl set-hostname zbx-proxy
bash
192.168.80.103
vim /etc/hosts
192.168.80.100 zbx-server
192.168.80.101 zbx-agent01
192.168.80.102 zbx-agent02
192.168.80.103 zbx-proxy
#添加以上
100,101,102
vim /etc/hosts
192.168.80.103 zbx-proxy
#添加该配置
1.安装 zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -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
2.部署、初始化数据库
配置 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
EOF
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
初始化数据库
mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
mysql -u root -pabc123
创建数据库并指定字符集
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;
quit 退出
3.导入数据库信息
cd /usr/share/zabbix-sql-scripts/mysql/
mysql -u root -pabc123 zabbix_proxy < proxy.sql
quit退出
4.修改 zabbix-proxy 配置文件
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.80.100 #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix #194行,指定当前数据库 zabbix 用户的密码
启动 zabbix-proxy
systemctl enable --now zabbix-proxy.service
netstat -lntp | grep zabbix

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





分别在客户端和代理服务器上重启服务
systemctl restart zabbix-agent2systemctl restart zabbix-proxy
等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
在服务端查看日志
tail -f /var/log/zabbix/zabbix_proxy.log

四、Zabbix server高可用集群
官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。
192.168.80.100zbx-server做服务端;192.168.80.101做客户端
Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
HANodeName=zbx-server01 #974行
NodeAddress=192.168.80.100:10051 #986行
systemctl restart zabbix-server.service
客户端配置
vim /etc/zabbix/zabbix_agentd.conf
......
Server=192.168.80.101,192.168.80.110
ServerActive=192.168.80.101;192.168.80.110
#注意,ServerActive 的连接符是‘;’ ,而不是‘,’
systemctl restart zabbix-agent2.service
五、Zabbix 监控 java 应用
192.168.80.101端安装tomcat,只要是Java开发的都可
1 安装tomcat
192.168.80.101
客户端开启 java jmxremote 远程监控功能
上传 tomcat 软件包到 /opt 目录中
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
cd /usr/local/tomcat
./bin/startup.sh #开启服务
netstat -lntp | grep 8080

cd bin
./shutdown.sh #关闭服务
配置 java jmxremote 远程监控功能
vim /usr/local/tomcat/bin/catalina.sh
...... #位置在 cygwin=false 前
CATALINA_OPTS="$CATALINA_OPTS \
-Dcom.sun.management.jmxremote=true \ #开启jmx,可以省略
-Dcom.sun.management.jmxremote.port=12345 \ #jmx的端口
-Dcom.sun.management.jmxremote.rmi.port=12345 \ #rmi的端口,可以与jmx端口一致
-Dcom.sun.management.jmxremote.authenticate=false \ #不开启验证
-Dcom.sun.management.jmxremote.ssl=false \ #不开启ssl通信
-Djava.rmi.server.hostname=192.168.80.101" #服务所在机器的ip地址
cygwin=false
#JMX 和 RMI,是两种相关联的技术,JMX 使用 RMI 作为远程管理工具来管理和监控 Java 程序,RMI 为 JMX 提供了远程连接所需的远程调用和通信机制。
#启动服务,查看端口
./startup.sh
netstat -lntp | grep 12345
systemctl restart zabbix-agent2.service


2.服务端安装 zabbix-java-gateway
192.168.80.100服务端
服务端安装 zabbix-java-gateway
yum install -y zabbix-java-gateway
systemctl enable --now zabbix-java-gateway.service
cd /etc/zabbix/
vim zabbix_server.conf
......
JavaGateway=127.0.0.1 # 317行,指定 zabbix-java-gateway 的 IP 地址
StartJavaPollers=5 # 333行,开启用来收集java数据的poller进程的数量
systemctl restart zabbix-server
ps -ef | grep zabbix_server | grep java

3.Web 页面添加主机,关联模板
在服务端 Web 页面添加主机,关联模板
点击左边菜单栏【配置】中的【主机】,点击 zbx-agent01
【模板】搜索 JMX ,选择 Generic Java JMX
点击添加,点击添加 JMX,【IP地址】输入 192.168.80.101,【端口】输入 12345模板处选择Generic java JMX
点击 【更新】
等待一段时间后 Zabbix server 的可用性增加了 JXM 监控方式

六、Zabbix 监控 SNMP
SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。
需求:监控192.168.80.102服务器
1 服务端安装 snmp 监控程序
yum install -y net-snmp net-snmp-utils
2 修改 snmp 的配置文件并启动
vim /etc/snmp/snmpd.conf
......
view systemview included .1 #57行,添加此配置
systemctl enable --now snmpd
3 使用 snmpwalk 命令测试
snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zbx-server
-------------------------------------------------------
–v 1|2c|3:指定SNMP协议版本,v2c通过团体名作为认证,v3通过用户名和密码认证
–c:指定共同体字符串(设备间的暗号)
sysname:为 snmp 的 key,用于查看系统名称;SysDesc 用于查看系统信息
-------------------------------------------------------
4 Web 页面配置 snmp 方式监控
点击左边菜单栏【配置】中的【主机】,清除原本192.168.80.102主机,点击右上角创建主机
主机名称:zbx-agent02
可见的名称:zbx-agent02-192.168.80.102
模板:选择Generic by SNMP
群组:选择 Linux servers
接口点击添加,选择snmp
SNMP:192.168.80.102
点击上方菜单栏【宏】
选择【主机宏】
【宏】输入 {$SNMP_COMMUNITY},【值】 输入 public(要与网络设备设置的团体名一致),【描述】输入 SNMP设备标签
点击 【添加】
等待一段时间后 Zabbix server 的可用性就变成了 SNMP 监控方式


1万+

被折叠的 条评论
为什么被折叠?



