Вопрос или проблема
Помимо общих системных служб (mail
, news
, daemon
, cron
и т.д.), syslog предоставляет ряд “локальных” служб, с номерами от 0 до 7: LOCAL0
, LOCAL1
, …, LOCAL7
.
Какие из них являются настройками по умолчанию для распространенных приложений?
Я хочу выяснить, какие службы “традиционно” используются для известных сервисов. Я планирую развернуть приложение на многих серверах с установленным различным программным обеспечением и хотел бы узнать, есть ли “свободная” служба, которую я смог бы легко использовать для своих собственных логов.
Замечу, что существуют и другие способы организации этого, помимо службы syslog. Просто интересно!
Вот несколько примеров (это начало ответа на собственный вопрос) и некоторые благодаря voretaq7:
LOCAL0
используется postgresqlLOCAL2
используется sudoLOCAL3
используется в некоторых версиях SpamAssassinLOCAL4
используется по умолчанию slapd (сервер OpenLDAP)LOCAL5
иногда используется системой обнаружения вторжений SnortLOCAL7
используется для загрузочных сообщений в Fedora 12
Службы LOCALn
доступны для любого локального использования и могут довольно широко варьироваться от сайта к сайту.
Гарантирую, каждая из 8 доступных используется чем-то, поэтому, если вы хотите избежать конфликтов, мой лучший совет: записывать все 7 в отдельные логи и выбрать ту, которую, кажется, ничто другое не использует.
Некоторые, которые вы пропустили (настройки программы по умолчанию – они могут быть изменены локально, поэтому дважды проверьте):
LOCAL0
используется postgresql (если настроен на логирование в syslog)LOCAL2
используется sudo (если настроен на логирование в syslog)LOCAL3
используется в некоторых версиях SpamAssassin- Это часто меняется местными администраторами на лог в
mail
- Это часто меняется местными администраторами на лог в
LOCAL5
иногда используется системой обнаружения вторжений Snort- Не знаю, является ли это настройкой по умолчанию или просто совпадением, но я видел это на нескольких установках Snort
Стандарта для служб LOCAL0-LOCAL7 в Syslog не существует. По замыслу, нельзя быть уверенным в том, будут ли они использоваться чем-либо. Определенные дистрибутивы или организации могут иметь свои собственные соглашения, но это зависит от политики дистрибутива или организации, а не от какого-либо более широкого стандарта.
Как альтернатива, рассматривали ли вы возможность использования “тегов” Syslog? Теги — это строки произвольной формы, которые добавляются к лог-сообщениям, чтобы идентифицировать конкретные приложения или лог-каналы. По умолчанию, тег обычно формируется из имени процесса и ID (например, ‘httpd[2839]’), который сгенерировал данные логов. Утилита командной строки ‘logger’ и большинство API Syslog поддерживают указание любых тегов, которые вы хотите использовать для ваших приложений.
Например, мне лично нравится использовать ‘http-access’ для журналов доступа моего веб-сервера Apache, которые я отправляю в Syslog, перенаправляя вывод логов Apache в команду ‘logger -p local7.info -t ‘http-access’.
Большинство файлов syslog.conf настроено с использованием подстановочных символов для файла сообщений (*.info). Если это просто обычное приложение, а не какое-то огромное, поглощающее логи, вы, вероятно, должны просто вести журнал в файл сообщений, а не в отдельный файл.
Выбор логирования в ваш собственный файл означает добавление шага после установки в пакеты установки вашего программного обеспечения, который добавляет соответствующую запись в syslog.conf. Это также означает, что, если вы хороший человек, вы добавите шаг после установки, который создаст соответствующий файл для logrotate.
cyrus отправляет информацию об аутентификации в local6.notice
Я также искал файл конфигурации, подобный syslog.conf, чтобы сопоставить службы local0-7 с программой, которая в них пишет. кажется, что такого файла конфигурации не существует. Чтобы выяснить, какая программа пишет в лог, вам придется открыть файл лога и найти имя программы рядом с колонкой после двоеточия, например… sendmail[22950]: относится к программе sendmail. Число в квадратных скобках — это номер порта, использованный во время выполнения программы.
Ответ или решение
В мире информационных технологий важнейшей задачей является эффективная запись и управление логами. Syslog является одним из наиболее популярных инструментов для этого, предоставляя возможность распределять сообщения о событиях между различными журналами. Одним из его полезных аспектов являются "локальные" facilities, обозначенные как LOCAL0 до LOCAL7, которые могут быть использованы для специфических нужд организации.
Теория
Syslog даёт возможность распределять и направлять сообщения о событиях на основе их важности и категории. Системные facilities, такие как mail, daemon или cron, имеют свои чёткие назначения. Однако, для большего контроля и специфики есть восемь "локальных" facilities (LOCAL0-LOCAL7), которые могут быть использованы для настраиваемых нужд каждого предприятия.
Такие локальные facilities предоставляют гибкость, позволяя администраторам выделять отдельные каналы для записи лог-файлов, не конфликтуя с предустановленными системными категориями. Важно отметить, что использование этих локальных категорий не стандартизировано, что даёт администраторам свободу творчества при конфигурации.
Примеры
Согласно имеющимся данным, есть определённая неформальная традиция использования некоторых локальных facilities приложениями:
- LOCAL0 – часто используется PostgreSQL, если конфигурирован для записи логов через syslog.
- LOCAL2 – может быть применён sudo, в случаях конфигурации на запись через syslog.
- LOCAL3 – встречается в некоторых версиях SpamAssassin.
- LOCAL4 – обычно используется OpenLDAP сервером slapd.
- LOCAL5 – иногда применяется системой обнаружения вторжений Snort.
- LOCAL6 – приложение Cyrus отправляет данные аутентификации в local6.notice.
- LOCAL7 – используется для сообщений, относящихся к процессу загрузки в определённых системах, например, Fedora.
Применение
Для IT-администратора, ответственного за развертывание приложений на множестве серверов, знание таких "негласных договорённостей" может быть очень полезным. Места использования подобных facilities варьируются в зависимости от компаний и их внутренней политики, поэтому всегда стоит проверять, нет ли конфликтов использования в вашей системе.
Если вы хотите выбрать "свободную" локальную facility, есть несколько подходов. Например, все восемь facilities можно направить на отдельные файлы логов и проверить, какой из них остаётся пустым в данной конфигурации серверов и программного обеспечения.
Кроме того, для обозначения специфичных приложений или каналов логов, можно использовать "теги" syslog. Теги позволяют определять приложение или канал, добавляя свободноформатные строки в начало сообщений. Это может быть полезнее и гибче, особенно в случае, когда нужно детализировать или маркировать логи конкретного приложения.
Вывод
Отличительной особенностью syslog, а именно его локальных facilities, является возможность их настройки под потребности конкретной инфраструктуры. Выбирая, какое значение назначить приложению, следует учитывать как текущую конфигурацию, так и планы по развертыванию новых сервисов. Такая практика поможет избежать возможных конфликтов и обеспечит эффективность в управлении логами. Наилучшие результаты достигаются за счёт тщательного тестирования и проверки текущих настроек системы, чтобы понимать, какие facilities активно используются.