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 "(1|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