apiVersion: v1 kind: ConfigMap metadata: name: promtail-config namespace: monitoring data: promtail.yaml: | server: http_listen_port: 3101 grpc_listen_port: 0 positions: filename: /run/promtail/positions.yaml clients: - url: http://loki.monitoring.svc.cluster.local:3100/loki/api/v1/push tenant_id: talos-cluster scrape_configs: # Container logs from /var/log/pods - job_name: kubernetes-pods kubernetes_sd_configs: - role: pod pipeline_stages: - cri: {} relabel_configs: # Only scrape pods with promtail.io/scrape annotation (or all by default) - source_labels: - __meta_kubernetes_pod_annotation_promtail_io_scrape action: drop regex: false # Use pod name as instance - source_labels: - __meta_kubernetes_pod_name target_label: instance # Namespace label - source_labels: - __meta_kubernetes_namespace target_label: namespace # Pod name label - source_labels: - __meta_kubernetes_pod_name target_label: pod # Container name label - source_labels: - __meta_kubernetes_pod_container_name target_label: container # Node name label - source_labels: - __meta_kubernetes_pod_node_name target_label: node # App label (from pod labels) - source_labels: - __meta_kubernetes_pod_label_app target_label: app # App.kubernetes.io/name label - source_labels: - __meta_kubernetes_pod_label_app_kubernetes_io_name target_label: app regex: (.+) action: replace # Set path to container log file - source_labels: - __meta_kubernetes_pod_uid - __meta_kubernetes_pod_container_name target_label: __path__ separator: / replacement: /var/log/pods/*$1/*.log # Talos system logs (if mounted) - job_name: talos-system static_configs: - targets: - localhost labels: job: talos-system __path__: /var/log/containers/*.log