Установка, настройка и связывание RSyslog и Sentry
Захотелось собирать все логи из ОС (со всех серверов) в Sentry, естественно придется использовать UDP для передачи логов, к счастью в Sentry уже есть поддержка UDP. Посовещавшись с Сашей Мироновым, я решил использовать RSyslog, немного погуглив я обнаружил вот такой Gist Bridge to send rsyslog logs to sentry (который я потом успешно форкнул и отрефакторил). Теперь осталось только написать правила и запустить эту цепь.
Статья в основном для FreeBSD, но как обычно конфиги совпадают, просто заменяйте слова "установить из портов" на "установить из пакетов". Не думаю, что в остальном что-то серьзено изменится.
Запускаем UDP-сервер для Sentry
Зайдите на сервер где вы ранее устанавливали Sentry и откройте конфигурационный файл:
Теперь войдите на сервер, который будет посылать логи (вообщем, в нашей схеме это получается клиент на FreeBSD):
cd /usr/ports/sysutils/rsyslog6
make install clean
Теперь настроим RSyslog, например для логов Nginx:
emacs /usr/local/etc/rsyslog.conf
$ModLoad imfile
# Nginx
$InputFileName /var/log/nginx-error.log
$InputFileTag nginx-error:
$InputFileStateFile stat-nginx-error
$InputFileSeverity info
$InputRunFileMonitor
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName test # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
# Transfer all of the logs to this UDP port
*.* @@127.0.0.1:10514;RSYSLOG_SyslogProtocol23Format
Где, "127.0.0.1" - IP-адрес локального моста RSyslog->Sentry, речь о котором пойдет ниже, а "10514" - его UDP-порт.
Теперь откройте этот файл на редактирование и найдите строчку <your dsn here>, укажите DSN полученный из Sentry (не забудьте добавить номер UDP-порта, который вы указали в SENTRY_UDP_PORT):
После чего найдите строку где поднимается SyslogServer (он будет локально слушать UDP-порт, на который буду приходить сообщения от RSyslog) и укажите нужный IP-адрес и UDP-порт:
s = SyslogServer(('127.0.0.1', 10514), SimpleHandler)
Комментарии
О_о) я теперь медийная персона!
Ну а как же! Пора бы уже :-)
Оставьте свой комментарий