Оглавление
-
Подготовка к установке
-
Установка Promtail
-
Настройка конфигурации
-
Установка службы Windows
-
Проверка работы
-
Решение проблем
Подготовка
Требования
-
Windows сервер с правами администратора
-
Доступ к Loki серверу (http://192.168.1.16:3100)
-
Сетевой доступ на порт 3100
Необходимые файлы
-
Promtail для Windows — скачайте с официального сайта
-
NSSM — для управления службами (скачать)
Установка Promtail
1. Создание рабочей директории
cmd
mkdir C:\Promtail
2. Распаковка файлов
-
Распакуйте
promtail-windows-amd64.exeвC:\Promtail\ -
Распакуйте
nssm.exeвC:\Promtail\
3. Создание дополнительных директорий
cmd
mkdir C:\Promtail\bookmarks
Настройка конфигурации
Создание файла config.yaml
Создайте файл C:\Promtail\config.yaml со следующим содержимым:
yaml
server: http_listen_port: 9080 grpc_listen_port: 0 positions: filename: C:\Promtail\positions.yaml clients: - url: http://192.168.1.16:3100/loki/api/v1/push # Замените на ваш адрес Loki scrape_configs: # Логи Windows Events - job_name: windows-system windows_events: use_incoming_timestamp: false eventlog_name: "System" xpath_query: '*' bookmark_path: "C:\\Promtail\\bookmarks\\system.bookmark" labels: job: windows log_type: system host: windows-server # Замените на имя вашего сервера - job_name: windows-application windows_events: use_incoming_timestamp: false eventlog_name: "Application" xpath_query: '*' bookmark_path: "C:\\Promtail\\bookmarks\\application.bookmark" labels: job: windows log_type: application host: windows-server - job_name: windows-security windows_events: use_incoming_timestamp: false eventlog_name: "Security" xpath_query: '*' bookmark_path: "C:\\Promtail\\bookmarks\\security.bookmark" labels: job: windows log_type: security host: windows-server # Логи IIS (опционально) - job_name: windows-iis static_configs: - targets: [localhost] labels: job: windows log_type: iis host: windows-server __path__: C:\inetpub\logs\LogFiles\**\*.log # Пользовательские логи (опционально) - job_name: windows-custom static_configs: - targets: [localhost] labels: job: windows log_type: custom host: windows-server __path__: C:\logs\*.log
Важные замечания:
-
Замените
192.168.1.16на IP вашего Loki сервера -
Замените
windows-serverна имя вашего сервера -
Пути к bookmark файлам обязательны для работы Windows Events
Установка службы
1. Установка через NSSM
Откройте командную строку с правами администратора и выполните:
cmd
cd C:\Promtail nssm install Promtail
2. Настройка службы в NSSM
В открывшемся окне заполните:
Вкладка «Application»:
-
Path:
C:\Promtail\promtail-windows-amd64.exe -
Startup directory:
C:\Promtail -
Arguments:
-config.file=config.yaml
Вкладка «Details»:
-
Display name:
Promtail Log Collector -
Description:
Collects Windows logs for Grafana Loki
Вкладка «I/O»:
-
Output (stdout):
C:\Promtail\promtail.out.log -
Error (stderr):
C:\Promtail\promtail.err.log
Вкладка «Process»:
-
Priority: Normal
Нажмите «Install service»
3. Запуск службы
cmd
nssm start Promtail
Проверка работы
1. Проверка статуса службы
cmd
nssm status Promtail
2. Просмотр логов службы
cmd
type C:\Promtail\promtail.out.log
3. Проверка сетевого порта
cmd
netstat -an | findstr :9080
4. Проверка в Loki
Откройте Grafana и выполните запросы:
-
Все Windows логи:
{job="windows"} -
Системные логи:
{log_type="system"} -
Логи приложений:
{log_type="application"} -
Логи безопасности:
{log_type="security"}
Управление службой
Команды для управления:
cmd
# Запуск службы nssm start Promtail # Остановка службы nssm stop Promtail # Перезапуск службы nssm restart Promtail # Просмотр статуса nssm status Promtail # Удаление службы nssm remove Promtail
Просмотр логов:
cmd
# Логи stdout type C:\Promtail\promtail.out.log # Логи stderr type C:\Promtail\promtail.err.log
Решение проблем
1. Служба не запускается
cmd
# Проверка конфигурации .\promtail-windows-amd64.exe -config.file=config.yaml -verify-config # Запуск в режиме отладки .\promtail-windows-amd64.exe -config.file=config.yaml -log-level=debug
2. Ошибка с bookmarks
-
Убедитесь, что папка
C:\Promtail\bookmarksсуществует -
Проверьте права доступа к папке
3. Loki недоступен
cmd
# Проверка сети telnet 192.168.1.16 3100 # Или в PowerShell Test-NetConnection 192.168.1.16 -Port 3100
4. Проблемы с правами доступа
cmd
# Даем права на папку Promtail icacls "C:\Promtail" /grant "Everyone:(OI)(CI)F"
5. Проверка журналов Windows
cmd
# Просмотр событий Promtail Get-EventLog -LogName Application -Source "Promtail" -Newest 10
Дополнительная настройка
Для сбора логов с Linux серверов (дополнительно):
Добавьте в scrape_configs:
yaml
- job_name: nginx-sites static_configs: - targets: [localhost] labels: job: nginx hostname: web-server site: itlab33-main __path__: /var/www/itlab33.ru/log/nginx/*log
Мониторинг производительности:
-
Promtail метрики доступны по адресу:
http://localhost:9080/metrics -
Используйте порт 9080 для health-check
Заключение
После выполнения этих шагов у вас будет:
-
✅ Установленный Promtail как служба Windows
-
✅ Настроенный сбор логов Windows Events
-
✅ Отправка логов в Loki
-
✅ Автоматический перезапуск при сбоях
-
✅ Логирование работы службы
Для обновления конфигурации просто отредактируйте config.yaml — служба автоматически перезагрузит настройки.