调试独立 Elastic Agent
编辑调试独立 Elastic Agent编辑
当您运行独立 Elastic Agent 时,您需要负责监控已部署的 Elastic Agent 的状态。您无法在 Fleet 中查看状态或日志。
使用以下提示来帮助识别潜在问题。
还可以参考 排查常见问题 以获取有关特定问题的指导。
您可能需要以 root 用户(或 Windows 上的管理员)身份登录才能运行这些命令。
检查正在运行的 Elastic Agent 的状态编辑
要检查正在运行的 Elastic Agent 守护进程和其他由 Elastic Agent 管理的进程的状态,请运行 status
命令。例如
elastic-agent status
返回类似于以下内容
State: HEALTHY Message: Running Fleet State: STOPPED Fleet Message: (no message) Components: * log (HEALTHY) Healthy: communicating with pid '25423' * filestream (HEALTHY) Healthy: communicating with pid '25424'
默认情况下,此命令以人类可读的格式返回状态。使用 --output
标志将其更改为 json
或 yaml
。
有关此命令的更多信息,请参考 elastic-agent status。
检查 Elastic Agent 和相关日志编辑
如果 Elastic Agent 状态不正常或行为异常,请检查正在运行的 Elastic Agent 的日志。
日志位置因平台而异。Elastic Agent 日志位于 安装布局 中描述的文件夹中。Beats 和 Fleet Server 日志位于以输出命名的文件夹中(例如,default
)。
首先调查您在 Elastic Agent 和相关日志中看到的任何错误。还要查找可能表明存在问题的重复行,例如连接问题。如果 Elastic Agent 和相关日志看起来很干净,请检查主机操作系统日志以查找与 Elastic Agent 或其任何进程相关的内存不足 (OOM) 错误。
提高正在运行的 Elastic Agent 的日志级别编辑
正在运行的代理的日志级别默认设置为 info
。在此级别,Elastic Agent 将记录信息消息,包括已发布的事件数量。它还会记录任何警告、错误或严重错误。
要提高日志级别,请在 elastic-agent.yml
文件中将其设置为 debug
。
该 debug
设置将配置 Elastic Agent 以记录调试消息,包括所有已刷新事件的详细打印输出,以及在其他日志级别收集的所有信息。
如果您想将日志写入文件,请设置其他选项。例如
agent.logging.level: debug agent.logging.to_files: true agent.logging.files: path: /var/log/elastic-agent name: elastic-agent keepfiles: 7 permissions: 0600
有关其他日志设置,请参考 日志记录。
使用监控端点公开 /debug/pprof/ 端点编辑
由 /debug/pprof/
端点生成的分析数据可能对调试很有用,但会带来安全风险。如果监控端点可通过网络访问,请勿公开这些端点。(默认情况下,监控端点绑定到本地 Unix 套接字或 Windows npipe,并且无法通过网络访问。)
要公开 /debug/pprof/
端点,请在 elastic-agent.yml
文件中设置 agent.monitoring.pprof: true
。有关监控设置的更多信息,请参考 监控。
公开端点后,您可以访问绑定到 Beats 或 Elastic Agent 套接字的 HTTP 处理程序。例如
sudo curl --unix-socket /Library/Elastic/Agent/data/tmp/default/filebeat/filebeat.sock http://socket/ | json_pp
返回类似于以下内容
{ "beat" : "filebeat", "binary_arch" : "amd64", "build_commit" : "93708bd74e909e57ed5d9bea3cf2065f4cc43af3", "build_time" : "2022-01-28T09:53:29.000Z", "elastic_licensed" : true, "ephemeral_id" : "421e2525-9360-41db-9395-b9e627fbbe6e", "gid" : "0", "hostname" : "My-MacBook-Pro.local", "name" : "My-MacBook-Pro.local", "uid" : "0", "username" : "root", "uuid" : "fc0cc98b-b6d8-4eef-abf5-2d5f26adc7e8", "version" : "7.17.0" }
同样,以下请求
sudo curl --unix-socket /Library/Elastic/Agent/data/tmp/elastic-agent.sock http://socket/stats | json_pp
返回类似于以下内容
{ "beat" : { "cpu" : { "system" : { "ticks" : 16272, "time" : { "ms" : 16273 } }, "total" : { "ticks" : 42981, "time" : { "ms" : 42982 }, "value" : 42981 }, "user" : { "ticks" : 26709, "time" : { "ms" : 26709 } } }, "info" : { "ephemeral_id" : "ea8fec0d-f7dd-4577-85d7-a2c38583c9c6", "uptime" : { "ms" : 5885653 }, "version" : "7.17.0" }, "memstats" : { "gc_next" : 13027776, "memory_alloc" : 7771632, "memory_sys" : 39666696, "memory_total" : 757970208, "rss" : 58990592 }, "runtime" : { "goroutines" : 101 } }, "system" : { "cpu" : { "cores" : 12 }, "load" : { "1" : 4.8892, "15" : 2.6748, "5" : 3.0537, "norm" : { "1" : 0.4074, "15" : 0.2229, "5" : 0.2545 } } } }
检查 Elastic Agent 配置编辑
要检查正在运行的 Elastic Agent 配置,请使用 elastic-agent inspect 命令。
要分析代理的当前状态,检查日志文件并查看 Elastic Agent 及其启动的子进程的配置,请运行 diagnostics
命令。例如
elastic-agent diagnostics
有关此命令的更多信息,请参考 elastic-agent diagnostics。