Kaynağa Gözat

devenv: send nginx logs to loki in ha test

Marcus Efraimsson 6 yıl önce
ebeveyn
işleme
e61616d829

+ 7 - 0
devenv/docker/ha_test/docker-compose.yaml

@@ -7,6 +7,13 @@ services:
       - "80:80"
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
+    depends_on:
+      db:
+        condition: service_healthy
+    logging:
+      driver: "fluentd"
+      options:
+        tag: nginx
 
   db:
     image: mysql:5.6

+ 34 - 1
devenv/docker/ha_test/fluentd/fluentd.conf

@@ -17,7 +17,16 @@
   remove_key_name_field true
 </filter>
 
-<filter grafana>
+<filter nginx>
+  @type parser
+  format /^.*m(?<host>[^ ]*) (?<remote>[^ ]*) \- \- \[(?<time>[^\]]*)\] \"(?<method>\S+)(?: +(?<path>[^\"]*) +\S*)?\" (?<code>[^ ]*) (?<size>[^ ]*)(?: \"(?<referer>[^\"]*)\" \"(?<agent>[^\"]*)\")?$/
+  time_format %d/%b/%Y:%H:%M:%S %z
+  key_name log
+  reserve_data true
+  remove_key_name_field true
+</filter>
+
+<filter **>
   @type record_transformer
   remove_keys "source,t"
 </filter>
@@ -37,4 +46,28 @@
     flush_at_shutdown true
     buffer_chunk_limit 1m
   </store>
+</match>
+
+<filter nginx>
+  @type record_transformer
+  <record>
+    lvl "info"
+  </record>
+</filter>
+
+<match nginx>
+  @type copy
+  <store>
+    @type stdout
+    output_type json
+  </store>
+  <store>
+    @type loki
+    url "http://loki:3100"
+    extra_labels {"app":"nginx"}
+    label_keys "container_name,container_id"
+    flush_interval 10s
+    flush_at_shutdown true
+    buffer_chunk_limit 1m
+  </store>
 </match>