305 lines
10 KiB
YAML
305 lines
10 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/instance: k8s
|
|
app.kubernetes.io/component: exporter
|
|
app.kubernetes.io/name: grafana-agent
|
|
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
|
app.kubernetes.io/part-of: {{ $.Chart.Name }}
|
|
app.kubernetes.io/version: {{ $.Chart.Version }}
|
|
name: grafana-agent
|
|
namespace: monitoring
|
|
data:
|
|
agent.yaml: |
|
|
metrics:
|
|
wal_directory: /tmp/wal
|
|
|
|
logs:
|
|
# Choose a directory to save the last read position of log files at.
|
|
# This directory will be created if it doesn't already exist.
|
|
positions_directory: "/tmp"
|
|
|
|
configs:
|
|
|
|
- name: journal
|
|
clients:
|
|
- url: http://{{ .Values.nfc_monitoring.loki.service_name }}.{{ .Values.nfc_monitoring.loki.namespace }}.svc.{{ .Values.nfc_monitoring.kubernetes.cluster_dns_name }}:{{ .Values.nfc_monitoring.loki.service_port }}/loki/api/v1/push
|
|
scrape_configs:
|
|
|
|
- job_name: systemd-journal
|
|
journal:
|
|
labels:
|
|
job: node-journal
|
|
path: /host/root/run/log/journal
|
|
json: true
|
|
relabel_configs:
|
|
|
|
- source_labels:
|
|
- __journal__systemd_unit
|
|
target_label: systemd_unit
|
|
- source_labels:
|
|
- __journal__hostname
|
|
target_label: node
|
|
- source_labels:
|
|
- __journal_syslog_identifier
|
|
target_label: syslog_identifier
|
|
- target_label: "job_name"
|
|
replacement: "journal"
|
|
|
|
pipeline_stages:
|
|
- json:
|
|
expressions:
|
|
pid: _PID
|
|
userId: _UID
|
|
application: _COMM
|
|
priority: PRIORITY
|
|
|
|
- labels:
|
|
application:
|
|
#level:
|
|
pid:
|
|
userId:
|
|
priority:
|
|
- template:
|
|
source: level
|
|
template: '{{"{{"}} ToLower .Value {{"}}"}}'
|
|
- match:
|
|
selector: '{priority="7"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'debug'
|
|
- match:
|
|
selector: '{priority="6"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'info'
|
|
- match:
|
|
selector: '{priority="5"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'notice'
|
|
- match:
|
|
selector: '{priority="4"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'warning'
|
|
- match:
|
|
selector: '{priority="3"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'error'
|
|
- match:
|
|
selector: '{priority="2"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'crit'
|
|
- match:
|
|
selector: '{priority="1"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'alert'
|
|
- match:
|
|
selector: '{priority="0"}'
|
|
stages:
|
|
- template:
|
|
source: level
|
|
template: 'emerg'
|
|
- labels:
|
|
level:
|
|
|
|
# - job_name: varlogs
|
|
# static_configs:
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# # cluster: dev
|
|
# job: 'container logs'
|
|
# __path__: /var/log/pods/*/*/*.log
|
|
# pipeline_stages:
|
|
# - json:
|
|
# expressions:
|
|
# namespace: namespace
|
|
# level: level
|
|
# - regex:
|
|
# source: filename
|
|
# # expression: '/var/log/pods/(.+)/(?P<pod>.+)/(*.log)'
|
|
# # expression: '/var/log/pods/.+/(?P<pod>\\S+?)'
|
|
# #expression: '/var/log/pods/.+/(?P<pod>\\S+?)/*.log'
|
|
# #expression: '/var/log/pods/.+/(?P<pod>\S+?)/*.log'
|
|
# expression: '/var/log/pods/.+/(?P<container>\S+?)/.+log'
|
|
# - regex:
|
|
# source: filename
|
|
# expression: '/var\/log\/pods\/.*_(?P<pod>\S+?)_.*\/.+\/.+log'
|
|
# - regex:
|
|
# source: filename
|
|
# expression: '/var/log/pods/(?P<namespace>\S+?)_.*/.+/.+log'
|
|
# - regex:
|
|
# #source: message
|
|
# expression: '\s?level=(?P<level>\S+)\s+'
|
|
# - regex:
|
|
# #source: message
|
|
# expression: '\s?(?P<level>debug|info|warn|error)\s'
|
|
# - template:
|
|
# source: level
|
|
# template: '{{"{{"}} ToLower .Value {{"}}"}}'
|
|
# - labels:
|
|
# container:
|
|
# level:
|
|
# namespace:
|
|
# pod:
|
|
#relabel_configs:
|
|
|
|
# - source_labels: [__filename__]
|
|
# separator: '/'
|
|
# regex: '/var/log/pods/*/(.*)/*.log'
|
|
# replacement: '${1}'
|
|
# target_label: pod
|
|
# - source_labels: [__filename__]
|
|
# replacement: '/var/log/pods/*/${1}/*.log'
|
|
# target_label: pod
|
|
# - replacement: /var/log/pods/*/${1}/*.log
|
|
# separator: /
|
|
# source_labels:
|
|
# - __meta_kubernetes_pod_uid
|
|
# - __meta_kubernetes_pod_container_name
|
|
# target_label: pod
|
|
|
|
|
|
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# job: varlogs
|
|
# __path__: /var/logs/*
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# job: varlogs
|
|
# __path__: /host/root/var/log/*
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# job: varlogs
|
|
# __path__: /host/root/var/logs/*
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# job: varlogs
|
|
# __path__: /host/root/var/log/containers/*
|
|
# - targets: [localhost]
|
|
# labels:
|
|
# job: varlogs
|
|
# __path__: /host/root/var/log/*/*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- name: kubernetes
|
|
clients:
|
|
- url: http://{{ .Values.nfc_monitoring.loki.service_name }}.{{ .Values.nfc_monitoring.loki.namespace }}.svc.{{ .Values.nfc_monitoring.kubernetes.cluster_dns_name }}:{{ .Values.nfc_monitoring.loki.service_port }}/loki/api/v1/push
|
|
# basic_auth:
|
|
# username: YOUR_LOKI_USERNAME
|
|
# password: YOUR_LOKI_PASSWORD
|
|
external_labels:
|
|
#cluster: dev-cluster
|
|
positions:
|
|
filename: /tmp/kub-positions.yaml
|
|
target_config:
|
|
sync_period: 10s
|
|
scrape_configs:
|
|
- job_name: pod-logs
|
|
|
|
kubernetes_sd_configs:
|
|
- role: pod
|
|
|
|
pipeline_stages:
|
|
- cri: {}
|
|
|
|
- regex:
|
|
#source: msg
|
|
expression: '(\s|\t|level=)?(?P<level>trace|debug|info|warn|error|TRACE|DEBUG|INFO|WARN|ERROR)(\s|\t)'
|
|
|
|
- labels:
|
|
level:
|
|
|
|
relabel_configs:
|
|
- source_labels:
|
|
- __meta_kubernetes_pod_node_name
|
|
target_label: __host__
|
|
- action: labelmap
|
|
regex: __meta_kubernetes_pod_label_(.+)
|
|
- action: replace
|
|
source_labels:
|
|
- __meta_kubernetes_namespace
|
|
target_label: namespace
|
|
- target_label: job
|
|
# source_labels:
|
|
# - __meta_kubernetes_namespace
|
|
replacement: loki/ingester_grafana-agent
|
|
- action: replace
|
|
source_labels:
|
|
- __meta_kubernetes_pod_name
|
|
target_label: pod
|
|
- action: replace
|
|
source_labels:
|
|
- __meta_kubernetes_pod_container_name
|
|
target_label: container
|
|
- replacement: /var/log/pods/*$1/*.log
|
|
separator: /
|
|
source_labels:
|
|
- __meta_kubernetes_pod_uid
|
|
- __meta_kubernetes_pod_container_name
|
|
target_label: __path__
|
|
- target_label: "job_name"
|
|
replacement: "kubernetes_sd"
|
|
|
|
|
|
|
|
integrations:
|
|
|
|
node_exporter:
|
|
enabled: true
|
|
rootfs_path: /host/root
|
|
sysfs_path: /host/sys
|
|
procfs_path: /host/proc
|
|
udev_data_path: /host/root/run/udev/data
|
|
|
|
# collector.filesystem.ignored-mount-points: ^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/pods/.+|/run/containerd/io.containerd.+)($|/)
|
|
filesystem_mount_points_exclude: "^/(dev|proc|sys|var/lib/docker/.+|/run/containerd/io.containerd.+)($|/)"
|
|
filesystem_fs_types_exclude: "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|shm|squashfs|sysfs|tracefs)$"
|
|
|
|
scrape_integration: true
|
|
|
|
include_exporter_metrics: true
|
|
enable_collectors:
|
|
- uname
|
|
|
|
|
|
syslog_server.yaml: |
|
|
# REF: https://grafana.com/docs/loki/latest/send-data/promtail/configuration/#example-syslog-config
|
|
server:
|
|
http_listen_port: 9080
|
|
grpc_listen_port: 0
|
|
|
|
positions:
|
|
filename: /tmp/syslog_server_positions.yaml
|
|
|
|
clients:
|
|
- url: http://{{ .Values.nfc_monitoring.loki.service_name }}.{{ .Values.nfc_monitoring.loki.namespace }}.svc.{{ .Values.nfc_monitoring.kubernetes.cluster_dns_name }}:{{ .Values.nfc_monitoring.loki.service_port }}/loki/api/v1/push
|
|
|
|
scrape_configs:
|
|
- job_name: syslog
|
|
syslog:
|
|
listen_address: 0.0.0.0:1514
|
|
labels:
|
|
job: "syslog"
|
|
relabel_configs:
|
|
- source_labels: ['__syslog_message_hostname']
|
|
target_label: 'host'
|