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 сервиса.

Ingress‘у Graylog‘а скажем, чтобы он не логировал обращения к себе, в «annotations» нужно добавить:

nginx.ingress.kubernetes.io/enable-access-log: "false"

Метки: Метки

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии