Graylog — Kubernetes Ingress Nginx

Скачаем следующий контент пак

В Graylog'е перейдем в "Systems" - "Content Packs", нажмем на "Import content pack" - "Browse...", укажем наш JSON файл с контент паком, и жмем "Upload".

Затем в "Select content packs" открываем "Web Servers", находим там "nginx" и жмем на него, дальше в правой части экрана, где описание контент пака применяем его - "Apply".

Для успешного сбора логов, должен быть настроен сервис Kubernetes для Graylog контейнера на порты 12301 и 12302 UDP.

ConfigMap Ingress'а приводим к следующему виду:

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-configuration
  namespace: ingress-staging
  labels:
    app.kubernetes.io/name: ingress-staging
    app.kubernetes.io/part-of: ingress-staging
data:
  use-proxy-protocol: "true"
  enable-access-log: "true"
  http-snippet: |
    log_format graylog2_format '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for" <msec=$msec|connection=$connection|connection_requests=$connection_requests|millis=$request_time>';
    access_log syslog:server=graylog-svc.staging.svc.cluster.local:12301 graylog2_format;
    error_log syslog:server=graylog-svc.staging.svc.cluster.local:12302;

В данном примере у меня обращение к Graylog'у происходит по FQDN Kubernetes сервиса.

IngressGraylog'а скажем, чтобы он не логировал обращения к себе, в "annotations" нужно добавить:

nginx.ingress.kubernetes.io/enable-access-log: "false"
0 0 vote
Article Rating

Метки: Метки

Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments