Как лучше всего контролировать и предупредить на отсутствии события в журналах?

Слишком много возможных причин здесь для предоставления определенного ответа.

Наиболее распространенные проблемы:

  • Неверные конфигурации: проверьте IP-адреса, маски подсети, шлюз и настройки DNS на всех компьютерах. Ищите дублированные IP-адреса, неправильные маски подсети, неправильно обращайтесь/маскируйте к комбинациям (они могут очень эффективно разделить Вашу сеть в частях). Если у Вас есть домен Active Directory, все компьютеры должны использовать сервер в качестве своего и только сервер DNS. Если Вы размещаете больше информации на своей сетевой конфигурации, мы можем быть более конкретными здесь.
  • Защитное программное обеспечение: антивирус (антивирусы) и брандмауэр (брандмауэры) могут нанести ущерб сетевому соединению. Если Вы используете их (включая Windows Firewall, который включен по умолчанию), проверяют их настройки дважды и/или пытаются отключить их для в то время как.
  • Неисправное оборудование: к сожалению, ненадежные коммутаторы и маршрутизаторы действительно существуют; попытайтесь заменить их для исключения аппаратного отказа. Проверьте также сетевые кабели.
3
задан 11 October 2012 в 18:46
8 ответов

http://labs.consol.de/nagios/check_logfiles - это плагин Nagios, который используется для мониторинга файлов журналов. Обычно вы проверяете, есть ли определенный шаблон (сообщение об ошибке). Но это также возможно изменить. Например, если вы запустите check_logfiles --logfile /var/log/mybackup.log --criticalpattern '! резервное копирование выполнено успешно' каждое утро вы будете получать предупреждение, если с момента последнего запуска check_logfiles не было записи сообщения «резервное копирование выполнено успешно».

Gerhard

2
ответ дан 3 December 2019 в 05:14
Было бы лучше, если бы он мог контролировать себя и записывать в журнал запись, если событие не происходит должным образом. Если информация журнала регистрации приложений разрабатывается локально, я бы рекомендовал это решение.

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

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

В любом случае. Убедитесь, что уровень записи в журнале достаточно серьезный, чтобы вас предупредили о необходимости взглянуть на нее с помощью любого инструмента, который вы используете для мониторинга журналов. Лучше, более перспективно и инклюзивно для вещей, о которых вы не задумывались, но должны отслеживать, тогда прослушивать уровень журнала, чем конкретную запись в журнале. Это означает как минимум уровень ПРЕДУПРЕЖДЕНИЕ.

2
ответ дан 3 December 2019 в 05:14

Для выполнения этой задачи можно использовать сценарии Shell / Perl. Вы можете запускать сценарии Shell / Perl через Cron.

Nagios был бы лучшим решением. Это инструмент с открытым исходным кодом, поэтому не нужно ничего платить, но нужно бороться с за его настройку. ;)

Если вам нужен коммерческий продукт, Splunk известен для анализа файлов журнала.

0
ответ дан 3 December 2019 в 05:14

Zabbix - еще одно решение для мониторинга, подобное Nagios. Zabbix имеет возможность отслеживать файлы для различных строк и инициировать срабатывающее оповещение на основе заданных вами критериев (найдено или не найдено). Zabbix также поддерживает "просмотр" назад или с другого момента времени в журнале, что помогает предотвратить ложные срабатывания старых событий. Оповещения можно настроить для отправки электронных писем или SMS.

Веб-сайт Zabbix: http://www.zabbix.com/

Некоторые документы мониторинга журналов Zabbix: http://www.zabbix.com/documentation/2.0/manual/config/ items / itemtypes / log_items

2
ответ дан 3 December 2019 в 05:14

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

Это лишь одно из положительных преимуществ регистрации в базе данных.

0
ответ дан 3 December 2019 в 05:14

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

Что вы также можете сделать, это взглянуть на LogAnalyzer . К сожалению, я не помню, может ли он отправлять электронные письма. Тем не менее, он использует MySQL и хранит там информацию журнала. При установке LogAnalyzer у вас будет две копии ваших журналов, поскольку они идут параллельно: одна в системном журнале, другая в БД. Если у вас есть пользователь этой БД, способный читать ее содержимое, вы можете избежать выполнения вышеупомянутого задания cron. Это может быть не намного лучше, но может добавить еще один уровень защиты.

0
ответ дан 3 December 2019 в 05:14

Мы сделали нечто подобное, где мы получаем уведомление, если мы не получаем новый заказ на веб-сайте в течение последних N часов. Мы создали URL PushMon с расписанием «каждые 3 часа». Затем мы назвали URL-адрес PushMon на нашей странице благодарности (JavaScript). Если мы не получим заказ, PushMon заметит отсутствие вызова и отправит предупреждение.

PushMon хорошо работает для предупреждения вас о событиях, которые не происходят.

0
ответ дан 3 December 2019 в 05:14

Nagios может сделать это за вас с легкостью. Лично мне нравится все, что я могу легко запустить из командной строки и / или легко настроить через Nagios или Crontab.

LOGROBOT может делать именно то, что просит OP ... с помощью одной простой записи в командной строке. :

./ logrobot autonda / prod / apps / mylogfile 60m 'заказы отправлены' '.' 1 2 subscription_orders -ndnotfoundn

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

Как правило, эта команда выдает предупреждение, если хотя бы одна запись «заказы отправлены» НЕ находится в файле журнала / prod / apps / mylogfile. Он будет предупреждать о критическом состоянии, если в журнале не будет найдено как минимум 2 записей о «отправленных заказах».

1
ответ дан 3 December 2019 в 05:14

Теги

Похожие вопросы