Как переслать журналы в Grafana Loki с помощью Promtail

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

Предварительные условия

  • Аккаунт AWS с Ubuntu 22.04 LTS EC2 Instance.
  • Базовые знания о сервисах AWS и Grafana.

Шаг #1:Установите Grafana на Ubuntu

Сначала импортируйте ключ GPG, используемый пакетом Grafana.

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Как пересылать журналы в Grafana Loki с помощью Promtail 1

затем добавьте репозиторий Grafana в источники APT.

sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Как пересылать журналы в Grafana Loki с помощью Promtail 2

После добавления репозитория обновите списки пакетов

sudo apt update
Как пересылать журналы в Grafana Loki с помощью Promtail 3

затем установите grafana.

sudo apt install grafana
Как переслать журналы в Grafana Loki с помощью Promtail 4

Запустите и включите службу Grafana.

sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Как переслать журналы в Grafana Loki с помощью Promtail 5

если все работает нормально и служба запущена, запустите grafana, запустив ваш Public IP:3000 , который является портом grafana по умолчанию в searchbar.

Вы увидите страницу входа в пользовательский интерфейс grafana (UI)

Grafana имеет admin в качестве имени пользователя и пароля по умолчанию.

Как следить за Redis с помощью Prometheus и Grafana 19

появится запрос на изменение пароля, вы можете изменить его или пропустить.

Как следить за Redis с помощью Prometheus и Grafana 20

затем вы увидите страницу приветствия Grafana.

Как следить за Redis с помощью Prometheus и Grafana 21

Шаг #2:Установите Grafana Loki на Ubuntu

Теперь давайте загрузим Loki. Чтобы загрузить последнюю версию бинарного файла Grafana Loki, выполните следующую команду.

curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep loki-linux-amd64.zip | wget -i -
Как пересылать журналы в Grafana Loki с помощью Promtail 6

Установите unzip распакуйте загруженный zip-файл.

sudo apt install unzip
Как пересылать журналы в Grafana Loki с помощью Promtail 7

Распакуйте загруженный двоичный файл Loki.

unzip loki-linux-amd64.zip
Как пересылать журналы в Grafana Loki с помощью Promtail 8

Переместите извлеченный двоичный файл в /usr/local/bin/loki.

sudo mv loki-linux-amd64 /usr/local/bin/loki
Как переслать журналы в Grafana Loki с помощью Promtail 9

Подтвердите установку и проверьте установленную версию с помощью loki --version.

loki --version
Как переслать журналы в Grafana Loki с помощью Promtail 10

Теперь давайте настроим Loki. Создайте каталоги данных, необходимые для Loki.

sudo mkdir -p /data/loki
Как пересылать журналы в Grafana Loki с помощью Promtail 11

Скачайте файл конфигурации шаблона для Loki и поместите его в /etc/loki-local-config.yaml.

sudo wget -O /etc/loki-local-config.yaml https://raw.githubusercontent.com/grafana/loki/main/cmd/loki/loki-local-config.yaml
Как переслать журналы в Grafana Loki с помощью Promtail 12

Откройте файл конфигурации для редактирования.

sudo vim /etc/loki-local-config.yaml
Как переслать журналы в Grafana Loki с помощью Promtail 13

Измените его, как показано ниже. Укажите свой публичный IP-адрес

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  instance_addr: 127.0.0.1
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    kvstore:
      store: inmemory

query_range:
  results_cache:
    cache:
      embedded_cache:
        enabled: true
        max_size_mb: 100

schema_config:
  configs:
    - from: 2020-10-24
      store: tsdb
      object_store: filesystem
      schema: v13
      index:
        prefix: index_
        period: 24h

ruler:
  alertmanager_url: http://65.0.92.108:9093
Как переслать журналы в Grafana Loki с помощью Promtail 14

Создайте файл службы systemd для Loki, чтобы управлять ее выполнением.

sudo nano /etc/systemd/system/loki.service
Как переслать логи в Grafana Loki с помощью Promtail 15

добавьте в него следующее содержимое.

[Unit]
Description=Loki service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/loki -config.file /etc/loki-local-config.yaml

[Install]
WantedBy=multi-user.target
Как пересылать журналы в Grafana Loki с помощью Promtail 16

Сохраните файл и перезагрузите демон systemd, чтобы применить изменения.

sudo systemctl daemon-reload
Как пересылать журналы в Grafana Loki с помощью Promtail 17

Запустите службу Loki

sudo systemctl start loki.service
Как пересылать журналы в Grafana Loki с помощью Promtail 18

включите его.

sudo systemctl enable loki.service
Как переслать журналы в Grafana Loki с помощью Promtail 19

Проверьте состояние службы Loki, чтобы убедиться, что она работает правильно.

sudo systemctl status loki.service
Как пересылать журналы в Grafana Loki с помощью Promtail 20

Шаг #3:Установите Promtail Agent на Ubuntu.

Далее необходимо загрузить агент Promtail. Чтобы загрузить последнюю версию бинарного файла Promtail, выполните следующую команду.

curl -s https://api.github.com/repos/grafana/loki/releases/latest | grep browser_download_url |  cut -d '"' -f 4 | grep promtail-linux-amd64.zip | wget -i -
Как пересылать журналы в Grafana Loki с помощью Promtail 21

Распакуйте загруженный zip-файл

unzip promtail-linux-amd64.zip
Как переслать журналы в Grafana Loki с помощью Promtail 22

переместите бинарный файл в /usr/local/bin.

sudo mv promtail-linux-amd64 /usr/local/bin/promtail
Как переслать журналы в Grafana Loki с помощью Promtail 23

Подтвердите установку и проверьте установленную версию.

promtail --version
Как пересылать журналы в Grafana Loki с помощью Promtail 24

Отредактируйте файл конфигурации YAML для Promtail в папке /etc директории.

sudo vim /etc/promtail-local-config.yaml
Как переслать журналы в Grafana Loki с помощью Promtail 25

Измените его, как показано ниже. Укажите свой публичный IP-адрес.

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /data/loki/positions.yaml

clients:
  - url: http://65.0.92.108:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/*log
Как переслать журналы в Grafana Loki с помощью Promtail 26

Создайте файл службы systemd для Promtail.

sudo nano /etc/systemd/system/promtail.service
Как пересылать журналы в Grafana Loki с помощью Promtail 27

добавьте в него следующее содержимое.

[Unit]
Description=Promtail service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/promtail -config.file /etc/promtail-local-config.yaml

[Install]
WantedBy=multi-user.target
Как переслать журналы в Grafana Loki с помощью Promtail 28

сохраните файл и перезагрузите демон systemd, чтобы применить изменения.

sudo systemctl daemon-reload
Как пересылать журналы в Grafana Loki с помощью Promtail 29

Запустите службу Promtail.

sudo systemctl start promtail.service
Как переслать журналы в Grafana Loki с помощью Promtail 30

Включите службу Promtail.

sudo systemctl enable promtail.service
Как переслать журналы в Grafana Loki с помощью Promtail 31

Проверьте состояние службы Promtail, чтобы убедиться, что она работает правильно.

sudo systemctl status promtail.service
Как пересылать журналы в Grafana Loki с помощью Promtail 32

Шаг #4:Настройте источник данных Loki в Grafana

До этого момента мы установили Grafana. Loki и Promtail в нашей системе. Так что давайте настроим loki и начнем визуализировать данные в Grafana.

На главной панели выберите Источник данных с сайта Соединения.

Как переслать журналы в Grafana Loki с помощью Promtail 33

Нажмите на Добавить источник данных.

Как переслать журналы в Grafana Loki с помощью Promtail 34

Выберите Loki в качестве источника данных.

Как переслать журналы в Grafana Loki с помощью Promtail 35

Дайте имя loki и URL, на котором запущена Grafana Loki.

Как переслать логи в Grafana Loki с помощью Promtail 36

Нажмите на Сохранить и проверить.

Как переслать журналы в Grafana Loki с помощью Promtail 37

Вы увидите сообщение об успехе следующего вида Источник данных успешно подключен.

Теперь нажмите на кнопку Исследовать.

Как переслать журналы в Grafana Loki с помощью Promtail 38

Теперь нажмите на запустите свой запрос чтобы ввести запрос Grafana Loki.

Как пересылать журналы в Grafana Loki с помощью Promtail 39

Существуют стартеры запросов Log и стартеры запросов Metric.

Здесь мы выберем первый из Log query starters.

{} | logfmt | __error__=``
Как переслать логи в Grafana Loki с помощью Promtail 40

В фильтрах меток: выберите метку как работа и выберите значение как varlogs

Нажмите на Выполнить запрос справа вверху, чтобы запустить запрос Grafana Loki.

Как переслать журналы в Grafana Loki с помощью Promtail 41

Как видите, вы визуализируете данные/логи в формате графика. Кроме того, журналы отображаются с временными метками.

Как переслать журналы в Grafana Loki с помощью Promtail 42

Заключение:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *