Syslog: Как это работает, примеры, лучшие практики и многое другое

Syslog - это стандарт для отправки и получения уведомлений в определенном формате от различных сетевых устройств. Сообщения включают временные метки, сообщения о событиях, серьезность, IP-адреса хостов, диагностику и многое другое. Что касается встроенного уровня серьезности, то он может передавать сообщения в диапазоне от уровня 0 - аварийный, уровня 5 - предупреждение, нестабильность системы, критический и уровней 6 и 7 - информационный и отладочный.

linux

Более того, Syslog является открытым. Syslog был разработан для мониторинга сетевых устройств и систем с целью отправки уведомлений при возникновении каких-либо проблем с функционированием, он также отправляет предупреждения о заранее предупрежденных событиях и отслеживает подозрительную активность через журнал изменений/журнал событий участвующих сетевых устройств.

Протокол Syslog был первоначально написан Эриком Оллманом и определен в RFC 3164. Сообщения отправляются через IP-сети на сборщики сообщений о событиях или серверы syslog. Syslog использует для связи протокол User Datagram Protocol (UDP), порт 514. Хотя серверы syslog не отправляют подтверждение о получении сообщений. С 2009 года syslog стандартизирован IETF в RFC 5424.

Преимущества ведения журналов

В самом простом определении протоколирование - это ведение журнала. Сисадмины постоянно спорят о том, с какой степенью детализации следует вести журнал системных данных. Существует компромисс между слишком быстрым использованием дискового пространства и недостаточным количеством данных в журналах.

Тем не менее, преимущества протоколирования по-прежнему обширны - особенно при устранении неполадок в коде. Необходимо иметь стандартизированную и централизованную систему для создания, записи и протоколирования сообщений. Кроме того, это помогает улучшить способность контролировать и использовать данные протоколирования. Вот еще несколько преимуществ:

  • Сокращение количества заявок на устранение неполадок
  • Сокращение времени простоя
  • Снижение количества перерывов в работе
  • Содействие профилактическому устранению неисправностей

Без протоколирования поиск одной транзакции, которая могла быть обработана на любом из ваших серверов, может превратиться в кошмар. При централизованном протоколировании вы получаете коррелированное представление всех данных журнала. В отличие от этого, просмотр каждого файла журнала по отдельности может занять много времени. Именно поэтому использование Syslog для передачи локальных сообщений журнала на удаленный сервер анализа журналов стало стандартом для решений по ведению журналов.

Компоненты серверов Syslog

Теперь вы понимаете, как Syslog предлагает центральное хранилище для журналов из различных источников. Для достижения этой цели серверы Syslog состоят из нескольких компонентов, включая:

  • Слушатель Syslog - слушатель собирает и обрабатывает данные syslog, отправленные через UDP порт 514. Однако, получение подтверждения не предусмотрено, и поступление сообщений не гарантируется.
  • База данных - серверыyslog нуждаются в базах данных для хранения огромного количества данных для быстрого доступа.
  • Программное обеспечение для управления и фильтрации - поскольку объем данных может быть огромным, поиск определенных записей в журнале может занять слишком много времени. Серверу syslog требуется помощь для автоматизации работы, а также для фильтрации для просмотра определенных сообщений журнала. Для примера, он может извлекать сообщения на основе определенных параметров, таких как критическое событие или имя устройства. Вы также можете использовать фильтр, чтобы не видеть определенные типы записей с помощью правила Negative Filter. Если вы хотите, вы можете показать все критические сообщения журнала от брандмауэра.

Как это работает

В стандарте Syslog существует три различных уровня, а именно: Назначение сообщения Syslog

  • Содержание Syslog (информация, содержащаяся в сообщении о событии)
  • Приложение Syslog (генерирует, интерпретирует, маршрутизирует и хранит сообщения)
  • Транспорт Syslog (передает сообщения).

Кроме того, приложения могут быть настроены на отправку сообщений в несколько пунктов назначения. Существуют также сигналы тревоги, которые обеспечивают мгновенное уведомление о таких событиях, как:

  • Аппаратные ошибки
  • Сбои в работе приложений
  • Потеря контакта
  • Неправильная конфигурация .

Кроме того, сигналы тревоги могут быть настроены на отправку уведомлений через SMS, всплывающие сообщения, электронную почту, HTTP и многое другое. Поскольку процесс автоматизирован, ИТ-команда получит немедленное уведомление о внезапном отказе любого из устройств.

Серверы Syslog

Серверы Syslog используются для отправки данных диагностики и мониторинга. Затем эти данные могут быть проанализированы для мониторинга системы, обслуживания сети и т. д. Поскольку протокол Syslog поддерживается широким кругом устройств, они могут удобно регистрировать информацию на сервере Syslog.

