Интеграция с существующими хостами
В этом разделе описано, как настроить существующие хосты на отправку системных журналов в ClickStack, изменив конфигурацию OTel collector ClickStack так, чтобы он считывал все системные файлы журналов (syslog, auth, kernel, daemon и журналы приложений).
Если вы хотите протестировать интеграцию журналов хоста перед настройкой собственной среды, воспользуйтесь нашей предварительно настроенной конфигурацией и тестовыми данными в разделе "демо-набор данных".
Необходимые условия
- Запущенный экземпляр ClickStack
- Система с файлами syslog
- Доступ на изменение файлов конфигурации ClickStack
Проверьте наличие файлов syslog
Сначала убедитесь, что система записывает файлы syslog:
# Check if syslog files exist (Linux)
ls -la /var/log/syslog /var/log/messages
# Or on macOS
ls -la /var/log/system.log
# View recent entries
tail -20 /var/log/syslogРаспространённые пути к syslog:
- Ubuntu/Debian:
/var/log/syslog - RHEL/CentOS/Fedora:
/var/log/messages - macOS:
/var/log/system.log
Создание пользовательской конфигурации 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:
- clickhousereceivers:
filelog/syslog:
include:
- /var/log/syslog
- /var/log/messages
- /var/log/**/*.log
start_at: end
operators:
- type: regex_parser
regex: '^(?P<timestamp>\w+ \d+ \d{2}:\d{2}:\d{2}) (?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: '%b %d %H:%M:%S'
- 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:
- clickhousereceivers:
filelog/syslog:
include:
- /var/log/system.log
- /host/private/var/log/*.log
start_at: end
operators:
- type: regex_parser
regex: '^(?P<timestamp>\w+ \d+ \d{2}:\d{2}:\d{2}) (?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: '%b %d %H:%M:%S'
- 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 через выделенный конвейер
Настройте ClickStack для загрузки пользовательской конфигурации
Чтобы включить пользовательскую конфигурацию collector в существующем развертывании ClickStack, необходимо:
- Смонтировать файл пользовательской конфигурации по пути
/etc/otelcol-contrib/custom.config.yaml - Задать переменную окружения
CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml - Смонтировать каталог syslog, чтобы collector мог читать из него
Вариант 1: Docker Compose
Обновите конфигурацию развертывания ClickStack:
services:
clickstack:
# ... existing configuration ...
environment:
- CUSTOM_OTELCOL_CONFIG_FILE=/etc/otelcol-contrib/custom.config.yaml
# ... other environment variables ...
volumes:
- ./host-logs-monitoring.yaml:/etc/otelcol-contrib/custom.config.yaml:ro
- /var/log:/var/log:ro
# ... other volumes ...Вариант 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Проверка журналов в HyperDX
После настройки войдите в HyperDX и убедитесь, что журналы поступают:
- Перейдите в представление поиска
- В поле source выберите Logs
- Отфильтруйте по
source:host-logs, чтобы увидеть журналы с конкретного хоста - Вы должны увидеть структурированные записи журнала с такими полями, как
unit,hostname,pid,messageи т. д.


Демо-набор данных
Для пользователей, которые хотят протестировать интеграцию журналов хоста перед настройкой своих рабочих систем, мы предоставляем демо-набор данных с заранее сгенерированными системными журналами, имитирующими реалистичные сценарии.
Скачайте демо-набор данных
Скачайте демонстрационный файл журнала:
curl -O https://datasets-documentation.s3.eu-west-3.amazonaws.com/clickstack-integrations/host-logs/journal.logНабор данных включает:
- Последовательность загрузки системы
- Активность входа по SSH (успешные и неуспешные попытки)
- Инцидент безопасности (brute-force-атака с реакцией fail2ban)
- Плановое обслуживание (cron-задачи, anacron)
- Перезапуски сервисов (rsyslog)
- Сообщения ядра и активность межсетевого экрана
- Сочетание обычных операций и заметных событий
Создайте тестовую конфигурацию коллектора
Создайте файл с именем 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Запустите 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Проверьте журналы в HyperDX
После запуска ClickStack:
- Откройте HyperDX и войдите в свою учётную запись (возможно, сначала потребуется её создать)
- Перейдите в представление Search и выберите источник
Logs - Установите временной диапазон 2025-11-10 00:00:00 - 2025-11-13 00:00:00


Панели мониторинга и визуализация
Чтобы вам было проще начать мониторинг журналов хоста с помощью ClickStack, мы предоставляем основные визуализации для системных журналов.
Скачать конфигурацию панели мониторинга
Импортируйте преднастроенный дашборд
- Откройте HyperDX и перейдите в раздел Dashboards
- Нажмите Import Dashboard в правом верхнем углу в меню с многоточием

- Загрузите файл
host-logs-dashboard.jsonи нажмите Finish Import

Откройте панель мониторинга
Панель мониторинга будет создана со всеми преднастроенными визуализациями:

Основные визуализации:
- Объём журналов во времени по уровням серьёзности
- Юниты systemd, генерирующие больше всего журналов
- Активность входа по SSH (успешные и неудачные попытки)
- Активность межсетевого экрана (заблокировано и разрешено)
- События безопасности (неудачные входы, баны, блокировки)
- Активность перезапуска сервисов
Устранение неполадок
Пользовательская конфигурация не загружается
Убедитесь, что переменная окружения задана:
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.