hashicorp consul 的日志文件在哪里?

问题描述 投票:0回答:4

我尝试设置 hashicorp consul(作为 Windows 服务)将数据记录到文件中。文档说要在配置文件中设置 log_level,但没有说明日志文件最终在 Windows 计算机上的位置?有一个领事监视器,但我需要它来记录到文件。

{
  "data_dir": "data",
  "log_level": "INFO",
  "bootstrap_expect": 1,
  "server": true,
  "bind_addr": "0.0.0.0",
  "ui": true,
  "datacenter": "dc1",
  "addresses": {
    "http": "0.0.0.0"
  },
  "ports": {
    "http": 8518,
    "dns": -1,
    "https": -1,
    "rpc": 8218,
    "serf_lan": 8318,
    "serf_wan": 8418,
    "server": 8618
  }
}

在这种情况下,我需要记录领事何时上线/离线以及领事了解哪些服务,当然还有错误/警告。

如何使用 hashicorp consul 登录文件?

致以诚挚的问候

logging service windows-services consul
4个回答
4
投票

这是不可能的,您必须从命令提示符运行该服务,然后将 STDOUT 重定向到文件。这不是最好的解决方案,但它是我找到的唯一方法。


0
投票

是的,这是可能的,而且相当简单。

老实说,我不记得我在哪里发现了这个,但最初确实需要一些寻找。我发现你可以修改在 yum 安装上为 consul 创建的服务的ExecStart。通过在该行末尾添加 -log-file=some-path,您可以将 consul 的日志定向为 /var/log/consul。

[Unit]
Description="HashiCorp Consul - A service mesh solution"
Documentation=https://www.consul.io/
Requires=network-online.target
After=network-online.target
ConditionFileNotEmpty=/etc/consul.d/consul.hcl

[Service]
User=consul
Group=consul
ExecStart=/usr/bin/consul agent -config-dir=/etc/consul.d/ -log-file=/var/log/consul/
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGTERM
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

编辑:我找到了此设置的文档在Hashicorp

相关选项已记录在案这里非常好 除此之外,您可能需要在服务配置中添加设置。


0
投票

日志将记录在系统日志中。

运行此命令以相反的顺序检索服务的日志(即最新的在前):

sudo journalctl -u consul.service -r


0
投票

Consul 可以使用

--log-file
标志将日志写入文件,例如:

.\consul.exe agent -config-file config.json -log-file ./logs/ -log-rotate-bytes 1048576

注意:目标文件夹(上例中的./logs/)在启动 consul 之前必须存在。

© www.soinside.com 2019 - 2024. All rights reserved.