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

Nagios 4; Нужен способ увидеть историю службы

Мне нужно разработать историю службы в нагиосе. Итак, я щелкнул службу, а затем «Просмотреть историю этой службы», но получил сообщение об ошибке: «В текущем файле журнала не было найдено никакой информации истории для этой службы». Я просмотрел наши файлы журналов в / usr / local / nagios / var и нашел nagios.log, но файл обновляется один раз в день, что кажется разумным. В этом каталоге есть много других временных файлов с именами в формате nagios.tmp [0-9a-z] {6}, которые, как я полагаю, являются перенесенными журналами для других дней, но они находятся в другом, менее приемлемый формат. Я думаю, что nagios смотрит только на первый файл журнала, а затем отказывается.

Итак, как мне просмотреть всю историю через веб-интерфейс, сохранив при этом ротацию журнала?

Я бы порекомендовал запустить что-то вроде следующего (вы можете адаптировать то, что вы на самом деле используете grep, чтобы сделать поиск более ограниченным, и / или перенаправить второй grep после первого, который выполняет дальнейший выбор строк перед числовым /-n Сортировать):

grep -rni "HOST;SERVICE" /usr/local/nagios/var | sort -n | perl -pe 's/(\d+)/localtime($1)/e' | gzip > /tmp/myservice.gz

Эта команда:

  • grep рекурсивно через все, что ниже /usr/local/nagios/var для этой строки (HOST;SERVICE)
  • отсортировать вывод численно: предполагая временные метки UNIX, это означает, что вывод будет в порядке, независимо от того, в каком порядке находится файл grep: d в
  • используйте perl для преобразования всех временных меток unix в удобочитаемый формат (местное время)
  • сжать вывод до /tmp/myservice.gz для проверки с zless

Эта команда может занять очень много времени, поэтому вы можете поэкспериментировать с тем, какие файлы на самом деле использовать grep (возможно, 2019*), если вы хотите ограничить область видимости, и / или вы также можете использовать grep по метке времени UNIX с помощью регулярного выражения.