Скачаем следующий контент пак
В 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"