Оригинал статьи:
Loki — хранилище для логов (prometheus like), т.е. набор компонентов для полноценной системы работы с логами.
Добавляем системного пользователя, от которого будет работать Loki
1 |
$ sudo useradd -r -M -s /bin/false loki |
Скачиваем Loki
1 2 |
$ cd /usr/local/bin $ sudo curl -O -L "https://github.com/grafana/loki/releases/download/v2.0.0/loki-linux-amd64.zip" |
Распаковываем
1 |
$ sudo unzip loki-linux-amd64.zip |
Удаляем архив
1 |
$ sudo rm loki-linux-amd64.zip |
Делам файл исполняемым
1 |
$ sudo chmod a+x "loki-linux-amd64" |
Меняем владельца
1 |
$ sudo chown loki:loki loki-linux-amd64 |
Создаем конфигурационный файл, либо скачиваем готовый
1 |
$ wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
$ sudo nano config-loki.yml auth_enabled: false server: http_listen_port: 3100 ingester: lifecycler: address: 127.0.0.1 ring: kvstore: store: inmemory replication_factor: 1 final_sleep: 0s chunk_idle_period: 5m chunk_retain_period: 30s max_transfer_retries: 0 schema_config: configs: - from: 2018-04-15 store: boltdb object_store: filesystem schema: v11 index: prefix: index_ period: 168h storage_config: boltdb: directory: /tmp/loki/index filesystem: directory: /tmp/loki/chunks limits_config: enforce_metric_name: false reject_old_samples: true reject_old_samples_max_age: 168h chunk_store_config: max_look_back_period: 0s table_manager: retention_deletes_enabled: false retention_period: 0s |
В address: 127.0.0.1 — слушать localhost
В address: 0.0.0.0 указываем прослушивать все доступные интерфейсы.
Меняем владельца конфига
1 |
$ sudo chown loki:loki config-loki.yml |
Создаем Systemd Unit
1 2 3 4 5 6 7 8 9 10 11 12 |
$ sudo nano /etc/systemd/system/loki.service [Unit] Description=Loki service After=network.target [Service] Type=simple User=loki ExecStart=/usr/local/bin/loki-linux-amd64 -config.file /usr/local/bin/config-loki.yml [Install] WantedBy=multi-user.target |
Добавляем сервис в автозагрузку и стартуем
1 2 3 |
$ sudo systemctl daemon-reload $ sudo systemctl enable --now loki $ systemctl status loki |
Смотрим логи сервиса
1 |
$ sudo tail -f /var/log/messages | grep loki |
Проверяем порт 3100, запустился ли Loki
1 |
$ ss -nltup | grep 3100 |
Настраиваем Firewall, открываем порт наружу, если нужно
1 2 |
$ sudo firewall-cmd --add-port=3100/tcp --permanent $ sudo firewall-cmd --reload |
1 |
http://[Your-Server-Domain-or-IP]:3100/metrics |
Дальше останется подключить Loki к системе визуализации Grafana, и установить на сервера, с которых мы хотим снимать логи, агент — Promtail