为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台。

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第1张

问题背景

手动添加Zabbix客户端非常耗时间,增加人力、时间成本。为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台。

自动发现(被动模式):由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备。实现自动将发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像等功能。

缺点:当 Agent服务器过多的时候采用自动发现,zabbix-server压力会比较大,自动添加主机进度就会非常慢。

自动注册(主动模式):Zabbix Server 等待 Zabbix Agent主动上报。由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表。对于使用SNMP的要采用自动发现。

缺点:agent有可能找不到Server。

PS:主动还是被动是基于agent而言,不管是主动还是被动模式都是在agent端进行配置。

下面介绍Zabbix 6.0 Agent自动注册的实践过程

1、Zabbix Server上Web配置自动注册

(1)配置-->动作-->Autoregistration actions。

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第2张

(2)定义自动注册主机的条件。

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第3张

(3)定义注册上来的主机所要关联模板。

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第4张

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第5张

2、CentOS7主机端一键自动化脚本安装并配置Zabbix Agent

cd /opt
rz 上传zabbix-agent-6.0.4-1.el7.x86_64.rpm
zabbix_install.sh
执行安装脚本
sh zabbix_install.sh

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第6张

脚本部分内容如下:

cat zabbix_install.sh 
#!/usr/bin/env bash
# Only RHEL7 system is supported
# Version: 2.0
#Set Monitor ADDRESS
SERVER_ADDRESS='192.168.31.47'
function GET_OS_Version() {
OS_Version=$(cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/')
}
function INIT_OS() {
# disabled SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
}
function GET_OS_STATUS() {
Processes=$(ps -ef|grep -v grep|grep zabbix_agent|wc -l)
if [[ $Processes != '0' ]];then echo $(hostname -I ) 'Agent process already exists in the system!!!';exit 1;fi
}
function Install_7() {
yum -y localinstall /opt/zabbix-agent-6.0.4-1.el7.x86_64.rpm &>/dev/null
if [[ $? != '0' ]];then echo $(hostname -I ) 'Install failed!!!';fi
systemctl start zabbix-agent
systemctl enable zabbix-agent
systemctl restart zabbix-agent
}
function Restart_AGENT7() {
systemctl restart zabbix-agent
}
function Configure() {
cat << EOF > /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=$SERVER_ADDRESS
ServerActive=$SERVER_ADDRESS
HostnameItem=system.hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
EOF
}
function AGENT_RUN() {
STATUS=$(ss -ntl|grep 10050|head -1|awk '{print $1}'|wc -l)
if [[ $STATUS -eq 1 ]];then echo $(hostname -I ) 'Install OK!!!';else echo $(hostname -I ) 'Install failed!!!';fi
}

3、确认Agent是否正常注册上线

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第7张

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第8张

可以看到已经正常上线。

Tips

如果出现如下报错时,检查firewalld防火墙是否开放10050端口。

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第9张

CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)  zabbix 监控 CentOS7 第10张

firewall-cmd --permanent --zone=public --add-port=10050/tcp
firewall-cmd --reload
转载请说明出处
知优网 » CentOS7一键安装Zabbix Agent 6.0并实现自动注册(zabbix安装agent客户端 linux)

发表评论

您需要后才能发表评论