Монітор монітора стану http зі сторінкою 404


12

Я намагаюсь відстежувати стан HTTP зі сторінки 404 або 403. Як ви всі знаєте, Моніт сприймає ці сторінки як невдале з'єднання, але як я міг це змінити. Я просто хочу стежити, щоб він відображав сторінку 404 або 403.

Мені потрібно перевірити це за допомогою цього конфігу, якщо можливо.

Це моя перевірка:

check process httpd with pidfile /var/run/httpd.pid
  start program = "/etc/init.d/httpd start"
  stop program = "/etc/init.d/httpd stop"
    if failed host hostname port 80
    protocol HTTP request "/"
    then exec "/bin/bash -c '/bin/echo -e "hostname\thttpd\t3\tFAILED" | /usr/sbin/send_nsca -H nagiosserver -c /etc/send_nsca.cfg; /usr/bin/monit restart nginx;'"

Відповіді:


13

З версії 5.8 у Monit є statusможливість :

Параметр STATUS може використовуватися для явного тестування коду статусу HTTP, поверненого HTTP-сервером. Якщо його не використовувати, тест протоколу http не вдасться, якщо повернений код статусу більший або дорівнює 400. Ви можете змінити цю поведінку, використовуючи класифікатор статусу.

Наприклад, перевірити, чи не існує сторінки (у цьому випадку потрібно повернути 404):

if failed
   port 80
   protocol http
   request "/non/existent.php"
   status = 404
then alert

6

statusЧи не робота для мене (моніт 5,6). Я думаю, що це підтримується від 5.8?

Я закінчив сценарій, який використовує curl:

#!/bin/bash
# source: /etc/monit/bin/http-check.sh

url="http://user:password@domain.com/test_link/index.php"

response=$(curl -sL -w "%{http_code}\\n" $url | grep 404)

if [ "$response" = "404" ]
then
  exit 0
else
  exit 1
fi

Потім я додав наступну конфігурацію monit

check program http-check with path "/etc/monit/bin/http-check.sh"
  if status != 0
  then alert
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.