From 1413bb7683531ed041aa92de79c1f3f6254306a3 Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 21 Nov 2025 11:08:24 +0000 Subject: [PATCH] Update 6 files - /group_vars/all.yml - /roles/loki/templates/docker-compose.yml.j2 - /roles/loki/templates/promtail-config.yml.j2 - /roles/loki/tasks/main.yml - /roles/grafana/templates/docker-compose.yml.j2 - /roles/grafana/templates/loki-datasource.yml.j2 --- group_vars/all.yml | 14 +++-- roles/grafana/templates/docker-compose.yml.j2 | 4 +- .../grafana/templates/loki-datasource.yml.j2 | 2 +- roles/loki/tasks/main.yml | 10 ---- roles/loki/templates/docker-compose.yml.j2 | 4 +- roles/loki/templates/promtail-config.yml.j2 | 55 +++++++------------ 6 files changed, 36 insertions(+), 53 deletions(-) diff --git a/group_vars/all.yml b/group_vars/all.yml index 8556673..646286e 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -42,9 +42,11 @@ monitoring_groups: monitoring_ports: node_exporter: 9100 cadvisor: 8080 - proxmox_exporter: 9223 + proxmox_exporter: 9221 vmagent: 8429 victoriametrics: 8428 + loki: 3100 + promtail: 9080 proxmox_node: "Olimp" admin_user: root @@ -257,8 +259,12 @@ grafana_root_url: https://mon.zailon.ru # ------------ Loki------------ loki_base_dir: "/mnt/loki" loki_config_dir: "{{ loki_base_dir }}/config" -loki_data_dir: "{{ loki_base_dir }}/data" -promtail_config_dir: "{{ loki_base_dir }}/promtail" -loki_port: 3100 +loki_data_dir: "{{ loki_base_dir }}/data"0 +loki_server_host: "{{ server_ips.manage }}" +loki_server_port: "{{ monitoring_ports.loki }}" # 3100 loki_version: "2.9.2" loki_retention_days: 30 + +# ------------ Promtail ------------ +promtail_config_dir: "/etc/promtail" +promtail_data_dir: "/var/lib/promtail" \ No newline at end of file diff --git a/roles/grafana/templates/docker-compose.yml.j2 b/roles/grafana/templates/docker-compose.yml.j2 index 28562f0..978979a 100644 --- a/roles/grafana/templates/docker-compose.yml.j2 +++ b/roles/grafana/templates/docker-compose.yml.j2 @@ -10,7 +10,7 @@ services: volumes: - {{ grafana_vm_data_dir }}:/storage ports: - - "{{ victoriametrics_port | default(8428) }}:8428" + - "{{ monitoring_ports.victoriametrics }}:8428" networks: - monitoring @@ -27,7 +27,7 @@ services: - {{ grafana_vmagent_config }}:/config/vmagent.yaml:ro - {{ grafana_vmagent_tmp_dir }}:/tmpData ports: - - "8429:8429" # Для мониторинга самого vmagent + - "{{ monitoring_ports.vmagent }}:8429" depends_on: - victoriametrics networks: diff --git a/roles/grafana/templates/loki-datasource.yml.j2 b/roles/grafana/templates/loki-datasource.yml.j2 index c17fac6..b36ff5a 100644 --- a/roles/grafana/templates/loki-datasource.yml.j2 +++ b/roles/grafana/templates/loki-datasource.yml.j2 @@ -4,7 +4,7 @@ datasources: - name: Loki type: loki access: proxy - url: http://localhost:45135 + url: http://loki:3100 isDefault: false version: 1 editable: true diff --git a/roles/loki/tasks/main.yml b/roles/loki/tasks/main.yml index a145d77..0c07aee 100644 --- a/roles/loki/tasks/main.yml +++ b/roles/loki/tasks/main.yml @@ -97,16 +97,6 @@ delay: 10 become: no -- name: Verify Loki is responding - uri: - url: "http://{{ ansible_default_ipv4.address }}:{{ loki_port }}/ready" - status_code: 200 - timeout: 15 - register: loki_ready_check - become: no - retries: 3 - delay: 10 - - name: Show Loki status debug: msg: "Loki is running and responding on port {{ loki_port }}" diff --git a/roles/loki/templates/docker-compose.yml.j2 b/roles/loki/templates/docker-compose.yml.j2 index b8ce4e0..c99efa4 100644 --- a/roles/loki/templates/docker-compose.yml.j2 +++ b/roles/loki/templates/docker-compose.yml.j2 @@ -5,7 +5,7 @@ services: restart: unless-stopped user: "10001:10001" ports: - - "{{ loki_port }}:3100" + - "{{ monitoring_ports.loki }}:3100" command: -config.file=/etc/loki/loki-config.yml volumes: - "{{ loki_data_dir }}:/loki" @@ -22,7 +22,7 @@ services: image: grafana/promtail:{{ loki_version }} container_name: promtail restart: unless-stopped - user: "0" # root для доступа к системным логам + user: "0" command: -config.file=/etc/promtail/promtail-config.yml volumes: - "{{ promtail_config_dir }}:/etc/promtail" diff --git a/roles/loki/templates/promtail-config.yml.j2 b/roles/loki/templates/promtail-config.yml.j2 index 22071f9..10b1ab8 100644 --- a/roles/loki/templates/promtail-config.yml.j2 +++ b/roles/loki/templates/promtail-config.yml.j2 @@ -1,12 +1,12 @@ server: - http_listen_port: 9080 + http_listen_port: {{ monitoring_ports.promtail }} grpc_listen_port: 0 positions: - filename: /tmp/positions.yaml + filename: {{ promtail_data_dir }}/positions.yaml clients: - - url: http://loki:3100/loki/api/v1/push + - url: http://{{ loki_server_host }}:{{ loki_server_port }}/loki/api/v1/push scrape_configs: - job_name: system @@ -18,23 +18,14 @@ scrape_configs: host: "{{ inventory_hostname }}" __path__: /var/log/*log - - job_name: containers + - job_name: auth static_configs: - targets: - localhost labels: - job: container-logs + job: auth host: "{{ inventory_hostname }}" - __path__: /var/lib/docker/containers/*/*log - - - job_name: docker-daemon - static_configs: - - targets: - - localhost - labels: - job: docker-daemon - host: "{{ inventory_hostname }}" - __path__: /var/log/docker.log + __path__: /var/log/auth.log - job_name: syslog static_configs: @@ -45,24 +36,6 @@ scrape_configs: host: "{{ inventory_hostname }}" __path__: /var/log/syslog - - job_name: auth - static_configs: - - targets: - - localhost - labels: - job: auth - host: "{{ inventory_hostname }}" - __path__: /var/log/auth.log - - - job_name: ansible - static_configs: - - targets: - - localhost - labels: - job: ansible - host: "{{ inventory_hostname }}" - __path__: /var/log/ansible/*log - - job_name: kernel static_configs: - targets: @@ -70,4 +43,18 @@ scrape_configs: labels: job: kernel host: "{{ inventory_hostname }}" - __path__: /var/log/kern.log \ No newline at end of file + __path__: /var/log/kern.log + + - job_name: docker + static_configs: + - targets: + - localhost + labels: + job: container-logs + host: "{{ inventory_hostname }}" + __path__: /var/lib/docker/containers/*/*log + relabel_configs: + - source_labels: ['__path__'] + target_label: container_name + regex: '/var/lib/docker/containers/([^/]*)/.*log' + replacement: '$1' \ No newline at end of file