Zabbix 6.0 实现自动化运维 自动注册
Zabbix 自动注册
Zabbix 自动注册介绍
当Agent众多时,将每台主机手动添加到Zabbix,还手动添加关联模板,无疑是低效的.
但是利用网络发现实现,Zabbix Server 资源消耗又比较严重
利用Zabbix的自动注册功能,实现添加主机的自动化,可以大幅减少运维的工作量,减少Zabbix Server 的资源消耗
此方式和自动发现不同,是由Active agent主动发起请求zabbix server将这些agent加到主机里。
注意: Agent 必须使用主动模式才支持自动注册
自动注册由于比自动发现效率更好,Zabbix Server资源消耗更少,更适合大规模及云环境IP地址不固定的
场景使用
在Zabbix agent 端的配置文件修改以下项目
Server=<Zabbix Server IP>
ServerActive=<Zabbix Server IP> #客户端主动模式是实现自动注册的前提条件
Hostname=<agent IP>
#HostnameItem=system.hostname
HostMetadata==<key> #非必须项,可以做为添加主机的验证标识和分类,或者实现加入主机的验证功能
案例: 实现 Linux 主机自动注册
修改 Zabbix Agent 的配置
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-latest-6.0.el9.noarch.rpm
dnf clean all
dnf install zabbix-agent2 -y
dnf install zabbix-agent2-plugin-mongodb zabbix-agent2-plugin-mssql zabbix-agent2-plugin-postgresql -y
修改Zabbix Agent 配置文件为主动模式的 Zabbix Proxy
vim /etc/zabbix/zabbix_agent2.conf
grep '^[^#]' /etc/zabbix/zabbix_agent2.conf
Server=192.168.3.60
ServerActive=192.168.3.60
Hostname=192.168.3.61 #指定主机名,要确保唯一,如果不指定,则Zabbix使用agent的系统主机名,Agent2不支持IP格式(否则服务无法启动),只能写主机名格式
HostMetadata=test
AllowKey=system.run[*]
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf
UnsafeUserParameters=1
cat /etc/zabbix/zabbix_agent2.d/plugins.d/tcp.conf
UserParameter=tcp[*],/etc/zabbix/bin/tcp.sh $1
mkdir -p /etc/zabbix/bin
cat /etc/zabbix/bin/tcp.sh #!/bin/bash #scripts for tcp status function CLOSEWAIT { CLOSEWAIT=`netstat -natl| awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'CLOSE-WAIT' | awk '{print $2}'` if [ "$CLOSEWAIT" = "" ];then echo "0" else echo "$CLOSEWAIT" fi } function SYNRECV { SYNRECV=`netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'` if [ "$SYNRECV" = "" ];then echo "0" else echo "$SYNRECV" fi } function ESTABLISHED { ESTAB=`netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'ESTABLISHED' | awk '{print $2}'` if [ "$ESTAB" = "" ];then echo "0" else echo "$ESTAB" fi } function FINWAIT1 { FINWAIT1=`netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}'` if [ "$FINWAIT1" = "" ];then echo "0" else echo "$FINWAIT1" fi } function FINWAIT2 { FINWAIT2=`netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}'` if [ "$FINWAIT2" = "" ];then echo "0" else echo "$FINWAIT2" fi } function TIMEWAIT { netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'TIME_WAIT' | awk '{print $2}' } function LASTACK { LASTACK=`netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print s[k],k}' | grep 'LAST-ACK' | awk '{print $2}'` if [ "$LASTACK" = "" ];then echo "0" else echo "$LASTACK" fi } function LISTEN { netstat -natl | awk 'NR>2{s[$NF]++} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}' } $1
chmod +x tcp.sh
systemctl restart zabbix-agent2
systemctl enable zabbix-agent2
在 Zabbix Server 配置动作
在配置---动作---选择自动注册动作
6.X 版本

创建新动作
使用元数据添加

指定操作
指定操作,添加主机,添加主机到主机群组,关系相关模板 自定义模板



验证结果
稍过一会儿,再观察可以看到下面显示添加主机成功


浙公网安备 33010602011771号