diff --git a/cookbooks/nginx/templates/etc/promtail/nginx.yaml b/cookbooks/nginx/templates/etc/promtail/nginx.yaml new file mode 100644 index 0000000..5e14af3 --- /dev/null +++ b/cookbooks/nginx/templates/etc/promtail/nginx.yaml @@ -0,0 +1,79 @@ +server: + disable: true + +positions: + filename: /var/opt/promtail/promtail_nginx_position.yaml + +clients: + - url: http://<%= @LOKIENDPOINT %>/loki/api/v1/push + + +scrape_configs: + - job_name: nginx-access + static_configs: + - targets: + - localhost + labels: + job: nginx + hostname: <%= @HOSTNAME %> + __path__: /var/log/nginx/*access.log + + pipeline_stages: + - match: + selector: '{job="nginx"}' + stages: + - regex: + expression: "^time:(?P[^\t]+)\thost:(?P[^\t]+)\tforwardedfor:(?P[^\t]+)\tmethod:(?P[^\t]+)\tpath:(?P[^\t]+)\tprotocol:(?P[^\t]+)\tstatus:(?P[^\t]+)\tsize:(?P[^\t]+)\treferer:(?P[^\t]+)\tua:(?P[^\t]+)\ttaken_sec:(?P[^\t]+)\tbackend:(?P[^\t]+)\tbackend_status:(?P[^\t]+)\tcache:(?P[^\t]+)\tbackend_runtime:(?P[^\t]+)\tvhost:(?P[^\t]+)$" + + - timestamp: + source: timestamp + format: 02/Jan/2006:15:04:05 -0700 + + - template: + source: level + template: '{{ .status }}' + + - template: + source: level + template: '{{ regexReplaceAllLiteral "(2|3)[0-9]+" .Value "info" }}' + + - template: + source: level + template: '{{ regexReplaceAllLiteral "4[0-9]+" .Value "warning" }}' + + - template: + source: level + template: '{{ regexReplaceAllLiteral "5[0-9]+" .Value "error" }}' + + - labels: + hostname: + level: + vhost: + + - job_name: nginx-error + static_configs: + - targets: + - localhost + labels: + job: nginx + hostname: <%= @HOSTNAME %> + level: error + __path__: /var/log/nginx/*error.log + + pipeline_stages: + - match: + selector: '{job="nginx"}' + stages: + - regex: + expression: '^(?P[0-9\/]+ [0-9:]+) \[(?P[^ ]+)\] (?P.+), host: "(?P[^"]+)"(?P.*)$' + + - timestamp: + source: timestamp + format: 2006/01/02 15:04:05 + location: Asia/Tokyo + + - labels: + vhost: + + - output: + source: message