我刚刚使用 helm 安装了 Loki/Promtail,如下所示:
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
helm upgrade --install loki grafana/loki-stack --create-namespace --namespace loki-stack --set promtail.enabled=true,loki.persistence.enabled=true,loki.persistence.size=30Gi,loki.persistence.storageClassName=longhorn,config.table_manager.retention_deletes_enabled=true
现在我想设置自己的 scrape_configs 来聚合来自我自己的应用程序 Pod 的日志,但我不确定如何完成此操作(对 helm 不太熟悉):
kubectl describe cm -n loki-stack
显示当前默认加载的 scrape_configs,这实际上只是 K8s/docker 生成的东西,但我的应用程序日志丢失了,因为它们不是默认配置的一部分......
如何将自己的 scrape_configs 添加到上面所示的头盔设置中?
提前致谢
我知道它很旧,但我想添加一个答案,以便可以用谷歌搜索:)
我们在 https://github.com/grafana/helm-charts/issues/178 上找到了答案 并查看一些示例:https://github.com/grafana/helm-charts/tree/main/charts/promtail#syslog-support
这是我对 loki-stack helm 图表 value.yaml 的设置,我想保留来自 byoh-system 和 capi-system 命名空间的日志并将它们发送到 2 个不同的 loki 设置:
promtail:
enabled: true
config:
logLevel: info
serverPort: 3101
clients:
- url: http://{{ .Release.Name }}:3100/loki/api/v1/push
- url: http://{{ .Release.Name }}-external:30100/loki/api/v1/push
snippets:
extraScrapeConfigs: |
- job_name: kubernetes-pods
pipeline_stages:
- cri: {}
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_controller_name
regex: ([0-9a-z-.]+?)(-[0-9a-f]{8,10})?
action: replace
target_label: __tmp_controller_name
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_name
- __meta_kubernetes_pod_label_app
- __tmp_controller_name
- __meta_kubernetes_pod_name
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: app
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_instance
- __meta_kubernetes_pod_label_instance
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: instance
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_component
- __meta_kubernetes_pod_label_component
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: component
- action: replace
source_labels:
- __meta_kubernetes_pod_node_name
target_label: node_name
- action: replace
source_labels:
- __meta_kubernetes_namespace
target_label: namespace
- action: replace
replacement: $1
separator: /
source_labels:
- namespace
- app
target_label: job
- action: replace
source_labels:
- __meta_kubernetes_pod_name
target_label: pod
- action: replace
source_labels:
- __meta_kubernetes_pod_container_name
target_label: container
- action: replace
replacement: /var/log/pods/*$1/*.log
separator: /
source_labels:
- __meta_kubernetes_pod_uid
- __meta_kubernetes_pod_container_name
target_label: __path__
- action: replace
regex: true/(.*)
replacement: /var/log/pods/*$1/*.log
separator: /
source_labels:
- __meta_kubernetes_pod_annotationpresent_kubernetes_io_config_hash
- __meta_kubernetes_pod_annotation_kubernetes_io_config_hash
- __meta_kubernetes_pod_container_name
target_label: __path__
- action: keep
source_labels:
- __meta_kubernetes_namespace
regex: byoh-system|caaph-system