Раскрытие возможностей Loki и Promtail: фильтрация, удаление и экспорт совпадений журнала с помощью Regex

В сегодняшней быстро меняющейся цифровой среде эффективное управление журналами имеет важное значение для устранения неполадок и получения информации о поведении системы. Loki и Promtail, два мощных инструмента в экосистеме с открытым исходным кодом, предоставляют надежное решение для сбора, фильтрации и анализа журналов. В этой статье мы рассмотрим различные методы фильтрации, удаления и экспорта совпадений журналов с использованием регулярных выражений с Loki и Promtail, что позволит вам использовать весь потенциал этих инструментов.

Метод 1: базовое сопоставление журналов с помощью регулярного выражения
Регулярное выражение, сокращение от регулярных выражений, — это мощный язык сопоставления с образцом, используемый для идентификации конкретных записей журнала. Начнем с простого примера использования регулярного выражения для сопоставления записей журнала, содержащих слово «ошибка» в поле сообщения:

# promtail-config.yml
scrape_configs:
  - job_name: myapp
    static_configs:
      - targets:
          - localhost
    pipeline_stages:
      - match:
          selector: '{job="myapp"}'
          stages:
            - regex:
                expression: 'error'

Метод 2: расширенная фильтрация журналов с помощью Regex
Regex позволяет выполнять более расширенную фильтрацию журналов путем сопоставления определенных шаблонов или извлечения данных из записей журнала. Допустим, мы хотим отфильтровать записи журнала, содержащие IP-адреса в поле сообщения:

# promtail-config.yml
scrape_configs:
  - job_name: myapp
    static_configs:
      - targets:
          - localhost
    pipeline_stages:
      - match:
          selector: '{job="myapp"}'
          stages:
            - regex:
                expression: '(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'
                source: message
                action: drop

Метод 3: экспорт совпадений журналов во внешние системы
Loki и Promtail обеспечивают плавную интеграцию с различными внешними системами для экспорта совпадений журналов. Например, давайте экспортируем записи журнала, соответствующие определенному шаблону, в канал Slack:

# promtail-config.yml
scrape_configs:
  - job_name: myapp
    static_configs:
      - targets:
          - localhost
    pipeline_stages:
      - match:
          selector: '{job="myapp"}'
          stages:
            - regex:
                expression: 'important'
                source: message
                action: export
                exporter: slack
                exporter_config:
                  channel: '#myapp-logs'
                  token: 'YOUR_SLACK_TOKEN'

Loki и Promtail — бесценные инструменты для управления журналами, а использование их возможностей регулярных выражений расширяет возможности фильтрации и экспорта журналов. Используя регулярное выражение, вы можете точно сопоставлять записи журнала, удалять ненужные журналы и экспортировать соответствующие совпадения во внешние системы. Независимо от того, устраняете ли вы проблемы или получаете ценную информацию, фильтрация регулярных выражений с помощью Loki и Promtail позволяет вам эффективно управлять журналами в динамической среде.