ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

zabbix-agent安装,配置RemoteCommand

zabbix-agent安装,配置RemoteCommand zabbix-agent安装yum安装调整Linux Zabbix Agent 配置文件源码包安装7.0下载解压直接使用解决缺少依赖导致无法yum安装zabbix agent 新增server或者proxy地址放通端口编译安装zabbix-agent5.0配置Windows agent:开启主动模式执行远程命令RemoteCommand -zabbix5.0执行远程命令RemoteCommand -zabbix7.0配置脚本使用绝对路径配置触发器动作zabbix agent 配置文件agent 启动报错官方文档https://www.zabbix.com/cn/download?zabbix7.0os_distributioncentosos_version7componentsagent_2dbwsyum安装被监控端主机client 要开启入站规则zabbix server 10050 端口达到默认监控开启客户端访问zabbix server 10051端口目的是为了完成active主动模式监控源地址目标地址端口zabbix server IPclient IP10050clietn IPzabbix server IP10051在官方文档点击获取zabbix点第一个 下载安装zabbix这里根据对应系统又对应的安装包下载安装repo仓库rpm-Uvh https://repo.zabbix.com/zabbix/7.0/rhel/7/x86_64/zabbix-release-latest-7.0.el7.noarch.rpm yum cleanall列出需要安装的zabbix-agent版本信息yumlistall|grep zabbix安装agent#安装包名称第一列-第二列zabbix-agent-7.2.0-release1.el7yum install zabbix-agent2-7.0.9-release1.el7调整Linux Zabbix Agent 配置文件修改配置文件sed-is\Server127.0.0.1\ServerZabbix service IP\g/etc/zabbix/zabbix_agentd.conf#Zabbix service IP 更改为你自己的serversed-is\ServerActive127.0.0.1\ServerActiveZabbix service IP\g/etc/zabbix/zabbix_agentd.conf#Zabbix service IP 更改为你自己的serversed-is\HostnameZabbix server\Hostnameclienthost\g/etc/zabbix/zabbix_agentd.conf#主机名改为你自己客户端的主机名这里的名字要和web页面配置的主机名一致查看配置文件grep-v#/etc/zabbix/zabbix_agentd.conf|awk NF调整完配置文件重启服务systemctl start zabbix-agent.service service zabbix-agent restart启动zabbix,以及开机自启动systemctl restart zabbix-agent2 systemctl enable zabbix-agent2源码包安装7.0下载解压直接使用解决缺少依赖导致无法yum安装https://www.zabbix.com/cn/download_agents?version7.0LTSrelease7.0.10osLinuxos_version3.0hardwareamd64encryptionNoencryptionpackagingArchiveshow_legacy0wget https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.10/zabbix_agent-7.0.10-linux-3.0-vim install_zabbix_agent.sh根据自身情况修改安装包名称以及服务器IP安装包与脚本在同一目录#!/bin/bash##安装包与脚本在同一目录# 配置变量 (按需修改)ZABBIX_PACKAGEzabbix_agent-7.0.10-linux-3.0-amd64-static.tar.gz#安装包名称HOST_IP$(ip-4addr show eth0|grep inet|awk{print $2}|cut-d/-f1)# 本机标识IP用于Hostname配置,Hostname要与web端的Host name一致ZABBIX_SERVER_IP110.105.20.44# Zabbix服务器/proxy 的IP# 检查是否为root用户if[$(id -u)!0];then echo错误此脚本必须以root权限运行12exit1fi# 检查安装包是否存在if[!-f$ZABBIX_PACKAGE];then echo错误安装包 $ZABBIX_PACKAGE 不存在12exit1fi echo正在安装 Zabbix Agent...echo使用配置:echo - 安装包: $ZABBIX_PACKAGEecho - 本机标识IP: $HOST_IPecho - Zabbix服务器: $ZABBIX_SERVER_IPecho----------------------------------------# 创建目录mkdir-p/usr/local/zabbix/||exit1mkdir-p/etc/zabbix||exit1# 移动并解压安装包echo移动安装包到 /usr/local/zabbix...mv-v$ZABBIX_PACKAGE/usr/local/zabbix/||exit1cd/usr/local/zabbix/||exit echo解压安装包...tar-zxvf$ZABBIX_PACKAGE||exit1rm-f$ZABBIX_PACKAGE# 复制配置文件echo复制配置文件至/etc/zabbix/cp-v conf/zabbix_agentd.conf/etc/zabbix/zabbix_agentd.conf||exit1# 创建systemd服务文件echo创建systemd服务...cat/lib/systemd/system/zabbix-agent.serviceEOF[Unit]DescriptionZabbix Agent Aftersyslog.target Afternetwork.target[Service]EnvironmentCONFFILE/etc/zabbix/zabbix_agentd.confEnvironmentFile-/etc/sysconfig/zabbix-agent Typeforking KillModecontrol-group ExecStart/usr/local/zabbix/sbin/zabbix_agentd-c \$CONFFILE ExecStop/bin/kill-SIGTERM \$MAINPID Userzabbix Groupzabbix[Install]WantedBymulti-user.target EOF# 创建zabbix用户if!idzabbix/dev/null;then echo创建zabbix用户...useradd-r-M-s/sbin/nologin zabbix fi# 修改配置文件echo更新配置文件...sed-is|Server127.0.0.1|Server$ZABBIX_SERVER_IP|g/etc/zabbix/zabbix_agentd.conf sed-is|ServerActive127.0.0.1|ServerActive$ZABBIX_SERVER_IP|g/etc/zabbix/zabbix_agentd.conf sed-is|HostnameZabbix server|Hostname$HOST_IP|g/etc/zabbix/zabbix_agentd.conf# 设置日志路径echo配置日志路径...mkdir-p/var/log/zabbix chown zabbix:zabbix/var/log/zabbix sed-is|^#*\s*LogFile.*/tmp/zabbix_agentd\.log|LogFile/var/log/zabbix/zabbix_agentd.log|/etc/zabbix/zabbix_agentd.confif! grep-q^LogFile/etc/zabbix/zabbix_agentd.conf;then echoLogFile/var/log/zabbix/zabbix_agentd.log/etc/zabbix/zabbix_agentd.conf fi# 设置权限echo设置文件权限...chown-R zabbix:zabbix/usr/local/zabbix chown zabbix:zabbix/etc/zabbix/zabbix_agentd.conf# 启动服务echo启动Zabbix Agent服务...systemctl daemon-reloadsystemctl restart zabbix-agent systemctl enable zabbix-agent# 验证安装ifsystemctlis-active--quiet zabbix-agent;then echo-e\n\033[32mZabbix Agent 安装成功\033[0mecho服务状态: $(systemctl is-active zabbix-agent)echo开机自启: $(systemctl is-enabled zabbix-agent)elseecho-e\n\033[31m错误Zabbix Agent 启动失败\033[0mjournalctl-u zabbix-agent--since5 minutes ago--no-pager exit1fichmodx install_zabbix_agent.sh sudo./install_zabbix_agent.shzabbix agent 新增server或者proxy地址使用以下脚本在proxy处调整为你的server或者proxyIPcatagent.shEOF#!/bin/bashproxy*.*.*.*# 获取 Server 的配置行IP\$(grep-v#/etc/zabbix/zabbix_agentd.conf|awk/Server/ {print \$0})# 确保 \$IP 有值if[[-n\$IP]];then# 替换行内容sed-is/\$IP/\$IP,\$proxy//etc/zabbix/zabbix_agentd.conf echoUpdated \$IP to \$IP,\$proxy in zabbix_agentd.confelseechoNo Server line found in zabbix_agentd.conffi# 重启 Zabbix Agent 服务systemctl restart zabbix-agent EOF chmodx agent.sh bashx agent.sh放通端口通常云服务器放通安全组端口就好服务器内防火墙未开可忽略zabbix-agent默认是被动监控要开启主动监控active需要10050/10051端口服务端、客户端开启都要开启10050/10051端口 进出都开免得之后麻烦10051涉及到active 以及RemoteCommands使用zabbix agent与zabbix server通过10050端口通信。server端侦听在10051端口客户端侦听在10050端口所以我们要将端口暴露出来。firewalld防火墙yum install firewalld systemctl start firewalld firewall-cmd--zonepublic--add-port10050/tcp--permanent firewall-cmd--reload或者iptablesiptables-tfilter-I INPUT-p tcp--dport10050-j ACCEPT编译安装zabbix-agent5.0下载对应 源码包wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.37.tar.gz tar-zxvf zabbix-5.0.37.tar.gz cd zabbix-5.0.37yum install gcc pcre-devel make-y./configure--enable-agent--disable-dependency-tracking make install mkdir/etc/zabbix cp/usr/local/etc/zabbix_agentd.conf/etc/zabbix/zabbix_agentd.conf编辑zabbix-agent 服务vim/lib/systemd/system/zabbix-agent.service[Unit]DescriptionZabbix Agent Aftersyslog.target Afternetwork.target[Service]EnvironmentCONFFILE/etc/zabbix/zabbix_agentd.confEnvironmentFile-/etc/sysconfig/zabbix-agent Typeforking KillModecontrol-group ExecStart/usr/local/sbin/zabbix_agentd-c $CONFFILE ExecStop/bin/kill-SIGTERM $MAINPID Userdaemon Groupdaemon[Install]WantedBymulti-user.target调整对应配置文件后 对systemd 重新加载下systemctl daemon-reloadsystemctl restart zabbix-agent配置Windows agent:下载对应安装包上传至服务器后点击安装包直接安装在zabbix_agent.win.conf中按照以下配置LogFileC:\zabbix_agent.log Server172.18.88.170ServerActive172.18.88.170Hostname此设备主机名 EnableRemoteCommands1LogRemoteCommands1查看10050端口netstat-an|findstr10050打开任务管理器找到services,找到zabbix_agent然后在服务中将zabbix_agent设置为开机启动自动启动最后如果有问题可能还需要设置本地防火墙策略添加10050端口开启主动模式一定要更改配置文件ServerActive IPzabbix server IPsed-i s/Server127.0.0.1/Server127.0.0.1,10.10.0.1//etc/zabbix/zabbix_agentd.conf sed-i s/ServerActive127.0.0.1/ServerActive10.10.0.1//etc/zabbix/zabbix_agentd.conf追加以下参数StartAgent20为0则关闭被动模式 RefreshActiveChecks60主动发送信息间隔systemctl restart zabbix-agent systemctl status zabbix-agentWeb 控制台上 proxy一定要改为no proxyZABBIX Web console一定要配置 Zabbix agent (active)执行远程命令RemoteCommand -zabbix5.01zabbix-agentd进程是root启动的vi/usr/lib/systemd/system/zabbix-agent.service修改 group 和 user 为 rootsystemctl daemon-reload#重启加载所有unit单元systemctl restart zabbix-agent#重启zabbix服务ps-ef|grep zabbix_agentd#查看进程是否是root启动的2配置action测试多条命令执行远程命令RemoteCommand -zabbix7.0配置脚本使用绝对路径sudo/usr/bin/systemctl restart mdatp.service sudo/usr/bin/pkill-9-f/var/lib/waagent/.*agent\.pysudo/usr/bin/systemctl restart azuremonitoragent sudo/usr/bin/systemctl restart waagent配置触发器动作zabbix agent 配置文件cat/etc/zabbix/zabbix_agentd.conf|awk NF|grep-v#PidFile/run/zabbix/zabbix_agentd.pid LogFile/var/log/zabbix/zabbix_agentd.log LogFileSize0AllowKeysystem.run[*]Server172.16.1.2ServerActive172.16.1.2Hostnamemiumiu-miniapp-staging-master AllowRoot1Include/etc/zabbix/zabbix_agentd.d/*.confagent 启动报错报错排查https://cloud.tencent.com/developer/article/1489205zabbix_agentd[8097]:cannot create PIDfile[/var/run/zabbix/zabbix_agentd.pid]:[13]Permission denied zabbix_agentd[8109]:cannot create PIDfile[/var/run/zabbix/zabbix_agentd.pid]:[13]Permission denied zabbix_agentd[8161]:cannot create PIDfile[/var/run/zabbix/zabbix_agentd.pid]:[13]Permission denied zabbix_agentd[8173]:cannot create PIDfile[/var/run/zabbix/zabbix_agentd.pid]:[13]Permission denied zabbix_agentd[8185]:cannot create PIDfile[/var/run/zabbix/zabbix_agentd.pid]:[13]Permission denied解决方案mkdir-p/var/run/zabbix/chown zabbix.zabbix/var/run/zabbix/systemctl restart zabbix-agent.service
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进