bounty将在5天后过期。回答此问题可获得+100声望奖励。worrum希望引起更多人关注此问题。
我的任务是为大约70个容器配置Docker日志监控。将所有日志合并到一个面板中并不理想,特别是在压力测试和监控Docker应用程序时。我希望能够在面板中选择Docker容器应用程序并查看相应的日志。我已经实现了这一点,但问题是容器名称是加密的,我需要解密它们。
我的问题是:如何使用Loki数据源和Promtail解密容器名称?
此外,我注意到Prometheus数据源显示解密的容器名称,但Loki数据源没有。下面是我对两者的配置:
此外,我运行Loki和Promtail像正常的应用程序与配置systemd守护进程. Loki:
auth_enabled: false
server:
http_listen_port: 3100
grpc_listen_port: 9096
ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2021-03-08
store: boltdb
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb:
directory: /tmp/loki/index
Promtail:
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: cadvisor
static_configs:
- targets: ['localhost:8080/containers/']
labels:
job: cadvisonr
__path__: /containers
- job_name: system
static_configs:
- targets:
- localhost
labels:
job: varlogs
__path__: /var/log/*log
- job_name: containers
static_configs:
- targets:
- localhost
labels:
job: containerlogs
__path__: /var/lib/docker/containers/*/*log
pipeline_stages:
- json:
expressions:
output: log
stream: stream
attrs:
- json:
expressions:
tag:
source: attrs
- regex:
expression: (?P<container_name>(?:[^|]*[^|]))
source: tag
- timestamp:
format: RFC3339Nano
source: time
- labels:
# tag:
stream:
container_name:
- output:
source: output
此外,我知道loki-driver-docker插件,但我试图运行它,对我来说没有任何变化,文档很糟糕,它说只要运行它,几乎没有关于配置或如何检查它是否正常工作的内容。
所以,我很乐意听到任何想法和建议。论坛是我解决这个问题的最后机会。
UPD:目前看起来是这样的:
我希望它像cadvisor一样被解密:
1条答案
按热度按时间jmo0nnb31#
它是这样工作的:
<something>_configs
static_config
只能看到文件Promtail配置可能看起来像这样:
然后在grafana-loki中,您可以使用LogQL语言过滤日志,例如: