Пост

Устанавливаем Promtail в CentOS / Debian

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

Добавляем системного пользователя, от которого будет работать Promtail

1
$ sudo useradd -r -M -s /bin/false promtail

Скачиваем promtail

1
2
$ cd /usr/local/bin
$ sudo curl -O -L https://github.com/grafana/loki/releases/download/v2.0.0/promtail-linux-amd64.zip

Распаковываем

1
$ sudo unzip promtail-linux-amd64.zip

Удаляем архив

1
$ sudo rm promtail-linux-amd64.zip

Делам файл исполняемым

1
$ sudo chmod a+x "promtail-linux-amd64"

Меняем владельца

1
$ sudo chown promtail:promtail promtail-linux-amd64

Создаем конфигурационный файл, либо скачиваем готовый

1
$ wget https://raw.githubusercontent.com/grafana/loki/master/cmd/promtail/promtail-local-config.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ sudo nano config-promtail.yml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://127.0.0.1:3100/loki/api/v1/push
#    basic_auth:
#      username: user
#      password: pass

scrape_configs:
  - job_name: system
    static_configs:
    - targets:
        - localhost
      labels:
        job: varlogs
        __path__: /var/log/*log

  - job_name: journal
    journal:
      max_age: 12h
      labels:
        job: systemd-journal
    relabel_configs:
      - source_labels: ['__journal__systemd_unit']
        target_label: 'unit'

Меняем владельца конфига

1
$ sudo chown promtail:promtail config-promtail.yml

Создаем Systemd Unit

1
2
3
4
5
6
7
8
9
10
11
12
$ sudo nano /etc/systemd/system/promtail.service
[Unit]
Description=Promtail service
After=network.target

[Service]
Type=simple
User=promtail
ExecStart=/usr/local/bin/promtail-linux-amd64 -config.file /usr/local/bin/config-promtail.yml

[Install]
WantedBy=multi-user.target

Добавляем сервис в автозагрузку и стартуем

1
2
3
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now promtail
$ systemctl status promtail

Проверяем порт 9080

1
$ ss -nltup | grep 9080

Открываем его наружу

1
2
$ sudo firewall-cmd --add-port=9080/tcp  --permanent
$ sudo firewall-cmd --reload

Чтобы дать возможность Promtail читать системный журналы, добавляем пользователя promtail в группу systemd-journal

1
$ sudo usermod -aG systemd-journal promtail

Перезапускаем службу

1
$ sudo systemctl restart promtail
Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.