
В этой статье мы узнаем, как пересылать логи в 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 в источники APT.
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

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

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

Запустите и включите службу Grafana.
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

если все работает нормально и служба запущена, запустите grafana, запустив ваш Public IP:3000
, который является портом grafana по умолчанию в searchbar.
Вы увидите страницу входа в пользовательский интерфейс grafana (UI)
Grafana имеет admin
в качестве имени пользователя и пароля по умолчанию.

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

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

Шаг #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 -

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

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

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

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

Теперь давайте настроим Loki. Создайте каталоги данных, необходимые для Loki.
sudo mkdir -p /data/loki

Скачайте файл конфигурации шаблона для 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

Откройте файл конфигурации для редактирования.
sudo vim /etc/loki-local-config.yaml

Измените его, как показано ниже. Укажите свой публичный 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

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

добавьте в него следующее содержимое.
[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

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

Запустите службу Loki
sudo systemctl start loki.service

включите его.
sudo systemctl enable loki.service

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

Шаг #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 -

Распакуйте загруженный zip-файл
unzip promtail-linux-amd64.zip

переместите бинарный файл в /usr/local/bin
.
sudo mv promtail-linux-amd64 /usr/local/bin/promtail

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

Отредактируйте файл конфигурации YAML для Promtail в папке /etc
директории.
sudo vim /etc/promtail-local-config.yaml

Измените его, как показано ниже. Укажите свой публичный 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

Создайте файл службы systemd для Promtail.
sudo nano /etc/systemd/system/promtail.service

добавьте в него следующее содержимое.
[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

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

Запустите службу Promtail.
sudo systemctl start promtail.service

Включите службу Promtail.
sudo systemctl enable promtail.service

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

Шаг #4:Настройте источник данных Loki в Grafana
До этого момента мы установили Grafana. Loki и Promtail в нашей системе. Так что давайте настроим loki и начнем визуализировать данные в Grafana.
На главной панели выберите Источник данных с сайта Соединения.

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

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

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

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

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

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

Существуют стартеры запросов Log и стартеры запросов Metric.
Здесь мы выберем первый из Log query starters.
{} | logfmt | __error__=``

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

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

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