Централизованный сбор: архитектура, ретрансляторы и HA
Введение
Централизованный сбор логов повышает наблюдаемость и упрощает расследование. Ключевые вопросы — отказоустойчивость, масштабирование и контроль задержек.
Базовые топологии
- Прямая отправка на коллектор — просто, но точка отказа одна.
- Ретранслятор(ы) у кластеров/ЦОД — буферизация, нормализация, HA.
- Несколько коллекторов + балансировщик — горизонтальное масштабирование.
- Холодный оффлоад (S3/HDFS) — долгосрочное хранение и поиск через внешние движки.
Ретранслятор: задачи и настройки
- Приём: TCP/TLS (и RELP при критичных требованиях).
- Очереди на диске: тип LinkedList, сохранение при выключении, retry=-1.
- Нормализация: единая временная зона (UTC), MSGID, STRUCTURED-DATA.
- Маршрутизация: по facility/severity/тегам в разные индексы/топики.
Балансировка и HA
- L4-балансировщик с TCP/TLS passthrough или TLS-терминация с реальным IP в заголовке.
- Health-check по порту/рукопожатию; исключать «холодные» узлы.
- Держать минимум 2 коллектора и 2 ретранслятора; реплицировать очереди при возможности.
Мини-конфиг релея (rsyslog)
module(load="imtcp")
module(load="omrelp")
module(load="omfwd")
input(type="imtcp" port="514")
# В RELP с очередью на диске
action(
type="omrelp"
target="collector-a.internal:2514"
tls="on"
tls.caCert="/etc/ssl/certs/ca.pem"
tls.myCert="/etc/ssl/certs/relay.pem"
tls.myPrivKey="/etc/ssl/private/relay-key.pem"
queue.type="LinkedList"
queue.filename="q_relp_a"
queue.size="200000"
action.resumeRetryCount="-1"
queue.saveonshutdown="on"
)
# Фолбэк на второй коллектор
action(
type="omrelp"
target="collector-b.internal:2514"
tls="on"
tls.caCert="/etc/ssl/certs/ca.pem"
tls.myCert="/etc/ssl/certs/relay.pem"
tls.myPrivKey="/etc/ssl/private/relay-key.pem"
queue.type="LinkedList"
queue.filename="q_relp_b"
queue.size="200000"
action.resumeRetryCount="-1"
queue.saveonshutdown="on"
)
Чек-лист
- Включите дисковые очереди на всех источниках и релеях.
- Используйте TLS/RELP для критичных потоков.
- Настройте HA: ≥2 коллектора, ≥2 релея, health-check’и.
- Мониторьте длину очередей, задержки доставки и ошибки TLS.
- Планируйте оффлоад и retention на уровне хранилища.