官方文档:
https://www.zabbix.com/cn/download?zabbix=7.0&os_distribution=centos&os_version=7&components=agent_2&db=&ws=

yum安装

被监控端主机client 要开启入站规则zabbix server 10050 端口,达到默认监控
开启客户端访问zabbix server 10051端口目的是为了完成active,主动模式监控

源地址 目标地址 端口
zabbix server IP client IP 10050
clietn IP zabbix server IP 10051

在官方文档点击获取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 clean all

列出需要安装的zabbix-agent版本信息

yum list all| grep  zabbix

在这里插入图片描述

安装agent:

#安装包名称:第一列-第二列(zabbix-agent)-(7.2.0-release1.el7)
yum install zabbix-agent2-7.0.9-release1.el7

调整Linux Zabbix Agent 配置文件

修改配置文件

sed -i 's\Server=127.0.0.1\Server=Zabbix service IP\g' /etc/zabbix/zabbix_agentd.conf #Zabbix service IP 更改为你自己的server
sed -i 's\ServerActive=127.0.0.1\ServerActive=Zabbix service IP\g' /etc/zabbix/zabbix_agentd.conf #Zabbix service IP 更改为你自己的server
sed -i 's\Hostname=Zabbix server\Hostname=clienthost\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?version=7.0+LTS&release=7.0.10&os=Linux&os_version=3.0&hardware=amd64&encryption=No+encryption&packaging=Archive&show_legacy=0

在这里插入图片描述

wget   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_PACKAGE="zabbix_agent-7.0.10-linux-3.0-amd64-static.tar.gz"   #安装包名称
HOST_IP=$(ip -4 addr show eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1)  # 本机标识IP(用于Hostname配置,Hostname要与web端的Host name一致)
ZABBIX_SERVER_IP="110.105.20.44"  # Zabbix服务器/proxy 的IP

# 检查是否为root用户
if [ "$(id -u)" != "0" ]; then
    echo "错误:此脚本必须以root权限运行!" 1>&2
    exit 1
fi

# 检查安装包是否存在
if [ ! -f "$ZABBIX_PACKAGE" ]; then
    echo "错误:安装包 $ZABBIX_PACKAGE 不存在!" 1>&2
    exit 1
fi

echo "正在安装 Zabbix Agent..."
echo "使用配置:"
echo "  - 安装包: $ZABBIX_PACKAGE"
echo "  - 本机标识IP: $HOST_IP"
echo "  - Zabbix服务器: $ZABBIX_SERVER_IP"
echo "----------------------------------------"

# 创建目录
mkdir -p /usr/local/zabbix/ || exit 1
mkdir -p /etc/zabbix || exit 1

# 移动并解压安装包
echo "移动安装包到 /usr/local/zabbix..."
mv -v "$ZABBIX_PACKAGE" /usr/local/zabbix/ || exit 1

cd /usr/local/zabbix/ || exit
echo "解压安装包..."
tar -zxvf "$ZABBIX_PACKAGE" || exit 1
rm -f "$ZABBIX_PACKAGE"

# 复制配置文件
echo "复制配置文件至/etc/zabbix/"
cp -v conf/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf || exit 1

# 创建systemd服务文件
echo "创建systemd服务..."
cat > /lib/systemd/system/zabbix-agent.service << EOF
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
 
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c \$CONFFILE
ExecStop=/bin/kill -SIGTERM \$MAINPID
User=zabbix
Group=zabbix
 
[Install]
WantedBy=multi-user.target
EOF

# 创建zabbix用户
if ! id zabbix &>/dev/null; then
    echo "创建zabbix用户..."
    useradd -r -M -s /sbin/nologin zabbix
fi

# 修改配置文件
echo "更新配置文件..."
sed -i "s|Server=127.0.0.1|Server=$ZABBIX_SERVER_IP|g" /etc/zabbix/zabbix_agentd.conf
sed -i "s|ServerActive=127.0.0.1|ServerActive=$ZABBIX_SERVER_IP|g" /etc/zabbix/zabbix_agentd.conf
sed -i "s|Hostname=Zabbix server|Hostname=$HOST_IP|g" /etc/zabbix/zabbix_agentd.conf
# 设置日志路径
echo "配置日志路径..."
mkdir -p /var/log/zabbix
chown zabbix:zabbix /var/log/zabbix
sed -i 's|^#*\s*LogFile=.*/tmp/zabbix_agentd\.log|LogFile=/var/log/zabbix/zabbix_agentd.log|' /etc/zabbix/zabbix_agentd.conf
if ! grep -q '^LogFile=' /etc/zabbix/zabbix_agentd.conf; then
    echo "LogFile=/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-reload
systemctl restart zabbix-agent
systemctl enable zabbix-agent

# 验证安装
if systemctl is-active --quiet zabbix-agent; then
    echo -e "\n\033[32mZabbix Agent 安装成功!\033[0m"
    echo "服务状态: $(systemctl is-active zabbix-agent)"
    echo "开机自启: $(systemctl is-enabled zabbix-agent)"
else
    echo -e "\n\033[31m错误:Zabbix Agent 启动失败!\033[0m"
    journalctl -u zabbix-agent --since "5 minutes ago" --no-pager
    exit 1
fi
chmod +x install_zabbix_agent.sh
sudo ./install_zabbix_agent.sh

zabbix agent 新增server或者proxy地址

使用以下脚本
在proxy处调整为你的server或者proxyIP

cat> agent.sh<<EOF
#!/bin/bash
proxy= *.*.*.*
# 获取 Server= 的配置行
IP=\$(grep -v "#" /etc/zabbix/zabbix_agentd.conf | awk '/Server=/ {print \$0}')

# 确保 \$IP 有值
if [[ -n "\$IP" ]]; then
    # 替换行内容
    sed -i "s/\$IP/\$IP,\$proxy/" /etc/zabbix/zabbix_agentd.conf
    echo "Updated \$IP to \$IP,\$proxy in zabbix_agentd.conf"
else
    echo "No Server= line found in zabbix_agentd.conf"
fi

# 重启 Zabbix Agent 服务
systemctl restart zabbix-agent
EOF

chmod +x agent.sh
bash +x 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 --zone=public --add-port=10050/tcp --permanent
firewall-cmd  --reload

或者iptables

iptables -t filter -I INPUT -p tcp --dport 10050 -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.37
yum 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]
Description=Zabbix Agent
After=syslog.target
After=network.target
 
[Service]
Environment="CONFFILE=/etc/zabbix/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
User=daemon
Group=daemon
 
[Install]
WantedBy=multi-user.target

调整对应配置文件后 对systemd 重新加载下

systemctl daemon-reload
systemctl restart zabbix-agent

配置Windows agent:

下载对应安装包

在这里插入图片描述
在这里插入图片描述

上传至服务器后点击安装包,直接安装

在zabbix_agent.win.conf中按照以下配置

LogFile=C:\zabbix_agent.log
Server= 172.18.88.170
ServerActive= 172.18.88.170
Hostname=此设备主机名
EnableRemoteCommands= 1
LogRemoteCommands=1

查看10050端口

netstat -an | findstr 10050

打开任务管理器,找到services,找到zabbix_agent
然后在服务中将zabbix_agent设置为开机启动(自动启动)
在这里插入图片描述

最后如果有问题,可能还需要设置本地防火墙策略,添加10050端口

开启主动模式:

一定要更改配置文件
ServerActive= IP(zabbix server IP)

sed -i s'/Server=127.0.0.1/Server=127.0.0.1,10.10.0.1/' /etc/zabbix/zabbix_agentd.conf
sed -i s'/ServerActive=127.0.0.1/ServerActive=10.10.0.1/' /etc/zabbix/zabbix_agentd.conf

追加以下参数

StartAgent=200则关闭被动模式
RefreshActiveChecks=60  主动发送信息间隔
systemctl  restart  zabbix-agent
systemctl  status zabbix-agent

Web 控制台上 proxy一定要改为no proxy

在这里插入图片描述

ZABBIX Web console一定要配置 Zabbix agent (active)

在这里插入图片描述

执行远程命令RemoteCommand

1:zabbix-agentd进程是root启动的

vi /usr/lib/systemd/system/zabbix-agent.service

修改 group 和 user 为 root

systemctl daemon-reload #重启加载所有unit单元
systemctl restart zabbix-agent #重启zabbix服务
ps -ef | grep zabbix_agentd #查看进程是否是root启动的

2:配置action
在这里插入图片描述

测试多条命令在这里插入图片描述

agent 启动报错

报错排查
https://cloud.tencent.com/developer/article/1489205

zabbix_agentd [8097]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [13] Permission denied
zabbix_agentd [8109]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [13] Permission denied
zabbix_agentd [8161]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [13] Permission denied
zabbix_agentd [8173]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [13] Permission denied
zabbix_agentd [8185]: cannot create PID file [/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
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