zabbix agent
概述
Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。
支持的平台
Zabbix agent 支持以下平台:
-
Linux
-
IBM AIX
-
FreeBSD
-
NetBSD
-
OpenBSD
-
HP-UX
-
Mac OS X
-
Solaris: 9, 10, 11
-
Windows:支持从 Windows XP 之后的桌面版和服务器版。
部署
准备 epel 源文件, 同zabbix server 一样.
yum install zabbix-agent
主配置文件
[root@ops ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid # pid 文件路径 LogFile=/var/log/zabbix/zabbix_agentd.log # 日志文件路径 LogFileSize=0 # 日志文件的最大大小,以MB为单位。 Server=192.168.168.107 # 指向 zabbix server 被动检查 ServerActive=127.0.0.1 # 主动模式 zabbix server 地址 ListenPort=10050 #监听端口 StartAgents=3 #被动状态时默认启动的实例数(进程数),为0不监听任何端口 Hostname=192.168.168.107 # 唯一表示 Include=/etc/zabbix/zabbix_agentd.d/*.conf UserParameter=nginx.status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_status.sh "$1" "$2" "$3" # 自定义脚本
启动
systemctl restart zabbix-agent.service systemctl enable zabbix-agent.service systemctl status zabbix-agent.service
其他配置文件选项说明
参数 | 必须项 | 范围 | 默认值 | 描述 |
---|---|---|---|---|
Alias | 否 | 设置监控项key的别名。它可以用一个更小更简单代替长而复杂的监控项key。 可能存在多个 Alias参数。多个参数允许使用相同的 Alias。 不同 Alias 可能引用相同的监控项key。 别名可以在HostMetadataItem使用, 但不能在 HostnameItem 参数中使用。 示例: 1.检索用户“ zabbix”的ID。 Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1] 现在速记keyzabbix.userid可用于检索数据。 2. 通过默认和自定义参数获取CPU利用率。 Alias=cpu.util:system.cpu.util Alias=cpu.util[*]:system.cpu.util[*] 这允许使用cpu.utilkey获取具有默认参数的CPU利用率以及使用cpu.util [all,idle,avg15]以获取有关CPU利用率的特定数据。 3. 3.运行多个低级别发现规则处理相同的发现监控项。 Alias=vfs.fs.discovery[*]:vfs.fs.discovery 现在可以使用vfs.fs.discovery为每个规则设置多个具有不同参数的发现规则,例如vfs.fs.discovery [foo],vfs.fs.discovery [bar]等。 |
||
AllowKey | 否 | 允许执行与模式匹配的那些监控项key。值模式是通配符表达式,支持“ *”字符以匹配任意数量的任何字符。 可以结合DenyKey定义多个值的匹配规则。根据其出现顺序对参数进行逐一处理。 从Zabbix 5.0.0开始支持此参数。 另请参阅: 限制代理检查。 |
||
AllowRoot | 否 | 0 | 允许代理以“root”身份运行。如果禁用并且代理由“root”启动,则代理将尝试切换到用户“ zabbix”。如果在普通用户下启动,则无效。 0 - 不允许 1 - 允许 |
|
BufferSend | 否 | 1-3600 | 5 | 缓冲区中的数据不要保留超过N秒。 |
BufferSize | 否 | 2-65535 | 100 | 内存缓冲区中的最大值数。 如果缓冲区已满,则代理会将所有收集的数据发送到Zabbix server或代理。 |
DebugLevel | 否 | 0-5 | 3 | 指定调试级别: 0 - 有关启动和停止Zabbix进程的基本信息 1 - 关键信息 2 - 错误信息 3 - 警告 4 - 用于调试(产生大量信息) 5 - 扩展调试(产生更多信息) |
DenyKey | 否 | 拒绝执行与模式匹配的那些监控项key。值模式是通配符表达式,支持“ *”字符以匹配任意数量的任何字符。 可以结合AllowKey定义多个值的匹配规则。根据其出现顺序对参数进行逐一处理。 从Zabbix 5.0.0开始支持此参数。 另请参阅: 限制代理检查。 |
||
EnableRemoteCommands | 否 | 0 | 是否允许来自Zabbix server的远程命令。 从Zabbix 5.0.2开始,此参数已弃用,请使用AllowKey=system.run[*]或DenyKey=system.run[*]来替代 它是AllowKey/DenyKey参数的内部别名,具体取决于值: 0 - DenyKey=system.run[*] 1 - AllowKey=system.run[*] |
|
HostInterface | 否 | 0-255个字符 | 定义主机接口的可选参数。 主机接口用于主机自动注册过程。 如果值超过255个字符的限制,代理将发出错误并且不会启动。 如果未定义,将从HostInterfaceItem获取值。 自Zabbix 4.4.0起支持。 |
|
HostInterfaceItem | 否 | 可选参数,用于定义用于获取主机接口的监控项。 主机接口用于主机自动注册过程。 在自动注册请求期间,如果指定项返回的值超过255个字符的限制,则代理将记录一条警告消息。 仅当未定义HostInterface时才使用此选项。 自Zabbix 4.4.0起支持。 |
||
HostMetadata | 否 | 0-255个字符 | 定义主机元数据的可选参数。主机元数据仅在主机自动注册过程(主动代理)中使用。 如果未定义,将从HostMetadataItem获取该值。 如果指定的值超出限制或非UTF-8字符串,则代理将发出错误,并且不会启动。 在2.2.0及更高版本中支持此选项。 |
|
HostMetadataItem | 否 | 可选参数,用于定义用于获取主机元数据的Zabbix agent监控项。仅当未定义HostMetadata时才使用此选项。 支持UserParameters和aliases。不管allowKey/DenyKey值如何,都支持system.run[] HostMetadataItem值在每次自动注册尝试时都会检索,并且仅在主机自动注册过程(主动代理)上使用。 在自动注册请求期间,如果指定项返回的值超过255个字符的限制,则代理将记录一条警告消息。 该项目返回的值必须是UTF-8字符串,否则将被忽略。 在2.2.0及更高版本中支持此选项。 |
||
Hostname | 否 | 由HostnameItem设置 | 唯一的,区分大小写的主机名。 主动检查所必需,并且必须与服务器上配置的主机名匹配。 允许的字符: 字母数字, '.', ' ', '_' and '-'。 最大长度: 128。 |
|
HostnameItem | 否 | system.hostname | 可选参数,用于定义用于获取主机名的Zabbix agent监控项。 仅当未定义主机名时才使用此选项。 不支持UserParameters或aliases, 但不管allowKey /DenyKey值如何,都支持system.run[] 1.8.6及更高版本支持此选项。 |
|
Include | 否 | 您可以在配置文件的目录中包括单个文件或所有文件。 要仅在指定目录中包含相关文件,模式匹配支持使用星号通配符。例如: /absolute/path/to/config/files/*.conf 。从Zabbix 2.4.0开始支持模式匹配。请参阅 特别说明 有关限制。 |
||
ListenIP | 否 | 0.0.0.0 | 代理应侦听使用逗号分隔的IP地址列表。 1.8.3及更高版本支持多个IP地址。 |
|
ListenPort | 否 | 1024-32767 | 10050 | 代理将在此端口上侦听来自服务器的连接。 |
LoadModule | 否 | 在代理启动时加载的模块。模块用于扩展代理的功能。 格式: LoadModule=<module.so> LoadModule=<path/module.so> LoadModule=</abs_path/module.so> 模块必须位于LoadModulePath指定的目录中,或者路径必须在模块名称之前。 如果前面的路径是绝对路径(以“/”开头),则将忽略LoadModulePath。 允许包含多个LoadModule参数。 |
||
LoadModulePath | 否 | 代理模块位置的完整路径。 默认值取决于编译选项。 |
||
LogFile | 是,如果日志类型设置为file, 否则为否 | 日志文件名。 | ||
LogFileSize | 否 | 0-1024 | 1 | 日志文件的最大大小,以MB为单位。 0 - 禁用自动日志轮换。 注意: 如果达到了日志文件大小限制并且文件轮换失败,则无论出于何种原因,现有的日志文件都会被截断并重新启动。 |
LogType | 否 | file | 日志输出类型: file - 将日志写入LogFile参数指定的文件, system - 将日志写入syslog, console - 将日志写入标准输出。 从Zabbix 3.0.0开始支持此参数。 |
|
LogRemoteCommands | 否 | 0 | 是否启用执行Shell命令记录为警告。 0 - 禁用 1 - 启用 仅当远程执行命令时,才会记录命令。 如果通过HostMetadataItem,HostInterfaceItem或HostnameItem参数在本地启动system.run[],则不会创建日志条目。 |
|
MaxLinesPerSecond | 否 | 1-1000 | 20 | 当处理“log”和“eventlog”主动检查时,代理每秒发送给Zabbix server或代理的最大新行数。 所提供的值将被“log”或“eventlog”监控项key中提供的参数“maxlines”所覆盖。 注意:Zabbix将处理比MaxLinesPerSecond中设置的新行多10倍的新行,以在日志项中查找所需的字符串。 |
PidFile | 否 | /tmp/zabbix_agentd.pid | PID文件的名称。 | |
RefreshActiveChecks | 否 | 60-3600 | 120 | 主动检查刷新列表的频率(以秒为单位)。 请注意,主动检查刷新失败后,将在60秒后尝试进行下一次刷新。 |
Server | 是,如果未将StartAgents显式设置为0 | 逗号分隔的IP地址列表,可以选择使用CIDR表示法,或者Zabbix servers和 Zabbix proxies的主机名。 仅从此处列出的主机接受传入的连接。 如果启用了IPv6支持,则将 '127.0.0.1', '::ffff:127.0.0.1' 同等对待,并且'::/0' 将允许任何IPv4或IPv6地址。 '0.0.0.0/0' 可用于允许任何IPv4地址。 注意, “ IPv4兼容的IPv6地址”(0000 ::/96前缀)受支持,但RFC4291已弃用。 示例: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.domain 允许使用空格。 |
||
ServerActive | 否 | 主动检查Zabbix servers和 Zabbix proxies以逗号分隔IP:端口对(或主机名:端口对)列表。 可以提供多个地址来并行使用多个独立的Zabbix servers,允许有空格。 如果未指定端口,则使用默认端口。 如果指定了该主机的端口,则IPv6地址必须用方括号括起来。 如果未指定port,则IPv6地址的方括号是可选的。 如果未指定此参数,则禁用主动检查。 |
||
SourceIP | 否 | 用于以下目的的源IP地址: - 与Zabbix server或Zabbix proxy的传出连接; - 在执行某些监控项(web.page.get, net.tcp.port,等等)时建立连接。 |
||
StartAgents | 否 | 0-100 | 3 | 处理被动检查的zabbix_agentd的预分支实例数。 如果设置为0,则禁用被动检查,并且代理将不侦听任何TCP端口。 在版本1.8.5之前,上限为16。 |
Timeout | 否 | 1-30 | 3 | 在处理上花费的时间不超过该值(秒)。 |
TLSAccept | 是, 如果定义了TLS证书或PSK参数(甚至用于未加密的连接), 否则为否 | 接受什么传入连接。用于被动检查。可以指定多个值,以逗号分隔: unencrypted - 接受不加密的连接(默认) psk - 接受带TLS和预共享密钥(PSK) cert - 接受带TLS和证书的连接 从Zabbix3.0.0开始支持此参数。 |
||
TLSCAFile | 否 | 包含用于对等证书验证的顶级CA证书的文件的完整路径名,用于Zabbix组件之间的加密通信。 从Zabbix3.0.0开始支持此参数。 |
||
TLSCertFile | 否 | 包含代理证书或证书链的文件的完整路径名,用于与Zabbix组件进行加密通信。 从Zabbix3.0.0开始支持此参数。 |
||
TLSCipherAll | 否 | GnuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。覆盖用于基于证书和PSK的加密的默认密码套件选择标准。 示例: TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 从Zabbix 4.4.7开始支持此参数。 |
||
TLSCipherAll13 | 否 | TLS 1.3中OpenSSL 1.1.1或更高版本的密码字符串。 覆盖用于基于证书和PSK加密的默认密码套件选择条件。 GnuTLS示例: NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL::+SIGN-ALL:+CTYPE-X.509 OpenSSL示例: EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128 从Zabbix4.4.7开始支持此参数。 |
||
TLSCipherCert | 否 | GnuTLS优先级字符串或OpenSSL(TLS 1.2)密码字符串。覆盖基于证书加密的默认密码套件选择条件。 GnuTLS示例: NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 OpenSSL示例: EECDH+aRSA+AES128:RSA+aRSA+AES128 从Zabbix4.4.7开始支持此参数。 |
||
TLSCipherCert13 | 否 | TLS 1.3中OpenSSL1.1.1或更高版本的密码字符串。覆盖基于证书加密的默认密码套件选择条件。 从Zabbix4.4.7开始支持此参数。 |
||
TLSCipherPSK | 否 | GnuTLS优先级字符串或OpenSSL(TLS1.2)密码字符串。覆盖基于PSK加密的默认密码套件选择条件。 GnuTLS示例: NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL OpenSSL示例: kECDHEPSK+AES128:kPSK+AES128 从Zabbix4.4.7开始支持此参数。 |
||
TLSCipherPSK13 | 否 | TLS 1.3中OpenSSL1.1.1或更高版本的密码字符串。覆盖基于PSK加密的默认密码套件选择条件。 示例: TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 从Zabbix4.4.7开始支持此参数。 |
||
TLSConnect | 是, 如果定义了TLS证书或PSK参数(甚至用于未加密的连接), 否则为否 | 代理应如何连接到Zabbix server或proxy。用于主动检查。只能指定一个值:: unencrypted - 接受不加密的连接(默认) psk - 接受带TLS和预共享密钥(PSK) cert - 接受带TLS和证书的连接 从Zabbix3.0.0开始支持此参数。 |
||
TLSCRLFile | 否 | 包含已撤销证书文件的完整路径名。此参数用于与Zabbix组件的加密通信。 从Zabbix3.0.0开始支持此参数。 |
||
TLSKeyFile | 否 | 包含用于与Zabbix组件进行加密通信的代理私钥文件的完整路径名。 从Zabbix3.0.0开始支持此参数。 |
||
TLSPSKFile | 否 | 包含用于与Zabbix组件进行加密通信的代理预共享密钥文件的完整路径名。 从Zabbix3.0.0开始支持此参数。 |
||
TLSPSKIdentity | 否 | 预共享密钥标识字符串,用于与 Zabbix server进行加密通信。 从Zabbix3.0.0开始支持此参数。 |
||
TLSServerCertIssuer | 否 | 允许的服务器(代理)证书颁发者。 从Zabbix3.0.0开始支持此参数。 |
||
TLSServerCertSubject | 否 | 允许的服务器(代理)证书主题。 从Zabbix3.0.0开始支持此参数。 |
||
UnsafeUserParameters | 否 | 0,1 | 0 | 允许将所有字符都通过参数传递给用户定义的参数。从Zabbix1.8.2开始支持。 不允许使用以下字符: \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @ 另外,不允许使用换行符。 |
User | 否 | zabbix | 将特权授予系统上特定的现有用户。 仅当以“ root”身份运行且AllowRoot被禁用时才有效。 从Zabbix 2.4.0开始支持此参数。 |
|
UserParameter | 否 | 用户定义的参数进行监控。可以有多个用户自定义参数。 格式: UserParameter=<key>,<shell command> 注意shell命令一定不能返回空字符串或仅返回EOL。 示例: UserParameter=system.test,who|wc -l |
作者:闫世成
出处:http://cnblogs.com/yanshicheng
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请联系上述邮箱,非常感谢。