Перейти к основному содержанию
КраткоСобирайте и визуализируйте системные журналы хостов (syslog, auth, kernel) в ClickStack с помощью OTel-ресивера filelog. Включает демо-набор данных и преднастроенный дашборд.

Интеграция с существующими хостами

В этом разделе описано, как настроить существующие хосты на отправку системных журналов в ClickStack, изменив конфигурацию OTel collector ClickStack так, чтобы он считывал все системные файлы журналов (syslog, auth, kernel, daemon и журналы приложений). Если вы хотите протестировать интеграцию журналов хоста перед настройкой собственной среды, воспользуйтесь нашей предварительно настроенной конфигурацией и тестовыми данными в разделе “демо-набор данных”.
Необходимые условия
  • Запущенный экземпляр ClickStack
  • Система с файлами syslog
  • Доступ на изменение файлов конфигурации ClickStack
1

Проверьте наличие файлов syslog

Сначала убедитесь, что система записывает файлы syslog:
# Проверить наличие файлов syslog (Linux)
ls -la /var/log/syslog /var/log/messages

# Или на macOS
ls -la /var/log/system.log

# Просмотреть последние записи
tail -20 /var/log/syslog
Распространённые пути к syslog:
  • Ubuntu/Debian: /var/log/syslog
  • RHEL/CentOS/Fedora: /var/log/messages
  • macOS: /var/log/system.log
2

Создание пользовательской конфигурации OTel collector

ClickStack позволяет расширить базовую конфигурацию OpenTelemetry Collector, подключив пользовательский файл конфигурации и установив переменную среды.Создайте файл host-logs-monitoring.yaml с конфигурацией для вашей системы:
receivers:
  filelog/syslog:
    include:
      - /var/log/syslog
      - /var/log/**/*.log
    start_at: end
    operators:
      - type: regex_parser
        regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout_type: gotime
        layout: '2006-01-02T15:04:05.999999-07:00'
      
      - type: add
        field: attributes.source
        value: "host-logs"
      
      - type: add
        field: resource["service.name"]
        value: "host-production"

service:
  pipelines:
    logs/host:
      receivers: [filelog/syslog]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse

Все конфигурации:
  • Считывайте файлы syslog из стандартных расположений
  • Разберите формат syslog, чтобы извлечь структурированные поля (временная метка, имя хоста, unit/сервис, PID, сообщение)
  • Сохраняйте исходные временные метки логов
  • Добавьте атрибут source: host-logs для фильтрации данных в HyperDX
  • Направляйте журналы в экспортёр ClickHouse через выделенный конвейер
  • В пользовательской конфигурации вы определяете только новые приёмники и конвейеры
  • Процессоры (memory_limiter, transform, batch) и экспортёры (clickhouse) уже определены в базовой конфигурации ClickStack — вы просто ссылаетесь на них по имени
  • Regex-парсер извлекает имена юнитов systemd, PID и другие метаданные из формата syslog
  • В этой конфигурации используется start_at: end, чтобы избежать повторного приёма журналов при перезапуске коллектора. Для тестирования измените на start_at: beginning, чтобы сразу увидеть исторические журналы.
3

Настройте ClickStack для загрузки пользовательской конфигурации

Чтобы включить пользовательскую конфигурацию collector в существующем развертывании ClickStack, необходимо:
  1. Смонтировать файл пользовательской конфигурации по пути /etc/otelcol-contrib/custom.config.yaml
  2. Задать переменную окружения CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
  3. Смонтировать каталог syslog, чтобы collector мог читать из него
Вариант 1: Docker Compose
Обновите конфигурацию развертывания ClickStack:
services:
  clickstack:
    # ... существующая конфигурация ...
    environment:
      - CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
      # ... другие переменные окружения ...
    volumes:
      - ./host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
      - /var/log:/var/log:ro
      # ... другие тома ...
Вариант 2: Docker Run (образ «всё в одном»)
Если вы используете образ «всё в одном» через docker run:
docker run --name clickstack \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v /var/log:/var/log:ro \
  clickhouse/clickstack-all-in-one:latest
Убедитесь, что у коллектора ClickStack есть необходимые разрешения на чтение файлов syslog. В рабочей среде используйте монтирования только для чтения (:ro) и придерживайтесь принципа наименьших привилегий.
4

Проверка журналов в HyperDX

После настройки войдите в HyperDX и убедитесь, что журналы поступают:
  1. Перейдите в представление поиска
  2. В поле source выберите Logs
  3. Отфильтруйте по source:host-logs, чтобы увидеть журналы с конкретного хоста
  4. Вы должны увидеть структурированные записи журнала с такими полями, как unit, hostname, pid, message и т. д.

Демо-набор данных

Для пользователей, которые хотят протестировать интеграцию журналов хоста перед настройкой своих рабочих систем, мы предоставляем демо-набор данных с заранее сгенерированными системными журналами, имитирующими реалистичные сценарии.
1

Скачайте демо-набор данных

Скачайте демонстрационный файл журнала:
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.log
Набор данных включает:
  • Последовательность загрузки системы
  • Активность входа по SSH (успешные и неуспешные попытки)
  • Инцидент безопасности (brute-force-атака с реакцией fail2ban)
  • Плановое обслуживание (cron-задачи, anacron)
  • Перезапуски сервисов (rsyslog)
  • Сообщения ядра и активность межсетевого экрана
  • Сочетание обычных операций и заметных событий
2

Создайте тестовую конфигурацию коллектора

Создайте файл с именем host-logs-demo.yaml со следующей конфигурацией:
cat > host-logs-demo.yaml << 'EOF'
receivers:
  filelog/journal:
    include:
      - /tmp/host-demo/journal.log
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^(?P<timestamp>\S+) (?P<hostname>\S+) (?P<unit>\S+?)(?:\[(?P<pid>\d+)\])?: (?P<message>.*)$'
        parse_from: body
        parse_to: attributes
      
      - type: time_parser
        parse_from: attributes.timestamp
        layout: '%Y-%m-%dT%H:%M:%S%z'
      
      - type: add
        field: attributes.source
        value: "host-demo"
      
      - type: add
        field: resource["service.name"]
        value: "host-demo"

service:
  pipelines:
    logs/host-demo:
      receivers: [filelog/journal]
      processors:
        - memory_limiter
        - transform
        - batch
      exporters:
        - clickhouse
EOF
3

Запустите ClickStack с демо-конфигурацией

Запустите ClickStack с демо-журналами и этой конфигурацией:
docker run --name clickstack-demo \
  -p 8080:8080 -p 4317:4317 -p 4318:4318 \
  -e CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml \
  -v "$(pwd)/host-logs-demo.yaml:/etc/otelcol-contrib/custom.config.yaml:ro" \
  -v "$(pwd)/journal.log:/tmp/host-demo/journal.log:ro" \
  clickhouse/clickstack-all-in-one:latest
Файл журнала монтируется прямо в контейнер. Это сделано для тестирования на статических демо-данных.
4

Проверьте журналы в HyperDX

После запуска ClickStack:
  1. Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется её создать)
  2. Перейдите в представление Search и выберите источник Logs
  3. Установите временной диапазон 2025-11-10 00:00:00 - 2025-11-13 00:00:00
Отображение часового поясаHyperDX отображает временные метки в локальном часовом поясе вашего браузера. Демо-данные охватывают период 2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC). Широкий временной диапазон гарантирует, что вы увидите демо-журналы независимо от своего местоположения. После этого можно сузить диапазон до 24 часов для более наглядной визуализации.

Панели мониторинга и визуализация

Чтобы вам было проще начать мониторинг журналов хоста с помощью ClickStack, мы предоставляем основные визуализации для системных журналов.
1

конфигурацию панели мониторинга

2

Импортируйте преднастроенный дашборд

  1. Откройте HyperDX и перейдите в раздел Dashboards
  2. Нажмите Import Dashboard в правом верхнем углу в меню с многоточием
  1. Загрузите файл host-logs-dashboard.json и нажмите Finish Import
3

Откройте панель мониторинга

Панель мониторинга будет создана со всеми преднастроенными визуализациями:Основные визуализации:
  • Объём журналов во времени по уровням серьёзности
  • Юниты systemd, генерирующие больше всего журналов
  • Активность входа по SSH (успешные и неудачные попытки)
  • Активность межсетевого экрана (заблокировано и разрешено)
  • События безопасности (неудачные входы, баны, блокировки)
  • Активность перезапуска сервисов
Для демо-набора данных установите временной диапазон 2025-11-11 00:00:00 - 2025-11-12 00:00:00 (UTC) (скорректируйте его в соответствии с вашим часовым поясом). В импортированной панели мониторинга по умолчанию временной диапазон не задан.

Устранение неполадок

Пользовательская конфигурация не загружается

Убедитесь, что переменная окружения задана:
docker exec <container-name> printenv CUSTOM_OTELCOL_CONFIG_FILE
Проверьте, что пользовательский конфигурационный файл смонтирован и доступен для чтения:
docker exec <container-name> cat /etc/otelcol-contrib/custom.config.yaml | head -10

Журналы не отображаются в HyperDX

Убедитесь, что файлы syslog существуют и в них записываются данные:
# Проверить наличие syslog
ls -la /var/log/syslog /var/log/messages

# Убедиться, что журналы записываются
tail -f /var/log/syslog
Проверьте, что collector может считывать журналы:
docker exec <container> cat /var/log/syslog | head -20
Проверьте, что в итоговую конфигурацию включён ваш ресивер filelog:
docker exec <container> cat /etc/otel/supervisor-data/effective.yaml | grep -A 10 filelog
Проверьте журналы collector на наличие ошибок:
docker exec <container> cat /etc/otel/supervisor-data/agent.log | grep -i "filelog\|syslog"
Если вы используете демо-набор данных, убедитесь, что файл журнала доступен:
docker exec <container> cat /tmp/host-demo/journal.log | wc -l

Логи разбираются некорректно

Убедитесь, что формат syslog соответствует выбранной конфигурации: Для современных дистрибутивов Linux (Ubuntu 24.04+):
# Должен отображаться формат ISO8601: 2025-11-17T20:55:44.826796+00:00
tail -5 /var/log/syslog
Для устаревших версий Linux или macOS:
# Должен отображаться традиционный формат: Nov 17 14:16:16
tail -5 /var/log/syslog
# или
tail -5 /var/log/system.log
Если ваш формат не подходит, выберите вкладку с нужной конфигурацией в разделе Создание пользовательской конфигурации OTel collector.

Следующие шаги

  • Настройте оповещения для критически важных системных событий (сбои сервиса, ошибки аутентификации, предупреждения о состоянии диска)
  • Фильтруйте по конкретным юнитам, чтобы отслеживать отдельные сервисы
  • Коррелируйте журнал хоста с журналами приложений для комплексной диагностики и устранения неполадок
  • Создайте пользовательские панели мониторинга для мониторинга безопасности (попытки SSH, использование sudo, блокировки межсетевым экраном)

Переход к промышленной эксплуатации

В этом руководстве для быстрой настройки используется встроенный в ClickStack OpenTelemetry Collector. Для промышленной эксплуатации мы рекомендуем запустить собственный OTel Collector и отправлять данные в конечную точку OTLP ClickStack. См. Отправка данных OpenTelemetry для настройки production-конфигурации.
Последнее изменение 10 июня 2026 г.