Данные SNMP могут быть использованы для быстрой оценки любых точек отказа. Серверы Syslog также могут иметь автоматические события для запуска оповещений, которые помогают предотвратить простои или сбои. Ниже приведен список нескольких Syslog-серверов на базе Windows:

  1. Сервер Kiwi Syslog Server. Этот сервер прост в установке и генерирует отчеты в виде обычного текста или HTML. Программное обеспечение обрабатывает Syslog и SNMP, даже с хостов Linux и UNIX. Он совместим с Win XP 32/64, Win 2003 32/64, Windows Vista 32/64, Win7 32/64, Windows 2008 R2 32/64, Windows 8, Windows Server 2012 & 2012 R2.
  2.  PRTG. Добавляет датчик к мониторингу PRTG для включения возможности Syslog. Он ориентирован на данные протоколов SNMP и Syslog. Он совместим с любой 64-разрядной средой Windows с Windows Server 2012 R2.
  3. SNMPSoft Sys-log Watcher. Это специализированный сервер syslog для широкого спектра устройств. Он также может анализировать и управлять нестандартными Syslog. Он совместим с Windows XP до Windows 10.
  4. Dude. Эта система используется для общего управления сетью со встроенным сервером syslog. Кроме того, она оснащена функцией удаленного протоколирования через RouterOS. Она совместима с Windows 2000 или более новыми версиями. Однако она также работает на Linux или MacOS с помощью Wine/Darwine.
  5. Visual Syslog Server. Это более легкий вариант syslog, который рассматривает предупреждения в режиме реального времени. Пороговые значения могут быть настроены для запуска как скриптов, так и программ. Он совместим с Windows XP, Vista, 7, 8, 8.1, а также Windows Server 2003, 2008, 2012.
  6. Datagram. Эта программа предлагает функциональность уровня предприятия. Она хорошо работает в больших средах. Она получает и хранит данные Syslog. Более того, она совместима с Windows 2000 и более новыми версиями.

Формат Syslog

Syslog имеет стандартное определение и формат сообщения журнала, определенный RFC 5424. В результате оно состоит из заголовка, структурированных данных (SD) и сообщения.

В заголовке вы увидите описание типа, например:

  • Приоритет (Priority)
  • Версия (Version)
  • Временная метка (Timestamp)
  • Имя хоста (Hostname)
  • Приложение (Application)
  • Идентификатор процесса (Process id)
  • Идентификатор сообщения (Message id)

Затем вы увидите структурированные данные, которые содержат блоки данных в формате "ключ=значение" в квадратных скобках. После SD вы увидите подробное сообщение журнала, которое закодировано в UTF-8.

Например, следующее сообщение:

Соответствует следующему формату:

Сообщения Syslog

Сообщения Syslog используются для сообщения об уровнях "Авария" и "Предупреждение" в отношении программных или аппаратных проблем. Для примера, перезагрузка системы будет отправлена через уровень Notice. Перезагрузка системы будет передана через уровень Informational. Если выводятся отладочные команды, они передаются через уровень Debug.

Вот уровни сообщений Syslog:

  • Аварийные сообщения - система недоступна и непригодна для использования (может быть состояние "паники" из-за стихийного бедствия).
  • Тревожные сообщения - действия должны быть предприняты немедленно (пример - потеря резервного соединения с интернет-провайдером)
  • Критические сообщения - критические условия (это может быть потеря основного соединения с провайдером)
  • Сообщения об ошибках - условия ошибки (должны быть устранены в течение определенного периода времени)
  • Предупреждающие сообщения - условия предупреждения (указывает на возможность возникновения ошибки, если не принять меры)
  • Уведомляющие сообщения - все в норме, но это все еще значительное состояние (немедленные действия обычно не требуются)
  • Информационные сообщения-Информационные сообщения (для отчетности и измерений)
  • Отладочные сообщения - сообщения уровня отладки (предлагает информацию об отлаживаемых приложениях)

Наиболее важные файлы журналов для отслеживания и мониторинга

Мониторинг файлов журналов очень важен, поскольку он помогает справиться с любыми ошибками в работе вашей ОС. Некоторые типы релевантной информации, которую вы сможете получить, включают:

  • Проблемы пользователей
  • Нарушения безопасности
  • Сбои жесткого диска или отключение питания

Конечно, есть файлы журналов с высоким приоритетом, которые вы всегда должны отслеживать. К таким файлам относятся:

  • /var/log/messages - содержит большинство системных сообщений
  • /var/log/secure - сообщения аутентификации
  • /var/log/cron - Журнал регистрации действий задания Cron
  • /var/log/maillog - почтовые транзакции.

Если бы вы заглянули в /var/log/messages, вы бы обнаружили:

  • Метку времени
  • Имя хоста выполняющей программы
  • Имя утилиты, вызвавшей сообщение
  • Действие, которое было выполнено

Плюсы и минусы Syslog

