Назад | Перейти на главную страницу

Лучше ведение журнала для cronjobs? Отправить вывод cron в системный журнал?

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

В этом случае у меня есть сценарий Nagios NSCA, который отправляет данные на центральный сервер Nagios. Этот сценарий send_nsca также выводит одну строку состояния в STDOUT, указывая успех или неудачу.

0 * * * * root    /usr/local/nagios/sbin/nsca_check_disk

Это отправляет на адрес root @ localhost следующее сообщение, которое затем пересылается моей команде системных администраторов. Спам.

forwarded nsca_check_disk: 1 пакет (-ы) данных успешно отправлен на хост.

Я ищу метод ведения журнала, который:

  1. Не спамит сообщения на электронную почту или на консоль
  2. Не создавайте еще один грубый файл журнала, который требует очистки через несколько месяцев или лет.
  3. Сохраните где-нибудь информацию журнала, чтобы ее можно было просмотреть позже при желании.
  4. Работает на большинстве unix
  5. Встраивается в существующую инфраструктуру журналов.
  6. Использует общие соглашения системного журнала, такие как "средство" и "приоритет".
  7. Может работать со сторонними скриптами, которые не всегда ведут внутренний журнал.

В процессе написания этого вопроса я ответил сам. Так что я отвечу сам "Опасный стиль". Это расширяет ответ, предоставленный Деннисом Уильямсоном.

Следующее отправит любой вывод Cron в /usr/bin/logger (включая stderr, который преобразуется в stdout с использованием 2>&1), который будет отправлен в системный журнал с тегом nsca_check_disk. Системный журнал обрабатывает это оттуда. Поскольку эти системы (CentOS и FreeBSD) уже имеют встроенные механизмы ротации журналов, мне не нужно беспокоиться о журналах типа /var/log/mycustom.log заправка диска.

*/5 * * * * root    /usr/local/nagios/sbin/nsca_check_disk 2>&1 | /usr/bin/logger -t nsca_check_disk

В / var / log / messages теперь есть одно дополнительное сообщение, в котором говорится:

Apr 29, 17:40:00 192.168.6.19 nsca_check_disk: 1 data packet(s) sent to host successfully.

Мне нравится / usr / bin / logger, потому что он хорошо работает с существующей конфигурацией и инфраструктурой syslog и включен в большинство дистрибутивов Unix. Большинство дистрибутивов * nix уже выполняют ротацию журналов и делают это хорошо.

Подключите выход через регистратор.

0 * * * * root    /usr/local/nagios/sbin/nsca_check_disk | logger -p local0.notice

Редактировать: Ваше обновление выглядит правильным.

Вы также можете запустить crond с опцией -s (или -S в Busybox), чтобы вывод отправлялся на syslog.