IBM AIX 上的 Zabbix agent

概述

可从下载页面获取适用于 IBM AIX 的预编译 Zabbix agent 二进制文件,文件格式为 .tar.gz 压缩包。 本页面介绍如何从压缩包安装 agent、手动运行 agent 或通过系统资源控制器(SRC)运行 agent、在系统启动时启动 agent,以及从 SRC 中移除 agent。

安装 agent

AIX 的 tar 命令不支持 -z 选项,因此请使用 gunzip 解压归档文件。 请使用 tar 的 -o 选项,以便提取的文件归属于执行提取操作的用户,而不是归属于归档中存储的数字用户 ID 和组 ID。 例如,要将 agent 放置在 /opt/zabbix 中(以 root 身份运行;/opt/zabbix 必须尚不存在):

gunzip -c zabbix_agent-7.4.7-aix-7.2-powerpc-openssl.tar.gz | tar -xof -
mv zabbix_agent-7.4.7-aix-7.2-powerpc-openssl /opt/zabbix

在 AIX 归档文件中,agent 二进制文件位于 usr/sbin/,配置文件位于 etc/zabbix/。 启动 agent 前,请根据需要调整 /opt/zabbix/etc/zabbix/zabbix_agentd.conf(至少调整 Server、ServerActive 和 Hostname 参数)。

如果以 root 身份启动,agent 将切换到 zabbix 用户(或切换到 User 参数指定的用户),除非在配置文件中设置了 AllowRoot=1。 该用户必须存在于系统中,否则 agent 将无法启动。 如果 zabbix 用户尚不存在,请同时创建同名组:

mkgroup zabbix
mkuser pgrp=zabbix login=false rlogin=false zabbix

login=false 和 rlogin=false 属性可防止使用该账户登录;但 agent 仍可作为该用户运行。

手动启动 agent

可以手动启动 agent:

/opt/zabbix/usr/sbin/zabbix_agentd -c /opt/zabbix/etc/zabbix/zabbix_agentd.conf

使用 SRC 运行 agent

注册 agent

agent 也可以向系统资源控制器(SRC)注册。 通过 SRC 启动时,agent 必须以前台模式运行(使用 -f 选项)。 否则,SRC 会失去对 agent 进程的跟踪,因而无法停止该进程。 例如(以 root 身份运行):

mkssys \
  -s zabbix_agentd \
  -p /opt/zabbix/usr/sbin/zabbix_agentd \
  -a "-c /opt/zabbix/etc/zabbix/zabbix_agentd.conf -f" \
  -u zabbix \
  -G tcpip \
  -S -n 15 -f 9 \
  -R

在此示例中:

  • -s 设置与 SRC 命令配合使用的子系统名称;
  • -p 设置 agent 二进制文件的完整路径;
  • -a 将 agent 命令行参数设置为一个带引号的字符串;SRC 启动 agent 时会将此字符串拆分为单独的参数(只接受一个 -a 选项);
  • -u 设置 agent 运行时所使用的用户;创建子系统时,用户名会转换为数字用户 ID,因此该用户必须已存在;
  • -G 将 agent 添加到 tcpip 子系统组中,因此组命令也会应用于该 agent(例如,stopsrc -g tcpip 也会停止该 agent);
  • -S -n 15 -f 9 使 SRC 通过信号控制 agent:stopsrc 在正常停止时发送 SIGTERM(15),在强制停止时(stopsrc -f)发送 SIGKILL(9);
  • -R 使 SRC 在 agent 异常终止时重新启动它(例如,其某个进程崩溃时);执行 stopsrc 后,agent 不会重新启动。

由于用户 ID 存储在子系统定义中,如果重新创建 zabbix 用户时使用了不同的用户 ID,请更新该定义:

chssys -s zabbix_agentd -u zabbix
启动和停止 agent

可以使用 startsrc、lssrc 和 stopsrc 启动、查询和停止 agent:

startsrc -s zabbix_agentd
lssrc -s zabbix_agentd
stopsrc -s zabbix_agentd

请避免使用强制停止命令(stopsrc -f)。 该命令只会终止主 agent 进程;其他 agent 进程仍会继续运行并保持监听端口处于开放状态,因此在手动终止这些进程之前(例如使用 kill -9),无法再次启动 agent。

在系统启动时启动 agent

将 agent 注册到 SRC 并不会使其在系统启动时启动。 要在启动时自动启动 agent,请在 /etc/inittab 中添加以下条目:

mkitab "zabbix_agentd:2:once:/usr/bin/startsrc -s zabbix_agentd >/dev/console 2>&1"

从 SRC 中移除 agent

要从系统启动项和 SRC 中移除 agent:

stopsrc -s zabbix_agentd
rmitab zabbix_agentd
rmssys -s zabbix_agentd