112 lines
3.1 KiB
YAML
112 lines
3.1 KiB
YAML
server:
|
|
http_listen_port: 9080
|
|
grpc_listen_port: 0
|
|
enable_runtime_reload: true
|
|
|
|
clients:
|
|
- url: https://loki.pyrocufflink.blue/loki/api/v1/push
|
|
tls_config:
|
|
ca_file: /run/dch-ca/dch-root-ca.crt
|
|
|
|
positions:
|
|
filename: /var/lib/promtail/positions
|
|
|
|
scrape_configs:
|
|
- job_name: journal
|
|
journal:
|
|
json: false
|
|
labels:
|
|
job: systemd-journal
|
|
relabel_configs:
|
|
- source_labels:
|
|
- __journal__hostname
|
|
target_label: hostname
|
|
- source_labels:
|
|
- __journal__systemd_unit
|
|
target_label: unit
|
|
- source_labels:
|
|
- __journal_syslog_identifier
|
|
target_label: syslog_identifier
|
|
- source_labels:
|
|
- __journal_priority
|
|
target_label: priority
|
|
- source_labels:
|
|
- __journal_message_id
|
|
target_label: message_id
|
|
- source_labels:
|
|
- __journal__comm
|
|
target_label: command
|
|
- source_labels:
|
|
- __journal__transport
|
|
target_label: transport
|
|
|
|
- job_name: pods
|
|
kubernetes_sd_configs:
|
|
- role: pod
|
|
pipeline_stages:
|
|
- cri: {}
|
|
relabel_configs:
|
|
# Magic label: tell Promtail to filter out pods that are not running locally
|
|
- source_labels: [__meta_kubernetes_pod_node_name]
|
|
target_label: __host__
|
|
- target_label: job
|
|
replacement: kubernetes-pods
|
|
# Build the log file path:
|
|
# /var/log/pods/{namespace}_{pod_name}_{pod_uid}/{container_name}/*.log
|
|
- source_labels:
|
|
- __meta_kubernetes_namespace
|
|
- __meta_kubernetes_pod_name
|
|
- __meta_kubernetes_pod_uid
|
|
separator: _
|
|
target_label: __path__
|
|
replacement: /var/log/pods/$1
|
|
- source_labels:
|
|
- __path__
|
|
- __meta_kubernetes_pod_container_name
|
|
separator: /
|
|
target_label: __path__
|
|
replacement: '$1/*.log'
|
|
- source_labels: [__meta_kubernetes_pod_node_name]
|
|
target_label: node_name
|
|
- source_labels: [__meta_kubernetes_namespace]
|
|
target_label: namespace
|
|
- source_labels: [__meta_kubernetes_pod_name]
|
|
target_label: pod
|
|
- source_labels: [__meta_kubernetes_pod_container_name]
|
|
target_label: container
|
|
- source_labels: [__meta_kubernetes_pod_controller_name]
|
|
regex: ([0-9a-z-.]+?)(-[0-9a-f]{8,10})?
|
|
action: replace
|
|
target_label: __tmp_controller_name
|
|
# Set `app` to the first non-empty label from
|
|
# - app.kubernetes.io/name
|
|
# - app
|
|
# If none present, use the pod controller (e.g. Deployment) name.
|
|
# Fall back to pod name if none found.
|
|
- 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
|
|
# Set `instance` to the first non-empty label from
|
|
# - app.kubernetes.io/instance
|
|
# - instance
|
|
- source_labels:
|
|
- __meta_kubernetes_pod_label_app_kubernetes_io_instance
|
|
- __meta_kubernetes_pod_label_instance
|
|
regex: ^;*([^;]+)(;.*)?$
|
|
action: replace
|
|
target_label: instance
|
|
# Set `component` to the first non-empty label from
|
|
# - app.kubernetes.io/component
|
|
# - component
|
|
- source_labels:
|
|
- __meta_kubernetes_pod_label_app_kubernetes_io_component
|
|
- __meta_kubernetes_pod_label_component
|
|
regex: ^;*([^;]+)(;.*)?$
|
|
action: replace
|
|
target_label: component
|