【问题标题】:Grafana config volume mapping not working while running from Docker从 Docker 运行时 Grafana 配置卷映射不起作用
【发布时间】:2020-04-25 14:15:38
【问题描述】:

1) 我正在从 Docker 运行 Grafana v6.7.2。

2) 我想启用 grafana 日志。由于我是从 Docker 运行的,因此 /etc/grafana/grafana.ini 是只读的

3) 现在,将 grafana.ini 克隆到运行 docker 的主机上。我取消注释此行以启用日志记录:logs = /var/log/grafana

#################################### Paths ####################################
[paths]
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
;data = /var/lib/grafana

# Temporary files in `data` directory older than given duration will be removed
;temp_data_lifetime = 24h

# Directory where grafana can store logs
logs = /var/log/grafana

4) 我确保停止 Grafana 容器。然后,发出以下命令以重新启动 Grafana。这次它有用于配置的卷映射:

docker run -d -p 3000:3000 -v "$PWD/grafana.ini:/etc/grafana/grafana.ini" -v grafana-storage:/var/lib/grafana grafana_internal:latest

5) 我确保 Grafana 容器正在运行,并且我可以访问 UI

6)然后,我去这里看看是否生成日志:/var/log/grafana/ using docker exec <yourimage> ls /var/log/grafana

问题是没有 Grafana 日志。现在,这让我相信配置卷映射可能无法按预期工作。

任何指针都会有所帮助。

谢谢。

【问题讨论】:

  • 您到底在哪里寻找/var/log/grafana?该目录将只存在于您的容器内部(例如,您可以使用docker exec <yourimage> ls /var/log/grafana 查看它)。您尚未将主机目录映射到该路径。
  • 不在主机中。我查看了容器内部: docker exec ls /var/log/grafana.
  • 如果您查看容器内的/etc/grafana/grafana.ini(再次使用docker exec),这应该可以回答您关于卷映射是否正常工作的问题。我怀疑它工作正常。

标签: docker grafana


【解决方案1】:

如果您使用例如查看正在运行的 grafana 实例ps,你会看到这个:

$ ps -fe | grep grafana
    1 grafana   0:00 grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini --packaging=docker cfg:default.log.mode=console cfg:default.paths.data=/var/lib/grafana cf
g:default.paths.logs=/var/log/grafana cfg:default.paths.plugins=/var/lib/grafana/plugins cfg:default.paths.provisioning=/etc/grafana/provisioning

如果您仔细查看这些配置选项,您会发现:

cfg:default.log.mode=console

这意味着 Grafana 只会登录到控制台。您可以使用docker logs 检查这些日志。没有任何理由让 Grafana 也(或代替)记录到文件中。

如果您确实希望 Grafana 记录到文件,则需要在您的 grafana.ini 中包含以下内容:

[log]
mode = console file

在我的grafana.ini 中,我可以在 docker 控制台上看到输出,并且在/var/log/grafana/grafana.log 中看到日志。

但就像我说的,当您可以从 docker logs 捕获相同的信息时,我认为创建日志文件没有任何意义。

【讨论】:

  • 谢谢。有效。我的grafana.ini 已将mode = console file 注释掉,这是默认设置。
猜你喜欢
  • 2022-08-17
  • 2023-02-17
  • 2018-01-25
  • 2020-07-15
  • 1970-01-01
  • 2022-07-15
  • 2017-09-23
  • 2017-12-08
  • 2021-12-01
相关资源
最近更新 更多