Главная » Полезные статьи » Язык PHP » Использование syslog для логирования работы программ/скриптов
Распечатать статью

Использование syslog для логирования работы программ/скриптов

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

Большая часть этих сообщений не являются критичными. Например, <Невозможно соединится с сервером>, <Обработано файлов столько-то>, <Затрачено времени столько-то> и т.п. Я рассмотрел два основных варианта этой проблемы:

Первый вариант, в лоб — использовать перенаправление вывода или собственные лог-файлы. Этот вариант не удобен для мониторинга, так как придётся просматривать больше количество файлов отчётов.

Второй вариант — не изобретать велосипед и использовать syslog.

syslog — стандарт отправки сообщений о происходящих в системе событиях (логов), использующийся в компьютерных сетях, работающих по протоколу IP.

Протокол syslog прост: отправитель посылает короткое текстовое сообщение, размером меньше 1024 байт получателю сообщения. Получатель при этом носит имя , , либо же, . Сообщения могут отправляться как по UDP, так и по TCP. Как правило, такое сообщение отсылается в открытом виде.

Syslog используется для удобства администрирования и обеспечения информационной безопасности. Он реализован под множество платформ и используется в множестве устройств. Поэтому, использование syslog позволяет обеспечить сбор информации с разных мест и хранение её в едином репозитории.

Как правило syslog и syslogd работают внутри одного сервера (то есть все соединения локальны) и никакой внешней сетевой деятельности не производится.

Теперь, как все это выглядит на практике.
Perl:
use Sys::Syslog;
openlog(«имя вашей программы», «ndelay,pid», «local0″);
syslog(LOG_WARNING, «Программа запущена»);

# тут программа

syslog(LOG_WARNING, «Программа завершила выполнение»);
closelog();
PHP:
openlog(«имя вашей программы», LOG_PID | LOG_PERROR, LOG_LOCAL0);
syslog(LOG_WARNING,»Программа запущена»);

// тут программа

syslog(LOG_WARNING, «Программа завершила выполнение»);
closelog();
C/C++:
#include
openlog(«имя вашей программы», 0, LOG_USER);
syslog(LOG_NOTICE, «Can not open file «%s» for writing.»,filename);
closelog();

Далее можете поискать ваши сообщения в журналах syslog. Тут все зависит от настроек syslogd. Обычно это /var/log/messages.

В документации PHP написано, что в windows тоже работает, но я не пробовал.

Источник:   codingrus.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи