Zabbix的多场景应用

1 zabbix更多用法

1.1 自动注册方式

zabbix自动发现 zabbix server服务端主动发现zappix agent客户端

1)在【配置】-【自动发现】创建 发现规则,设置 IP范围 检查的键值system.uname

2)在【配置】-【动作】-【发现动作】创建 动作,设置 动作条件 操作细节

zabbix自动注册 zabbix agent客户端主动找zabbix server服务端注册

1)修改zabbix agent配置文件,取消HostnameItem的注释

2)在【配置】-【动作】-【自动注册动作】创建 动作,设置 动作条件 操作细节

1.2 zabbix高可用集群和代理服务器

代理服务器

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

高可用集群

官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。

1.3 zabbix

zabbix 监控 Windows主机

在Windos主机上安装windos版本的zabbix agent客户端应用并进行相关配置,指向zabbix server/proxy服务端地址

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.111.22 &

2)在zabbix server/proxy 安装 zabbix java gateway,并修改 zabbix server/proxy 的配置文件设置 JavaGateway 的地址、StartJavaPollers 收集进程数

3)在 zabbix 服务端 Web 管理页面【配置】-【主机】添加 JMX 接口监控主机,默认端口为 12345

zabbix 监控 支持 SNMP 协议的网络设备

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

在 zabbix 服务端的 Web 管理页面【配置】-【主机】添加 SNMP 接口监控主机,默认端口为161,并指定 SNMP 协议版本(通常是V2),和网络设备团体名名(网络设备的唯一标识,可在网络设备的系统界面中查到)

1.4 zabbix知识点总结

组件

工作原理

与prometheus的区别

自定义监控模版

配置邮件告警

自动发现、自动注册

监控指标(包含系统方面的、网络方面的、数据库方面的、消息队列方面的)

SNMP协议是什么?zabbix什么时候会用到SNMP协议来监控

2 zabbix监控分类部署

2.1 zabbix自动发现

zabbix 自动发现(对于 agent2 是被动模式) zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。

确保客户端上的 zabbix-agent2 服务状态正常
systemctl is-active zabbix-agent2.service 

在 Web 页面删除原有的客户端主机
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

Zabbix的多场景应用_第1张图片

在服务端和客户端上配置 hosts 解析
vim /etc/hosts
192.168.111.11 zbx-server
192.168.111.22 zbx-agent01

Zabbix的多场景应用_第2张图片

在 Web 页面配置自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成 mynetwork
【IP范围】设置成 192.168.111.1-254
【更新间隔】设置成 30s
【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10050,【键值】设置成 system.uname
【设备唯一性准则】选择 IP地址
【主机名称】选择 DNS名称
【可见的名称】选择 主机名称
勾选 【已启用】,点击 【添加】

Zabbix的多场景应用_第3张图片

点击左边菜单栏【配置】中的【动作】,上方菜单选择 【发现动作】
勾选 【Auto discovery. Linux servers.】,点击 【启用】
​
点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机

Zabbix的多场景应用_第4张图片

可在服务端查看 zabbix 日志
tail -f /var/log/zabbix_server.log
......
  6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent02": interface became available

Zabbix的多场景应用_第5张图片

web管理页面查看

Zabbix的多场景应用_第6张图片

2.2 zabbix 自动注册(对于 agent2 是主动模式)

zabbix agent2 会主动上报自己的信息,发给 zabbix server。 缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。

环境准备
点击左边菜单栏【配置】中的【发现动作】,勾选发现规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除

Zabbix的多场景应用_第7张图片

修改 zabbix-agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
......
HostnameItem=system.hostname        #152行,取消注释
​
egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf 
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.80.20
ServerActive=192.168.80.20
Hostname=zbx-agent01
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
​
systemctl restart zabbix-agent2

Zabbix的多场景应用_第8张图片

Zabbix的多场景应用_第9张图片

在 Web 页面配置自动注册
点击左边菜单栏【配置】中的【动作】,上方菜单选择 【自动注册动作】,点击【创建动作】
【名称】设置成 Auto registration
点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent
点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【Add】
再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【Add】
再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Linux by Zabbix agent,点击 【Add】
点击下方的【添加】
​
等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,即可刷新出自动发现的客户端主机

Zabbix的多场景应用_第10张图片

Zabbix的多场景应用_第11张图片

Zabbix的多场景应用_第12张图片

在服务端查看 zabbix 日志
tail -f /var/log/zabbix_server.log

Zabbix的多场景应用_第13张图片

2.3 zabbix 代理服务器

分布式监控的作用: ●分担 server 的集中式压力 ●解决多机房之间的网络延时问题

agent --> proxy --> server

设置 zabbix 的下载源,安装 zabbix-proxy
hostnamectl set-hostname zbx-proxy
​
//设置 zabbix 的下载源,安装 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

部署数据库,要求 MySQL 5.7 或 Mariadb 10.5 及以上版本
配置 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

Zabbix的多场景应用_第14张图片

初始化数据库
mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Y
​
mysql -u root -pabc123

Zabbix的多场景应用_第15张图片

创建数据库并指定字符集,创建 zabbix 数据库用户并授权
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

Zabbix的多场景应用_第16张图片

导入数据库信息
rpm -ql zabbix-sql-scripts      #查询 sql 文件的位置
​
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy

Zabbix的多场景应用_第17张图片

修改 zabbix-proxy 配置文件,并启动zabbix-proxy
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.80.20                #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy                  #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix                   #194行,指定当前数据库 zabbix 用户的密码
systemctl start zabbix-proxy
systemctl enable zabbix-proxy

Zabbix的多场景应用_第18张图片

Zabbix的多场景应用_第19张图片

在所有主机上配置 hosts 解析
vim /etc/hosts
192.168.111.11 localhost
192.168.111.22 zbx-agent01
192.168.111.33 zbx-proxy

Zabbix的多场景应用_第20张图片

在 Web 页面配置 agent 代理
点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
​
点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
【agent代理程序名称】输入 zbx-proxy
【系统代理程序模式】选择 主动式
【代理地址】输入 192.168.80.13
点击 【添加】

Zabbix的多场景应用_第21张图片

Zabbix的多场景应用_第22张图片

配置 agent 使用 proxy
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.111.33           #80行,指定 zabbix 代理服务器的 IP 地址
ServerActive=192.168.111.33     #131行,指定 zabbix 代理服务器的 IP 地址

Zabbix的多场景应用_第23张图片

Zabbix的多场景应用_第24张图片

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

Zabbix的多场景应用_第25张图片

分别在客户端和代理服务器上重启服务,查看客户端主机监控状态正常
systemctl restart zabbix-agent2
​
systemctl restart zabbix-proxy

Zabbix的多场景应用_第26张图片

Zabbix的多场景应用_第27张图片

在代理服务端查看日志
tail -f /var/log/zabbix/zabbix_proxy.log

Zabbix的多场景应用_第28张图片

2.4 zabbix 高可用集群

官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案。

主节点 Zabbix Server 配置
默认情况下,HA 是关闭的。HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分。
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.80.20
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
......
HANodeName=zbx-server01                 #设置为当前节点主机名  974
NodeAddress=192.168.80.20:10051         #设置为节点IP   984
​
​
systemctl restart zabbix-server

Zabbix的多场景应用_第29张图片

主节点给数据库授权远程登录权限
mysql -uroot -pabc123
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

Zabbix的多场景应用_第30张图片

备节点安装 Zabbix Server
编译安装 zabbix Server 服务端
#安装依赖包,创建 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++ make
​
useradd -s /sbin/nologin -M zabbix
​
#编译安装
cd /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-libpcre
​
make install
​
#检查版本
zabbix_server --version
zabbix_server (Zabbix) 6.0.13
​
#修改 zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix_server.conf 
......
LogFile=/var/log/zabbix_server.log      # 38行,指定 zabbix 日志路径
DBPassword=zabbix                   # 123行,指定 zabbix 数据库的密码
​
#准备 systemctl 服务管理文件
cat > /usr/lib/systemd/system/zabbix-server.service << EOF
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
​
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
​
[Install]
WantedBy=multi-user.target
EOF
​
touch /var/log/zabbix_server.log
​
chown zabbix.zabbix  /var/log/zabbix_server.log
​
systemctl daemon-relaod
systemctl enable --now zabbix-server
​
netstat -lntp | grep 10051          #zabbix_server 默认监听 10051 端口

Zabbix的多场景应用_第31张图片

Zabbix的多场景应用_第32张图片

Zabbix的多场景应用_第33张图片

Zabbix的多场景应用_第34张图片

备节点 Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.111.20
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
......
HANodeName=zbx-server1         974 
NodeAddress=192.168.111.11:10051
​
​
systemctl restart zabbix-server

Zabbix的多场景应用_第35张图片

客户端配置
vim /etc/zabbix/zabbix_agentd.conf 
......
Server=192.168.80.20,192.168.80.30
ServerActive=192.168.80.20;192.168.80.30            #注意,ServerActive 的连接符是‘;’ ,而不是‘,’

Zabbix的多场景应用_第36张图片

Zabbix的多场景应用_第37张图片

查看结果

Zabbix的多场景应用_第38张图片

2.5 zabbix监控Window系统

下载 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

Zabbix的多场景应用_第39张图片

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

Zabbix的多场景应用_第40张图片

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

Zabbix的多场景应用_第41张图片

查看结果

Zabbix的多场景应用_第42张图片

2.6 zabbix 监控 java 应用

客户端开启 java jmxremote 远程监控功能
上传 tomcat 软件包到 /opt 目录中
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat

Zabbix的多场景应用_第43张图片

配置 java jmxremote 远程监控功能
vim /usr/local/tomcat/bin/catalina.sh
......  #位置在 cygwin=false 前  125行
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.111.44"           #tomcat服务器地址

Zabbix的多场景应用_第44张图片

启动服务,查看端口
/usr/local/tomcat/bin/startup.sh 
netstat -lntp | grep 12345

Zabbix的多场景应用_第45张图片

服务端安装 zabbix-java-gateway
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
yum clean all
yum install -y zabbix-java-gateway
systemctl enable --now zabbix-java-gateway.service
​
netstat -lntp | grep 10052          #zabbix-java-gateway 默认监听 10052 端口

Zabbix的多场景应用_第46张图片

Zabbix的多场景应用_第47张图片

修改服务端 zabbix-server 配置
vim /etc/zabbix/zabbix_server.conf
......
JavaGateway=192.168.111.11          # 317行,指定 zabbix-java-gateway 的 IP 地址
StartJavaPollers=5              # 333行,开启用来收集java数据的poller进程的数量
​
systemctl restart zabbix-server
​
ps -ef | grep zabbix_server | grep java

Zabbix的多场景应用_第48张图片

Zabbix的多场景应用_第49张图片

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

Zabbix的多场景应用_第50张图片

查看结果

Zabbix的多场景应用_第51张图片

监控其它 java 应用

Zabbix的多场景应用_第52张图片

2.7 zabbix 监控 SNMP

服务端客户端都安装 snmp 监控程序
yum install -y net-snmp net-snmp-utils

Zabbix的多场景应用_第53张图片

修改 snmp 的配置文件,并启动服务
vim /etc/snmp/snmpd.conf
......
view    systemview    included   .1             #57行,添加此配置
​
systemctl start snmpd

Zabbix的多场景应用_第54张图片

使用 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 用于查看系统信息
-------------------------------------------------------

在 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 监控方式

Zabbix的多场景应用_第55张图片

Zabbix的多场景应用_第56张图片

查看结果

Zabbix的多场景应用_第57张图片

3 监控nginx服务机状态(补充)

修改nginx配置文件
vim /etc/nginx/conf.d/default.conf
第十行后面添加
     location /nginx_status {
 12     stub_status on;
 13     access_log off;
 14     allow 127.0.0.1;
 15     deny all;
 16 }
systemctl restart nginx

Zabbix的多场景应用_第58张图片

编写脚本,并赋权,修改执行用户

Zabbix的多场景应用_第59张图片

Zabbix的多场景应用_第60张图片

运行查看结果

Zabbix的多场景应用_第61张图片

修改自定义监控项

Web管理界面配置

Zabbix的多场景应用_第62张图片

Zabbix的多场景应用_第63张图片

Zabbix的多场景应用_第64张图片

Zabbix的多场景应用_第65张图片

Zabbix的多场景应用_第66张图片

Zabbix的多场景应用_第67张图片

模版添加至主机

Zabbix的多场景应用_第68张图片

多开nginx页面进行测试

Zabbix的多场景应用_第69张图片

Zabbix的多场景应用_第70张图片

你可能感兴趣的:(zabbix)