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