自定义 Agent 监控项目
通过运行参数的配置,您可以灵活调整 Agent 的功能和行为,满足不同场景的监控需求。
运行参数
配置参数
如果您通过一键脚本安装了 Agent,可以编辑 /opt/nezha/agent/config.yml
文件来添加或修改参数。
同一台服务器可以运行多个 Agent,每个 Agent 配置文件相互独立。
运行参数及其作用:
client_secret:
- 用于与 Dashboard 进行安全通信的客户端密钥。
- 此参数必须与 Dashboard 中的配置相同,否则 Agent 无法正常与服务器通信。
debug:
- 当为
true
时启用调试模式,记录详细日志。
- 当为
disable_auto_update:
- 当为
true
时禁用 Agent 的自动更新功能,增强系统稳定性和安全性。
- 当为
disable_command_execute:
- 当为
true
时禁用在线终端、文件管理和定时任务的执行,提升安全性。
- 当为
disable_force_update:
- 当为
true
时禁用强制更新功能,仅允许手动更新。
- 当为
disable_nat:
- 当为
true
时禁用内网穿透功能,保护内网数据。
- 当为
disable_send_query:
- 当为
true
时禁用 Agent 发起的TCP Ping
、ICMP Ping
和HTTP GET
请求。
- 当为
gpu:
- 当为
true
时启用 GPU 监控。 - 注意:启用 GPU 监控可能需要安装额外依赖,详细信息参考:启用 GPU 监控。
- 当为
insecure_tls:
- 当为
true
时禁用证书检查,适用于使用自签名证书的场景。
- 当为
ip_report_period:
- 设置本地 IP 更新间隔时间(秒)。默认值为
1800
秒(30 分钟)。 - 如果该值小于
report_delay
设置值,则以report_delay
为准。
- 设置本地 IP 更新间隔时间(秒)。默认值为
report_delay:
- 设置系统信息上报的时间间隔(秒)。默认值为
1
秒,建议设置为3
秒以降低资源占用(有效范围:1-4 秒)。
- 设置系统信息上报的时间间隔(秒)。默认值为
server:
- 与 Dashboard 通信的域名或 IP 地址,需包括端口号。
skip_connection_count:
- 当为
true
时禁用网络连接数的监控,适用于高连接数或资源受限的环境。
- 当为
skip_procs_count:
- 当为
true
时禁用进程数的监控,以降低资源占用。
- 当为
temperature:
- 当为
true
时启用硬件温度监控(仅支持部分硬件,部分 VPS 可能无法获取温度信息)。
- 当为
tls:
- 当为
true
时启用 Agent 与 Dashboard 间的通信 SSL/TLS 加密。 - 如果 Agent 使用 Nginx 反向代理且启用了 SSL/TLS 配置,请开启此选项。
- 当为
hard_drive_partition_allowlist:
- 一个字符串数组,用于指定需要监控的硬盘分区列表。
- 若指定此参数,将仅对列出的分区进行监控。
nic_allowlist:
- 一个
map[string]bool
类型的允许列表,用于指定需要监控的网卡。 - 键为网卡名称,值为
true
表示允许监控,false
表示不监控。 - 若不指定或为空,则默认监控所有可用网卡。
- 一个
use_gitee_to_upgrade:
- 当为
true
时使用 Gitee 仓库作为自动更新源,对中国大陆服务器更为友好。
- 当为
use_ipv6_country_code:
- 当为
true
时强制使用 IPv6 地址查询国家代码(默认使用 IPv4)。
- 当为
uuid:
- 当前 Agent 的唯一标识参数,用于 Dashboard 识别数据来源。
- 若需替换 Dashboard 中已存在的 Agent,可以手动设置此参数。
dns:
- 一个字符串数组,用于设置自定义 DNS 服务器列表。
- 指定后,Agent 将优先使用此列表中的 DNS 服务器解析域名。
custom_ip_api:
- 一个字符串数组,用于指定自定义 IP 查询 API 列表。
- Agent 将通过这些 API 获取服务器的公网 IP 信息。
保存生效
在修改配置文件中的参数后,需要重新启动 Agent 服务以使更改生效。具体操作如下:
重新启动服务
运行以下命令重新启动默认的第一个 Agent 服务:shellsudo systemctl restart nezha-agent.service
多 Agent 服务的情况
如果同一服务器上运行了多个 Agent 服务,请先列出所有 Agent 服务的名称:shellsudo systemctl list-units --type=service | grep nezha-agent
然后分别使用以下命令重新启动对应的 Agent 服务:
shellsudo systemctl restart <service-name>
将
<service-name>
替换为实际的服务名称,例如nezha-agent@2.service
。