Одним из проблемных сценариев является заполнение файла /var/log/messages из-за неправильной конфигурации журнала. Кроме того, бывают случаи, когда ведение журнала в системе приводит к непредвиденным проблемам. Вот почему необходимо понимать, как контролировать ведение журнала и где сохраняются журналы. Кроме того, при больших объемах сетевого трафика может происходить потеря пакетов.

Кроме того, тот факт, что Syslog основан на UDP, означает, что могут возникнуть проблемы с надежностью. С другой стороны, по мере усложнения систем становится все более важным собирать и отслеживать все необходимые данные, производимые приложениями.

Эти данные можно анализировать для определения поведения систем. Кроме того, журналы считаются надежным источником данных для понимания текущей статистики системы и прогнозирования тенденций. Не говоря уже о том, что журналы используются для таких действий, как устранение неполадок или откат системы после сбоя.

Лучшие практики

Что касается защиты файлов журналов, то у вас будет много устройств, генерирующих эти данные. Тем не менее, считается лучшей практикой направлять все данные журнала на выделенный хост, который защищен и усилен.

Более того, во всех брандмауэрах между вами и UDP/514 нужно открывать только порт syslog. Если у вас географическая сеть, то вам следует иметь локальный логхост в каждом месте, который отправляет данные на центральный логхост.

Вы также можете повернуть файл журнала, когда он достигнет определенного размера. Тем не менее, утилита UNIX logrotate будет продолжать записывать информацию журнала в новый файл после ротации старого файла. Вот ключи, которые следует использовать:

  • /usr/sbin/logrotate - Команда logrotate
  • /etc/cron.daily/logrotate - сценарий оболочки, который ежедневно выполняет команду logrotate.
  • /etc/logrotate.conf - используется в качестве ротации журнала для всех записей журнала в этом файле
  • /etc/logrotate.d - для отдельных пакетов.

Чтобы ротировать файл журнала на каждый 1 КБ, используйте приведенный ниже logrotate.conf

Это дает вам три варианта:

  • size 1k-logrotate запускается только в том случае, если размер файла равен или больше этого размера
  • create- повернуть исходный файл и создать новый файл с настроенными пользователями, группами и разрешениями
  • rotate- сохраняет только последние четыре файла журнала.

Поскольку все большее число организаций переходит в облако, потребность в инструментах и сервисах управления журналами как никогда высока. Хорошо иметь централизованные журналы, но для их эффективного анализа также необходимы соответствующие инструменты.

Перебор файлов по отдельности сведет вас с ума. Вот несколько бесплатных и платных инструментов:

  1. Retrace - один из инструментов разработчика Stackify и единственный инструмент разработчика, который объединяет APM, ошибки, метрики и мониторинг с протоколированием, чтобы обеспечить полностью интегрированный, многосредовой инструмент, который дает вам суперсилу производительности приложений.
  2. Loggly - это облачный поставщик услуг управления и аналитики, который имеет бесплатный и платный тарифный план стоимостью от $49 в месяц. Благодаря их динамическому исследователю полей вы получаете обзор журналов с высоты птичьего полета. Он также включает в себя мощный полнотекстовый поиск.
  3. GoAccess - это терминальный анализатор журналов, позволяющий просматривать статистику веб-сервера в режиме реального времени. Он также имеет открытый исходный код и бесплатен в использовании. Кроме того, он доступен на Github.
  4. logz.io - у этого инструмента есть бесплатные и платные тарифные планы от $89 в месяц. Он имеет интерфейс на базе Kibana, который позволяет легко искать по миллионам записей. Вы также можете фильтровать результаты с помощью пользовательских параметров.
  5. Splunk - это популярный инструмент, который существует с 2003 года. Он также поставляется в бесплатном и платном вариантах. Цена платного плана зависит от объема обрабатываемых вами данных. Кроме того, он поставляется с мощной системой сверления, которая позволяет вернуться в прошлое с помощью специальных запросов.
  6. Logstash - это бесплатный инструмент с открытым исходным кодом для управления и сбора событий и журналов. Кроме того, вы можете использовать его вместе с Kibana.
  7. AWStats - этот бесплатный инструмент анализа имеет сообщество из тысяч пользователей. Это связано с тем, что он позволяет создавать оптимизированные отчеты, а также экспортировать данные журналов в различных форматах для анализа в автономном режиме. Кроме того, его можно запустить практически на любой популярной платформе.
  8. Deep Log Analyzer - этот инструмент может анализировать файлы журналов, созданные IIS и даже веб-сервером Apache. Удобный интерфейс позволяет создавать пользовательские отчеты. Вы также можете экспортировать разобранные данные в формат HTML или Excel.
  9. BareTail - с помощью этого инструмента вы можете анализировать и читать информацию в режиме реального времени. Вы также можете подключиться к удаленному веб-серверу. Если вам нужно перейти к определенному моменту, вы можете сделать это немедленно.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий