社区编辑申请
注册/登录
CentOS7一键安装Zabbix Agent 6.0并实现自动注册
开源
为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台。

问题背景

手动添加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。

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

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

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

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

脚本部分内容如下:

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是否正常注册上线

可以看到已经正常上线。

Tips

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

firewall-cmd --permanent --zone=public --add-port=10050/tcp
firewall-cmd --reload
责任编辑:姜华 来源: 今日头条
相关推荐

2022-06-01 17:47:24

运维监控系统

2022-06-16 17:02:49

微软智能云混合云Azure

2022-06-15 08:21:49

Linux运维工程师

2022-06-28 10:03:56

CentOSLinux

2022-06-10 07:45:09

CentOS国产操作系统

2022-03-01 11:33:36

企业微信Zabbix监控软件

2022-03-02 09:53:44

开源ZabbixCentOS 7

2022-06-20 14:19:55

FedoraEPELLinux

2022-05-31 07:40:44

LsyncdCentOS7

2022-06-24 11:14:00

美团开源

2022-06-27 09:54:38

编程语言JavaC++

2022-05-06 20:18:36

2022-06-22 10:23:42

互联网用户IE浏览器退休

2022-06-20 13:34:46

漏洞网络攻击

2022-06-06 10:20:59

CPUCPU 使用率CPU 负载

2022-06-09 16:07:55

SAP双碳碳排放

2022-06-16 10:14:51

LinuxEmacs编辑器

2022-06-02 15:28:42

网络安全信息通信数据保护

2022-04-18 10:37:01

鸿蒙操作系统开发工具

2022-06-13 12:43:13

Java模块

同话题下的热门内容

用这些开源工具在 Linux 上编辑 PDF 文件开放原子开源基金会 TOC 副主席谭中意:企业开源从来不是做慈善丨T观海专为开发人员构建的个人知识管理工具 - Dendron2022 年受欢迎的五大开源自动化和编排技术Apache Kafka:为“无缝系统”提供异步消息支持将 Zeek 与 ELK 栈集成​Podman Desktop 能否取代 Docker Desktop呢?Minetest:一个开源的 Minecraft 替代品

编辑推荐

十大免费开源云文件共享平台使用Go语言开发必备的5大开源工具开源人脸识别seetaface入门教程(一)Docker不香吗,为啥还要K8s?值得考虑的九大开源ERP系统,看看都有谁
我收藏的内容
点赞
收藏

51CTO技术栈公众号