мета-данные страницы
  •  

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
manuals:monitoring_install [2024/06/24 13:03] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1manuals:monitoring_install [2024/06/24 13:03] (текущий) – ↷ Страница перемещена из monitoring_install в manuals:monitoring_install Администратор
Строка 1: Строка 1:
 +====== Делаем свой сервер сбора логов на основе Grafana Loki ======
  
 +Для Grafana loki буду использовать ОС CentOS 8.5.2111
 +
 +Если в системе у вас отсутствует пакет позволяющий скачивать файлы, то выполните команду
 +
 +<code>yum install git wget</code>
 +
 +===== Для компиляции исходника необходимо установить Golang =====
 +Можно перейти на их сайт и скопировать ссылку на актуальную версию
 +Затем выполнить команду
 +
 +<code>wget https://go.dev/dl/go1.19.3.linux-amd64.tar.gz</code>
 +
 +Нужно распаковать архив
 +
 +<code>tar -v -C /usr/local -xzf go*.tar.gz</code>
 +
 +Далее редактируем файл
 +
 +<code>nano /etc/profile</code>
 +
 +добавив внизу строку 
 +
 +<code>export PATH=$PATH:/usr/local/go/bin</code>
 +
 +Выполняем команду
 +
 +<code>export PATH=$PATH:/usr/local/go/bin</code>
 +
 +Проверяем, что go установлен
 +
 +<code>go version</code>
 +
 +{{:pasted:20230602-123645.png?nolink}}
 +
 +===== Настраиваем Firewall =====
 +
 +Открываем нужный нам порт для запуска loki
 +
 +<code>firewall-cmd --permanent --add-port=3100/tcp</code>
 +
 +<code>firewall-cmd --reload</code>
 +
 +Отключаем SELinux т.к. он в нашем случае не понадобится
 +
 +<code>setenforce 0</code>
 +
 +<code>sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config</code>
 +
 +===== Начинаем процесс установки loki =====
 +
 +Переходим в каталог
 +
 +<code>cd /usr/src/</code>
 +
 +Загружаем исходники
 +
 +<code>git clone https://github.com/grafana/loki</code>
 +
 +Переходим в скачанный каталог
 +
 +<code>cd loki</code>
 +
 +Запускаем компиляцию
 +
 +<code>go build ./cmd/loki</code>
 +
 +Появится файл loki — перенесем его в другой каталог
 +
 +<code>mv loki /usr/local/bin/</code>
 +
 +Далее нужно создать каталог
 +
 +<code>mkdir /etc/loki</code>
 +
 +и закинуть туда конфиг
 +
 +<code>mv cmd/loki/loki-local-config.yaml /etc/loki/</code>
 +
 +Нужно подкорректировать /tmp — Делаем командами
 +
 +<code>sed -i 's/\/tmp\/wal/\/opt\/loki\/wal/g' /etc/loki/loki-local-config.yaml</code>
 +
 +<code>sed -i 's/\/tmp\/loki/\/opt\/loki/g' /etc/loki/loki-local-config.yaml</code>
 +
 +Создаем каталог
 +
 +<code>mkdir /opt/loki</code>
 +
 +===== Тестируем запуск =====
 +
 +<code>/usr/local/bin/loki -config.file=/etc/loki/loki-local-config.yaml</code>
 +
 +В браузере переходим по адресу 
 +<code>http://ВашIP:3100/metrics</code> 
 +
 +<note>где ВашIP — IP-адрес сервера grafana loki</note>
 +
 +Если видим нечто подобное, то все супер
 +
 +{{:pasted:20230602-125024.png?nolink}}
 +
 +===== Делаем автозапуск нашего сервиса =====
 +
 +Создаем специально для этих целей пользователя и даем нужные права на запуск
 +
 +<code>useradd --no-create-home --shell /bin/false loki</code>
 +
 +<code>chown loki:loki /usr/local/bin/loki</code>
 +
 +<code>chown -R loki:loki /etc/loki</code>
 +
 +<code>chown -R loki:loki /opt/loki</code>
 +
 +Добавляем отдельный юнит для автозапуска
 +
 +<code>nano /etc/systemd/system/loki.service</code>
 +
 +Содержимое файла должно быть таким
 +<code>
 +[Unit]
 +Description=Grafana Loki Service
 +After=network.target
 +
 +[Service]
 +User=loki
 +Group=loki
 +Type=simple
 +ExecStart=/usr/local/bin/loki -config.file=/etc/loki/loki-local-config.yaml
 +ExecReload=/bin/kill -HUP $MAINPID
 +Restart=on-failure
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +
 +Перезапускаем конфигурацию
 +
 +<code>systemctl daemon-reload</code>
 +
 +Разрешаем автозапуск
 +
 +<code>systemctl enable loki --now</code>
 +
 +Проверяем статус
 +
 +<code>systemctl status loki</code>
 +
 +Если видим подобное, то радуемся и движемся дальше
 +
 +{{:pasted:20230602-125730.png?nolink}}
 +
 +Закончили настройку серверной части.
 +
 +===== Переходим к настройке визуальной части и сбору самих логов =====
 +
 +устанавливаем недостающие компоненты
 +
 +<code>yum install unzip wget</code>
 +
 +Устанавливаем и настраиваем promtail, он позволяет читать и отправлять логи на сервер. 
 +
 +Скачиваем архив с программой
 +
 +<code>wget https://github.com/grafana/loki/releases/latest/download/promtail-linux-amd64.zip</code>
 +
 +Распаковываем и переносим в другой каталог 
 +
 +<code>unzip promtail-linux-amd64.zip</code>
 +
 +<code>mv promtail-linux-amd64 /usr/local/bin/promtail</code>
 +
 +Нужно создать каталог для конфигов
 +
 +<code>mkdir /etc/promtail</code>
 +
 +Теперь создаем сам конфиг и наполняем его
 +
 +<code>nano /etc/promtail/promtail.yaml</code>
 +
 +Должно быть в файле
 +<code>
 +server:
 +  http_listen_port: 9080
 +  grpc_listen_port: 0
 +
 +positions:
 +  filename: /tmp/positions.yaml
 +
 +clients:
 +  - url: http://ВашIP:3100/loki/api/v1/push
 +</code>
 +<note>где ВашIP - адрес вашего сервера loki</note>
 +
 +Теперь создаем юнит для автозапуска
 +
 +<code>nano /etc/systemd/system/promtail.service</code>
 +
 +Содержимое файла должно быть
 +<code>
 +[Unit]
 +Description=Promtail Service
 +After=network.target
 +
 +[Service]
 +Type=simple
 +ExecStart=/usr/local/bin/promtail -config.file=/etc/promtail/promtail.yaml
 +ExecReload=/bin/kill -HUP $MAINPID
 +Restart=on-failure
 +
 +[Install]
 +WantedBy=multi-user.target
 +</code>
 +Перезапускаем конфигурацию
 +
 +<code>systemctl daemon-reload</code>
 +
 +Включаем автозагрузку
 +
 +<code>systemctl enable promtail --now</code>
 +
 +Смотрим статус
 +
 +<code>systemctl status promtail</code>
 +
 +Если видим такое, двигаемся дальше
 +
 +{{:pasted:20230602-133848.png?nolink}}
 +
 +Открываем нужный нам порт для запуска promtail
 +
 +<code>firewall-cmd --permanent --add-port=9080/tcp</code>
 +<code>firewall-cmd --reload</code>
 +
 +Проверяем в браузере работу promtail 
 +<code>http://ВашIP:9080/targets</code>
 +
 +Видим нечто подобное? Все супер
 +
 +{{:pasted:20230602-134213.png?nolink}}
 +
 +<note important>Важное упоминание, promtail нужно установить на все линуксовые машины с которых вы планируете собирать логи</note>
 +
 +Для сбора логов нужно внести в конфиг информацию о том что и как собираем
 +
 +открываем конфиг 
 +
 +<code>nano /etc/promtail/promtail.yaml</code>
 +
 +и добавляем туда строки. Показываю пример на сборе логов с сервера loki
 +<code>
 +# Чтение логов с сервера Loki
 +# Имя задания чтения лога
 +- job_name: loki_srv
 +  static_configs:
 +# ПК с которого читается лог
 +  - targets:
 +      - localhost
 +    labels:
 +# Метка для имени задания
 +      job: loki_srv
 +# Путь к файлу с логами
 +      __path__: /var/log/rsyslog/Loki/*log
 +</code>
 +
 +В данный конфигурационный файл добавляем все серверы и сетевое оборудование откуда вы планируете собирать логи по принципе как я написал выше
 +
 +После каждого изменения файла делаем его перезагрузку
 +
 +<code>systemctl restart promtail</code>
 +
 +Затем проверяем в браузере отображение
 +
 +<code>http://ВашIP:9080/targets</code>
 +
 +Если видим подбное, то вы справились с задачей
 +
 +{{:pasted:20230602-135028.png?nolink}}
 +
 +===== Переходим к этапу установки самой Grafana =====
 +
 +Нужно создать репозиторий откуда и будет производится установка
 +
 +<code>nano /etc/yum.repos.d/grafana.repo</code>
 +
 +содержимое файла
 +<code>
 +[grafana]
 +name=grafana
 +baseurl=https://packages.grafana.com/oss/rpm
 +repo_gpgcheck=1
 +enabled=1
 +gpgcheck=1
 +gpgkey=https://packages.grafana.com/gpg.key
 +sslverify=1
 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt
 +</code>
 +Устанавливаем
 +
 +<code>yum install grafana</code>
 +
 +Открываем нужный нам порт для запуска grafana
 +
 +<code>firewall-cmd --permanent --add-port=3000/tcp</code>
 +
 +<code>firewall-cmd --reload</code>
 +
 +Включаем автозагрузку
 +
 +<code>systemctl enable grafana-server</code>
 +
 +Стартуем сервер
 +
 +<code>systemctl start grafana-server</code>
 +
 +Т.к сейчас проблема с доступом на сайт grafana
 +Обойти проблему можно через VPN и скачать rpm пакет напрямую и установить его
 +
 +<code>wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.3.0-1.x86_64.rpm</code>
 +
 +<code>yum install /home/grafana-9.3.0-1.x86_64.rpm</code>
 +
 +<note>Где /home/ путь куда вы скачали файл</note>
 +
 +Переходим к финальной стадии, настройка веб интерфейса
 +
 +Переходим в браузере по ссылке
 +
 +<code>http://ВашIP:3000/</code>
 +
 +<note>ВашIP - сервер где установлена grafana</note>
 +
 +Вводим логин и пароль admin, система потребует сменить пароль, если не потребует, изменить его можно в настройках внутри веб интерфейса
 +
 +Переходим по пути
 +
 +{{:pasted:20230602-140354.png?nolink}}
 +
 +Добавляем источник
 +
 +{{:pasted:20230602-140423.png?nolink}}
 +
 +Находим там loki
 +
 +{{:pasted:20230602-140439.png?nolink}}
 +
 +Вводим адрес сервера
 +
 +{{:pasted:20230602-140638.png?nolink}}
 +
 +и сохраняем
 +
 +Если получили сообщение
 +
 +{{:pasted:20230602-140719.png?nolink}}
 +
 +То все супер и теперь вы можете видеть логи
 +
 +{{:pasted:20230602-141119.png?nolink}}
 +
 +
 +{{:pasted:20230605-101200.png?nolink}}