Логирование событий — очень нужная вещь. Лучше же конечно не откладывать данную проблему в долгий ящик (если, конечно, у вас не один сервер, а целый парк). В такой конфигурации не набегаешься по серверам и текстовиков не насмотришься. А если еще их и анализировать нужно, то мои поздравления — мы попали в бездну. И вот тут бело бы неплохо настроить сервер логирования и сбор логов в одном месте, чтобы можно было получить доступ к данным.
Ну что же, будем пробовать воплотить все это в жизнь.
А что собирать то?
Что обычно собирают? Наверное же все… В моем случае «хочется» собирать события с web-серверов, баз данных, планировщиков событий, почтовых серверов, события аутентификаций пользователей с серверов, прокси-серверов и события передачи пакетов на серверах (да, и такое в том числе). Вот на счет последнего лично еще не понимаю как это делать, но, думаю, по ходу дела уже будем определяться что логировать и сколько времени все это будет храниться.
Требования к инфраструктуре
Попробуем определиться с тем что у нас есть. В моем случае это парк серверов под управлением Linux (причем вполне себе разных дистрибутивов) и несколько Windows-серверов.
Все это хочется собирать в единой БД (или кластере БД, в зависит от того что хочется получить) и желательно чтобы можно было все это анализировать простыми запросами. Я лично привык работать с SQL (удобно, блин) — значит нужно что-то в этом направлении. Мир СУБД с SQL очень обширный: PostgreSQL, MySQL/MariaDB, ClickHouse и т.д. В общем выбор достаточно обширен. Можно (а может и нужно), конечно, использовать NoSQL, типа как MongoDB, Elasticsearch, Hadoop (что там еще есть), но видимо я их не осилил (хотя с MongoDB работал — небольшой опыт есть).
Далее неплохо было бы определиться с инструментарием сбора логов и его передачи. Тут в принципе все тоже достаточно интересно: rsyslog, syslog-ng, logstash, fluentd и что-то еще (будем разбираться).
На выходе должен получиться какой-то интерфейс для отображения всего этого добра в виде анализа списков, графиков, оповещений (это пока что только фантазии).
Конец, но не конец.
Это только определение с тем, что мне нужно получить в итоге. В дальнейшем сервер логирования и сбора логов будем делать поэтапно.