Контролируйте несколько сетей в сервере в nagios

Можно использовать сканирования Ping, которые запускаются с P-флага. Однако я лично использую-sL для этого задания.

http://nmap.org/book/man-host-discovery.html

3
задан 5 December 2016 в 18:42
4 ответа

check_http может проверять только один сайт за раз. Если вам нужно проверить несколько сайтов за одну проверку службы, вам нужно будет написать свой собственный чек для реализации логики. Это можно легко сделать с помощью простого сценария оболочки, который вызывает check_http для каждого виртуального хоста и возвращает соответствующий код ошибки в Nagios, если какое-либо из выполнений check_http завершается неудачно. Такой сценарий может выглядеть следующим образом.

#!/bin/sh

for HOST in $* ; do
   check_http -H $HOST [...other args...] >/dev/null 
   if [ $? -ne 0 ] ; then
      echo "$HOST not responding"
      exit 2
   fi
done
echo "All hosts ok"
exit 0

В качестве альтернативы вы можете использовать зависимости служб Nagios для достижения своей цели. Предположим, что вы хотите проверить все свои виртуальные хосты Apache, но не получать уведомления для каждого из них, если процесс Apache недоступен. Это позволит вам видеть подробную информацию о статусе каждого виртуального хоста, позволяет создавать более детализированные отчеты, и позволить вам иметь разные варианты уведомлений и периодов времени.

Чтобы реализовать это, вы должны создать проверку службы для каждого виртуального хоста, а затем создать одну проверку для Apache, предположительно, используя check_http для проверки через IP-адрес и убедитесь, что что-то есть прослушивание порта 80.

Затем вы должны создать зависимости служб для каждой проверки службы виртуального хоста и настроить их так, чтобы они зависели от проверки Apache. Если проверка Apache не удалась, все проверки виртуального хоста (которые зависят от проверки Apache) перестанут отправлять уведомления и / или выполнять проверки до тех пор, пока проверка Apache не будет восстановлена.

предположительно, используя check_http, чтобы проверить через IP-адрес и убедиться, что что-то прослушивает порт 80.

Затем вы должны создать служебные зависимости для проверки службы каждого виртуального хоста и настроить их так, чтобы они зависели от проверки Apache. Если проверка Apache не удалась, все проверки виртуального хоста (которые зависят от проверки Apache) перестанут отправлять уведомления и / или выполнять проверки, пока проверка Apache не будет восстановлена.

предположительно, используя check_http, чтобы проверить через IP-адрес и убедиться, что что-то прослушивает порт 80.

Затем вы должны создать служебные зависимости для проверки службы каждого виртуального хоста и настроить их так, чтобы они зависели от проверки Apache. Если проверка Apache не удалась, все проверки виртуального хоста (которые зависят от проверки Apache) перестанут отправлять уведомления и / или выполнять проверки до тех пор, пока проверка Apache не будет восстановлена.

6
ответ дан 3 December 2019 в 04:50

Напишите сценарий bash, который вызывает check_http.pl несколько раз для каждого переданного аргумента.

Настройте его как свой собственный тип службы, и вы готовы к работе.

Я Я недостаточно хорошо знаком с bash, чтобы делать это, но несколько базовых руководств по bash с легкостью помогут вам в этом.

2
ответ дан 3 December 2019 в 04:50

"Правильный" способ сделать это - использовать check_multi:

http://my-plugin.de/wiki/projects/check_multi/start

Настройте check_multi на вызвать сразу несколько проверок check_http (см. check_http --help и посмотрите на флаги -H и -I). Вы можете задать пороговые значения для количества предупреждений / критических ударов до тех пор, пока мультисервис не будет предупрежден / крит, и т. Д. Он очень мощный и гибкий.

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

http://nagios.sourceforge.net/docs/3_0/clusters.html

2
ответ дан 3 December 2019 в 04:50

Да, это возможно, я написал об этом в блоге . Здесь дублируется основной материал.

Вам понадобится (1) сценарий, который принимает список URL-адресов, проверяет их и возвращает коды состояния, если необходимо, (2) команда Nagios, которая использует сценарий, (3) определение хоста, которое использует команда для проверки.

Поместите сценарий в / etc / nagios3 / check_urls .

Определите команду в /etc/nagios3/conf.d/ commands.cfg :

define command {
    command_name check_urls
    command_line /etc/nagios3/check_urls $_HOSTURLS$
}

Определите хост в /etc/nagios3/conf.d/hosts.cfg :

define host {
    host_name     example-host
    alias         My Example
    address       123.123.123.123
    check_command check_urls
    _urls         my-blog.com,my-api.com/check
}
1
ответ дан 3 December 2019 в 04:50

Теги

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