上文中,讲述了如何使用docker快速部署一个zabbix监控系统,但是缺少如何进行Agent客户端的快速部署。这篇文章就是来补充这个问题。
下载地址:
https://www.zabbix.com/download_agents?version=6.2&release=6.2.3&os=Linux&os_version=3.0&hardware=amd64&encryption=No+encryption&packaging=Archive&show_legacy=0
选择好跟server对应的大版本,参考之前的zabbix监控系统部署使用的6.2版本(链接),这里的agent也使用6.2版本的agent进行部署。
这是一个二进制的agent安装包,可以直接解压后启动。但是为了快速进行部署,可以编写一个脚本进行快速部署。
下载6.2.2二进制agent部署包
curl -O https://cdn.zabbix.com/zabbix/binaries/stable/6.2/6.2.2/zabbix_agent-6.2.2-linux-3.0-amd64-static.tar.gz
然后修改安装包命名,格式为:zabbix_agent-[version].tar.gz ,这里agent版本为6.2.2,因此我命名为:zabbix_agent-6.2.2.tar.gz
vim install_zabbix_agent.sh
#!/bin/bash ## 变量定义 # 脚本所在路径 BASE_DIR=$(cd $(dirname $0);pwd) # Zabbix_server连接IP SERVER_IP=$1 # agent部署路径,默认/usr/local/zabbix_agent INSTALL_DIR=$2 if [[ ! ${INSTALL_DIR} ]];then INSTALL_DIR=/usr/local/zabbix_agent fi if [[ ! -d ${INSTALL_DIR} ]];then mkdir -p ${INSTALL_DIR}/logs fi # agent部署包 INSTALL_PACK=$3 if [[ ! ${INSTALL_PACK} ]];then INSTALL_PACK=$(find ${BASE_DIR} -name "zabbix*.tar.gz") fi # agent监听端口,默认10050 AGENT_PORT=$4 if [[ ! ${AGENT_PORT} ]];then AGENT_PORT=10050 fi ## 环境监测 # 判断zabbix用户是否存在,不存在则创建 id zabbix &> /dev/null if [[ $? != 0 ]];then useradd zabbix fi # 判断端口是否被占用 PORT_IF=$(ss -tanlu|grep -v 'Port'|grep "${AGENT_PORT}" | awk '{printf $5 "\n"}' | awk -F ':' '{printf $NF "\n"}' | sort | uniq) if [[ ${PORT_IF} ]];then echo "端口 ${AGENT_PORT} 已被占用,退出安装" exit 1 fi ## 开始安装agent # 解压安装包 tar -zxf ${INSTALL_PACK} -C ${INSTALL_DIR} # 授权部署路径 chown -R zabbix:zabbix ${INSTALL_DIR} # 修改配置文件 sed -i "s@Server=127.0.0.1@Server=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf sed -i "s@ServerActive=127.0.0.1@ServerActive=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf sed -i "s@Hostname=Zabbix server@Hostname=${SERVER_IP}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf sed -i "s@# ListenPort=10050@ListenPort=${AGENT_PORT}@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf sed -i "s@# PidFile=/tmp/zabbix_agentd.pid@PidFile=${INSTALL_DIR}/logs/zabbix_agent.pid@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf sed -i "s@LogFile=/tmp/zabbix_agentd.log@LogFile=${INSTALL_DIR}/logs/zabbix_agentd.log@g" ${INSTALL_DIR}/conf/zabbix_agentd.conf # 创建agent启动文件 cat > /usr/lib/systemd/system/zabbix_agentd.service << EOF [Unit] Description=Zabbix_agent service After=syslog.target After=network.target [Service] Type=simple User=zabbix Restart=always KillMode=mixed PIDFile=${INSTALL_DIR}/logs/zabbix_agent.pid ExecStart=${INSTALL_DIR}/sbin/zabbix_agentd -c ${INSTALL_DIR}/conf/zabbix_agentd.conf ExecStop=/bin/kill -SIGTERM $MAINPID LimitNOFILE=infinity LimitNPROC=infinity TimeoutStartSec=0 Delegate=yes Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=default.target EOF # 启动Zabbix_agent服务 systemctl daemon-reload systemctl start zabbix_agentd.service systemctl status zabbix_agentd.service &> /dev/null if [[ $? = 0 ]];then echo "zabbix_agentd服务启动完成" else echo "zabbix_agentd服务启动失败,请使用命令:systemctl status zabbix_agentd.service 查看失败原因" fi
给予脚本执行权限
chmod +x install_zabbix_agent.sh
然后将脚本与agent部署包打包成一个新的压缩包
tar -zcf install_agent.tar.gz *
上传安装包install_agent.tar.gz到服务器
解压安装包
tar -zxf install_agent.tar.gz
执行脚本进行安装
./install_zabbix_agent.sh 192.168.75.31
注意:
执行该脚本进行部署需要最少需要输入1个参数
查看agent运行状态
systemctl status zabbix_agentd.service
可以看到agent正常运行
配置>主机>创建主机(右上角)>补充信息(主机名称,链接模板,主机群组,接口类型为agent)>添加
添加完agent后,到最新数据查看最新添加的主机监控,可见主机监控数据正常获取。
至此,本文章到此结束,谢谢捧场!
错误信息