Краще ведення журналу для кронівок? Надіслати вихід cron в syslog?


43

Я шукаю кращого способу ввімкнути кронштейни. Більшість кронштейнів, як правило, спамують електронну пошту чи консоль, ігнорують або створюють ще один файл реєстрації.

У цьому випадку у мене є сценарій Nagios NSCA, який надсилає дані до центральної частини Nagios. Цей скрипт send_nsca також друкує єдину рядок статусу в STDOUT, вказуючи на успіх або невдачу.

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

Це повідомлення надсилає повідомлення root @ localhost, яке потім передається моїй команді sysadmins. Спам.

перенаправлено nsca_check_disk: 1 пакет даних, що надсилаються на хост успішно.

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

  1. Не спамує повідомлення на електронну пошту чи консоль
  2. Не створюйте ще один важкий лог-файл, який потребує очищення через місяці чи роки.
  3. Зберігайте інформацію про журнал десь, щоб за бажанням її можна було переглянути згодом.
  4. Працює на більшості Unix
  5. Вписується в існуючу інфраструктуру журналу.
  6. Використовується загальноприйняті системні конвенції, такі як "об'єкт" та "пріоритет"
  7. Може працювати з сторонніми сценаріями, які не завжди роблять внутрішній журнал.

Відповіді:


69

У процесі написання цього питання я відповів собі. Тож я відповім собі "в стилі небезпеки ". Це пояснюється відповіддю Денніса Вільямсона.

Далі буде надісланий будь-який вихід Cron /usr/bin/logger(включаючи stderr, який перетворюється в stdout за допомогою 2>&1), який буде надіслано в syslog, з 'тегом' nsca_check_disk. Syslog обробляє його звідти. Оскільки ці системи (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 вже роблять обертання журналу і роблять це добре.


1
Що робить команда 2> & 1? що це означає? Дякую.
Бретцький


з systemd в Ubuntu 00 00 * * * systemd-cat -t "tagname" /path/to/app.shпісляsudo crontab -u root -e
тире

5

Трубопровід виводиться через реєстратор .

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

Редагувати: ваше оновлення виглядає як правильний шлях.


Дякую! Після того як я опублікував своє запитання, я побачив, що Apache трубопровід виводить у / usr / bin / logger. Я не усвідомлював, що ми можемо передавати висновок до реєстратора (1) - це не в манері!
Стефан Ласєвський

2
"message - Запишіть повідомлення в журнал; якщо це не вказано, а прапор -f не надано, записується стандартний вхід."
Денніс Вільямсон

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.