Linux

syslog-ng для централизованного сбора логов: сервер, клиенты, фильтры и TLS

Центральный syslog-сервер удобен тем, что журналы остаются доступными даже после сбоя или компрометации отдельного устройства. Но просто открыть UDP/514 и складывать всё в один файл — плохая production-схема.

Устанавливаем syslog-ng

sudo apt update
sudo apt install syslog-ng

Сетевой источник

source s_network {
    network(
        ip("0.0.0.0")
        port(514)
        transport("udp")
    );
};

UDP прост и совместим почти со всем сетевым оборудованием, но не гарантирует доставку. Если отправитель поддерживает TCP или TLS, для важных журналов лучше использовать их.

Разделяем журналы по хостам

destination d_hosts {
    file("/var/log/remote/${HOST}/${YEAR}-${MONTH}-${DAY}.log"
         create_dirs(yes));
};

log {
    source(s_network);
    destination(d_hosts);
};

Ограничьте доступ firewall

Не публикуйте syslog-порт в интернет. Разрешайте подключение только из своих VLAN, VPN или адресов управляемого оборудования.

Ротация обязательна

Удалённые журналы могут быстро заполнить диск. Настройте retention через logrotate или собственную политику хранения и отдельно контролируйте свободное место.

TLS для недоверенной сети

Если логи проходят через сеть, где возможен перехват или подмена, настройте TLS с проверкой сертификатов. Это особенно важно для административных и security-событий.

Проверка

logger -n 192.0.2.10 -P 514 -d "syslog test"
sudo find /var/log/remote -type f -mmin -5

После запуска проверьте не только появление файла, но и hostname, timestamp и отсутствие потерь при высокой нагрузке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *