1、自动发现
实验以博客<监控平台zabbix介绍与部署>内容为基础
20.0.0.10:zabbix服务端
20.0.0.20:zabbix客户端
添加一台服务器:20.0.0.40,要求将20.0.0.20和20.0.0.40服务器使用自动发现添加到zabbix中
20.0.0.40
(1)系统初始化
[root@zx4 ~]# systemctl stop firewalld
[root@zx4 ~]# setenforce 0
setenforce: SELinux is disabled
[root@zx4 ~]# hostnamectl set-hostname zbx-agent02
[root@zx4 ~]# bash
bash
[root@zbx-agent02 ~]# vim /etc/hosts #三台服务器都需修改方便使用主机名管理
20.0.0.10 zbx-server
20.0.0.20 zbx-agent01
20.0.0.40 zbx-agent02
[root@zbx-agent02 ~]#
(2)安装启动zabbix-agent2
[root@zbx-agent02 ~]# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
[root@zbx-agent02 ~]# sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zbx-agent02 ~]# yum install -y zabbix-agent2
[root@zbx-agent02 ~]# systemctl enable --now zabbix-agent2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service to /usr/lib/systemd/system/zabbix-agent2.service.
[root@zbx-agent02 ~]#
(3)修改zabbix配置文件
[root@zbx-agent02 ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=20.0.0.10 #80行,指定server服务器
ServerActive=20.0.0.10 #133行
Hostname=zbx-agent02 #144行
HostnameItem=system.hostname #152行取消注释
[root@zbx-agent02 ~]# systemctl restart zabbix-agent2.service
(4) Web 页面配置自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成 mynetwork
【IP范围】设置成 192.168.9.1-254
【更新间隔】设置成 10s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【添加】点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【Auto discovery. Linux servers.】,点击 【启用】点击【Auto discovery. Linux servers.】进入点击上方【操作2】模板添加【Template Nginx Status】点击【update】点击【更新】
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
2、自动注册
准备工作
20.0.0.20
[root@zbx-agent01 opt]# vim /etc/zabbix/zabbix_agent2.conf
Hostname=zbx-agent01 #144行
HostnameItem=system.hostname #152行,取消注释
[root@zbx-agent01 opt]# systemctl restart zabbix-agent2.service
[root@zbx-agent01 opt]#
关闭【发现动作】;【配置】中【主机】只保留server
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】
【名称】设置成 Auto registration
点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent
点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【Add】
再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,搜索Nginx,选择Template Nginx Status点击 【Add】
点击下方的【添加】等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机
3、Zabbix proxy代理服务器
分布式监控的作用:
●分担 server 的集中式压力
●解决多机房之间的网络延时问题agent --> proxy --> server
20.0.0.50安装Zabbix proxy
(1)系统初始化
[root@zx5 ~]# systemctl stop firewalld
[root@zx5 ~]# setenforce 0
setenforce: SELinux is disabled
[root@zx5 ~]# hostnamectl set-hostname zbx-proxy
[root@zx5 ~]# bash
[root@zbx-proxy ~]# vim /etc/hosts #四台都修改
20.0.0.10 zbx-server
20.0.0.20 zbx-agent01
20.0.0.40 zbx-agent02
20.0.0.50 zbx-proxy
[root@zbx-proxy ~]#
(2)安装 zabbix-proxy
[root@zbx-proxy ~]# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
[root@zbx-proxy ~]# sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@zbx-proxy ~]# yum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy
(3)部署、初始化数据库
[root@zbx-proxy ~]# 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
[root@zbx-proxy ~]# yum install -y mariadb-server mariadb
[root@zbx-proxy ~]# systemctl enable --now mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zbx-proxy ~]# mysql_secure_installation #初始化数据库,分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
[root@zbx-proxy ~]# mysql -u root -pabc123
MariaDB [(none)]> CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.000 sec) #创建数据库并指定字符集
MariaDB [(none)]> GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix'; #创建 zabbix 数据库用户并授权
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]> quit
(4)导入数据库信息
[root@zbx-proxy ~]# cd /usr/share/zabbix-sql-scripts/mysql/
[root@zbx-proxy mysql]# mysql -u root -pabc123 zabbix_proxy < proxy.sql
[root@zbx-proxy mysql]# ls
proxy.sql
[root@zbx-proxy mysql]#
(5)修改 zabbix-proxy 配置文件
[root@zbx-proxy mysql]# vim /etc/zabbix/zabbix_proxy.conf
Server=20.0.0.10 #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix #194行,指定当前数据库 zabbix 用户的密码
[root@zbx-proxy mysql]# systemctl enable --now zabbix-proxy.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[root@zbx-proxy mysql]# netstat -lntp | grep zabbix
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 11358/zabbix_proxy
tcp6 0 0 :::10051 :::* LISTEN 11358/zabbix_proxy
[root@zbx-proxy mysql]#
(6)Web 页面配置zabbix-proxy
点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
20.0.0.40
[root@zbx-agent02 ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=20.0.0.50 #80行指向proxyip
ServerActive=20.0.0.50 #133行
[root@zbx-agent02 ~]# systemctl restart zabbix-agent2.service
[root@zbx-agent02 ~]#
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】:zbx-agent02
【可见的名称】:zbx-agent02-20.0.0.40
【模板】: Linux by Zabbix agent
【群组】:Linux servers
【接口】:点击添加【Agent】:20.0.0.40
【由agent代理程序监测】选择 zbx-proxy
点击 【添加】
分别在客户端和代理服务器上重启服务
systemctl restart zabbix-agent2systemctl restart zabbix-proxy
等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
在服务端查看日志
tail -f /var/log/zabbix/zabbix_proxy.log
4、Zabbix server高可用集群
官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。
20.0.0.10做服务端,20.0.0.20做客户端
20.0.0.10
[root@zbx-server ~]# vim /etc/zabbix/zabbix_server.conf
HANodeName=zbx-server01 #974行
NodeAddress=20.0.0.10:10051 #986行
[root@zbx-server ~]# systemctl restart zabbix-server.service
[root@zbx-server ~]#
20.0.0.20
[root@zbx-agent01 ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.9.116,20.0.0.11 #80行
ServerActive=192.168.9.116;20.0.0.11 #133行
#注意,ServerActive 的连接符是‘;’ ,而不是‘,’
[root@zbx-agent01 ~]# systemctl restart zabbix-agent2.service
[root@zbx-agent01 ~]#
5、Zabbix 监控 Windows 系统
找一台windows虚拟机(20.0.0.100)
(1)安装zabbix
将zabbix下载的(zabbix_agent2-6.0.31-windows-amd64-openssl.msi)包拖入windows;安装;三次next
(2)Web 页面添加主机,关联模板
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入zbx-win10
【模板】搜索 windows ,选择 Windows by Zabbix agent
【群组】输入 windows servers ,选择 windows servers(新)
【接口】点击添加,选择【Agent】【IP地址】输入 20.0.0.100,【端口】输入 10050
点击【添加】即可
6、Zabbix 监控 java 应用
20.0.0.20
(1)安装tomcat
[root@zbx-agent01 ~]# cd /opt
[root@zbx-agent01 opt]# ls
apache-tomcat-9.0.16.tar.gz data rh
[root@zbx-agent01 opt]# tar xf apache-tomcat-9.0.16.tar.gz
[root@zbx-agent01 opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat
[root@zbx-agent01 opt]# cd /usr/local/tomcat/
[root@zbx-agent01 tomcat]# ./bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@zbx-agent01 tomcat]#
[root@zbx-agent01 tomcat]# netstat -lntp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 6232/java
[root@zbx-agent01 tomcat]# cd bin
[root@zbx-agent01 bin]#
[root@zbx-agent01 bin]# ./shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@zbx-agent01 bin]# vim /usr/local/tomcat/bin/catalina.sh
[root@zbx-agent01 bin]#
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=20.0.0.20" #服务所在机器的ip地址
[root@zbx-agent01 bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@zbx-agent01 bin]# netstat -lntp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 8668/java
[root@zbx-agent01 bin]# netstat -lntp | grep 12345
tcp6 0 0 :::12345 :::* LISTEN 8668/java
[root@zbx-agent01 bin]# netstat -lntp | grep java
tcp6 0 0 :::12345 :::* LISTEN 8668/java
tcp6 0 0 :::46851 :::* LISTEN 8668/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 8668/java
tcp6 0 0 :::8009 :::* LISTEN 8668/java
tcp6 0 0 :::8080 :::* LISTEN 8668/java
[root@zbx-agent01 bin]# systemctl restart zabbix-agent2.service
(2)服务端安装 zabbix-java-gateway
20.0.0.10(服务端)
[root@zbx-server ~]# yum install -y zabbix-java-gateway
[root@zbx-server ~]# systemctl enable --now zabbix-java-gateway.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.
[root@zbx-server ~]# cd /etc/zabbix/
[root@zbx-server zabbix]# vim zabbix_server.conf
JavaGateway=127.0.0.1 # 317行,指定 zabbix-java-gateway 的 IP 地址
StartJavaPollers=5 # 333行,开启用来收集java数据的poller进程的数量
[root@zbx-server zabbix]# systemctl restart zabbix-server.service
[root@zbx-server zabbix]# ps -ef | grep zabbix_server | grep java
zabbix 14422 14396 0 12:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #1 [got 0 values in 0.000010 sec, idle 5 sec]
zabbix 14423 14396 0 12:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #2 [got 0 values in 0.000009 sec, idle 5 sec]
zabbix 14424 14396 0 12:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #3 [got 0 values in 0.000004 sec, idle 5 sec]
zabbix 14425 14396 0 12:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #4 [got 0 values in 0.000005 sec, idle 5 sec]
zabbix 14426 14396 0 12:42 ? 00:00:00 /usr/local/sbin/zabbix_server: java poller #5 [got 0 values in 0.000005 sec, idle 5 sec]
[root@zbx-server zabbix]#
(3)Web 页面添加主机,关联模板
在服务端 Web 页面添加主机,关联模板
点击左边菜单栏【配置】中的【主机】,点击 zbx-agent01
【模板】搜索 JMX ,选择 Generic Java JMX
点击添加,点击添加 JMX,【IP地址】输入 192.168.9.115,【端口】输入 12345模板处选择Generic java JMX
点击 【更新】
等待一段时间后 Zabbix server 的可用性增加了 JXM 监控方式
7、Zabbix 监控 SNMP
SNMP,简单网络管理协议,常用于监控网络设备,也能监控支持开启SNMP功能的设备(windows、linux、打印机等)。
需求:监控20.0.0.40服务器
(1)被监控端安装 snmp 监控程序
20.0.0.40
[root@zbx-agent02 ~]# yum install -y net-snmp net-snmp-utils
(2)修改 snmp 的配置文件并启动
20.0.0.40
[root@zbx-agent02 ~]# vim /etc/snmp/snmpd.conf
view systemview included .1 #57行,添加此配置
[root@zbx-agent02 ~]# systemctl --now enable snmpd
Created symlink from /etc/systemd/system/multi-user.target.wants/snmpd.service to /usr/lib/systemd/system/snmpd.service.
[root@zbx-agent02 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zbx-agent02
(3)使用 snmpwalk 命令测试
[root@zbx-agent02 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: zbx-server
[root@zbx-agent02 ~]##
-------------------------------------------------------------------------------------------
–v 1|2c|3:指定SNMP协议版本,v2c通过团体名作为认证,v3通过用户名和密码认证
–c:指定共同体字符串(设备间的暗号)
sysname:为 snmp 的 key,用于查看系统名称;SysDesc 用于查看系统信息
(4)Web 页面配置 snmp 方式监控
点击左边菜单栏【配置】中的【主机】,清除原本20.0.0.40主机,点击右上角创建主机
主机名称:zbx-agent02
可见的名称:zbx-agent02-20.0.0.40
模板:选择Generic by SNMP
群组:选择 Linux servers
接口点击添加,选择snmp
SNMP:20.0.0.40
点击上方菜单栏【宏】
选择【主机宏】
【宏】输入 {$SNMP_COMMUNITY},【值】 输入 public(要与网络设备设置的团体名一致),【描述】输入 SNMP设备标签
点击 【添加】
等待一段时间后 Zabbix server 的可用性就变成了 SNMP 监控方式