APM Server 和 systemd
编辑APM Server 和 systemd
编辑这些命令仅适用于 APM Server 二进制安装方法。Fleet 管理的用户应参阅 在边缘主机上启动和停止 Elastic Agent。
DEB 和 RPM 包包含一个适用于带有 systemd 的 Linux 系统的服务单元。在这些系统上,您可以使用通常的 systemd 命令来管理 APM Server。
我们建议将 apm-server 进程作为非 root 用户运行。因此,这是 APM Server 的 DEB 包和 RPM 安装的默认设置。
使用 systemctl
启动或停止 APM Server
sudo systemctl start apm-server
sudo systemctl stop apm-server
默认情况下,APM Server 服务在系统启动时自动启动。要启用或禁用自动启动,请使用
sudo systemctl enable apm-server
sudo systemctl disable apm-server
要获取服务状态,请使用 systemctl
systemctl status apm-server
日志默认存储在 journald 中。要查看日志,请使用 journalctl
journalctl -u apm-server.service
systemd 服务单元文件包含可以覆盖以更改默认选项的环境变量。
变量 | 描述 | 默认值 |
---|---|---|
|
日志选项 |
|
|
配置文件路径的标志 |
|
|
其他路径 |
|
您可以使用 BEAT_LOG_OPTS
设置用于日志记录的调试选择器。但是,要配置日志记录行为,请设置 配置日志记录 中描述的日志记录选项。
要覆盖这些变量,请在 /etc/systemd/system/apm-server.service.d
目录中创建一个嵌入式单元文件。
例如,将以下内容的文件放置在 /etc/systemd/system/apm-server.service.d/debug.conf
中将覆盖 BEAT_LOG_OPTS
以启用 Elasticsearch 输出的调试。
[Service] Environment="BEAT_LOG_OPTS=-d elasticsearch"
要应用更改,请重新加载 systemd 配置并重新启动服务
systemctl daemon-reload systemctl restart apm-server
建议您使用配置管理工具来包含嵌入式单元文件。如果需要手动添加嵌入式单元文件,请使用 systemctl edit apm-server.service
。
在具有 POSIX 文件权限的系统上,APM Server 配置文件受所有权和文件权限检查。这些检查可防止未经授权的用户提供或修改由 APM Server 运行的配置。
通过 RPM 或 DEB 包安装时,/etc/apm-server/apm-server.yml
中的配置文件将由 apm-server
拥有,并且具有 0600
(-rw-------
) 的文件权限。
只有当配置文件由运行该进程的用户拥有,或者以 root 身份运行且配置所有权设置为 root:root
时,APM Server 才会启动。
如果您的配置文件未通过这些检查,您可能会遇到以下错误
Exiting: error loading config file: config file ("/etc/apm-server/apm-server.yml") must be owned by the user identifier (uid=1000) or root
要解决此问题,您可以使用以下命令更改配置文件的所有权:chown apm-server:apm-server /etc/apm-server/apm-server.yml
。
您也可以将 root 设为配置所有者,但这不建议这样做:sudo chown root:root /etc/apm-server/apm-server.yml
。
Exiting: error loading config file: config file ("/etc/apm-server/apm-server.yml") can only be writable by the owner but the permissions are "-rw-rw-r--" (to fix the permissions use: 'chmod go-w /etc/apm-server/apm-server.yml')
要解决此问题,请使用 chmod go-w /etc/apm-server/apm-server.yml
删除除所有者以外任何人的写权限。
您可以使用 --strict.perms=false
从命令行禁用严格权限检查,但我们强烈建议您保持检查启用状态。