Добрый день!
Необходимо мониторить некий список сайтов на доступность и так, чтобы при 301 редиректе, проверялось состояние сайта на который идет перенаправление с проверяемого URL. Подскажите, пожалуйста:
1) Есть ли такая возможность в Zabbix
2) как можно реализовать проверку "301 -> 200ок?" скриптомСпасибо!
> Добрый день!
> Необходимо мониторить некий список сайтов на доступность и так, чтобы при 301
> редиректе, проверялось состояние сайта на который идет перенаправление с проверяемого
> URL. Подскажите, пожалуйста:
> 1) Есть ли такая возможность в Zabbix
> 2) как можно реализовать проверку "301 -> 200ок?" скриптом
> Спасибо!RC wget-а проверять.
>> Добрый день!
>> Необходимо мониторить некий список сайтов на доступность и так, чтобы при 301
>> редиректе, проверялось состояние сайта на который идет перенаправление с проверяемого
>> URL. Подскажите, пожалуйста:
>> 1) Есть ли такая возможность в Zabbix
>> 2) как можно реализовать проверку "301 -> 200ок?" скриптом
>> Спасибо!
> RC wget-а проверять.Спасибо, но не могли бы пояснить что это такое RC?
>> RC wget-а проверять.
> Спасибо, но не могли бы пояснить что это такое RC?Ээээ.... 8-O
Return Code, наверное. Он же "exit code", "$?", status..............
>>> RC wget-а проверять.
>> Спасибо, но не могли бы пояснить что это такое RC?
> Ээээ.... 8-O
> Return Code, наверное. Он же "exit code", "$?", status..............т.е. с помощью rc можно проверить статус ответа URL который за 301 redirect?
>>>> RC wget-а проверять.
>>> Спасибо, но не могли бы пояснить что это такое RC?
>> Ээээ.... 8-O
>> Return Code, наверное. Он же "exit code", "$?", status..............
> т.е. с помощью rc можно проверить статус ответа URL который за 301
> redirect?Что последний в цепочке редиректов был 200-ым.
> 1) Есть ли такая возможность в Zabbixzabbix-agent с помощью UserParameter может выполнять любой скрипт и возвращать результат в zabbix-server
> zabbix-agent с помощью UserParameter может выполнять любой скрипт и возвращать результат
> в zabbix-serverzabbix_server (и proxy иже с ним) в External script (hint:тип айтема) может делать то же.
> Добрый день!
> Необходимо мониторить некий список сайтов на доступность и так, чтобы при 301
> редиректе, проверялось состояние сайта на который идет перенаправление с проверяемого
> URL. Подскажите, пожалуйста:
> 1) Есть ли такая возможность в Zabbix
> 2) как можно реализовать проверку "301 -> 200ок?" скриптом
> Спасибо!В общем, был такое кейс:
0. нужно распарсить из основного списка sitemap`ов, список действующих.
1. затем, поочередно, проходится по списку действующих сайтмапов и распарсив URLы - рандомно (из каждого сайтмапа) проверить на отсутствие ошибок.
2.При этом, 301 - не считается ошибкой, но необходимо чтобы в итоге (в случаи даже неоднократного редиректа) отдавался статус крайней страницы (я решил что промежуточные статусы не важны)Вот пример того, что у меня получилось:
---#!/bin/bash
DATE=$(date +%Y-%m-%d:%H:%M:%S)
LOGFILE='/var/log/errorsitemaps.log'
URLLIST='/tmp/urlist.txt'
XMLLIST='/tmp/xmlist.txt'XMLSOURCE='/путь/до/вашего/основного/sitemap.xml'
cat $XMLSOURCE | tr '><' '\n' | grep -P '^http' > $XMLLIST#выше приведенный сайтмап, отдает в свою очередь урлы по которым доступны активные сайтмапы.
#Чтобы не грузить nginx курлом, ниже я заменяю https://example.com/sitemap на локальный путь /var/www/project/sitemap. Изящней было бы использовать "tr"
sed -i "s/https\:\/\/example\.com\//\/var\/www\/project\/sitemap\//g" $XMLLISTfor line in $(cat $XMLLIST); do
cat $line | tr '><' '\n' | grep -P '^http' > $URLLIST
RANGE=$(wc -l $URLLIST | awk '{print $1}')
number=$RANDOM
let "number %= $RANGE"
PAGE=$(sed -n "${number}p" $URLLIST)#как и писал выше: "301 - не считается ошибкой, но необходимо чтобы в итоге,
#в случаи редиректа, отдавался статус крайней страницы (я решил, что промежуточные статусы не важны)"MARK=$(curl -I --connect-timeout 5 --location $PAGE | grep -P '^HTTP' | awk '{print $2}' | tr -d '\n')
case $MARK in
200)
echo "$DATE $PAGE $MARK" >> $LOGFILE
;;
*)
echo "error $MARK from URL $PAGE" | mail -s "$MARK $DATE" recipient@example.com & echo "$DATE $PAGE $MARK" >> $LOGFILE
;;
esacdone
---
Ну и далее - в крон.
Может кому пригодится. Изящность скрипту придавайте самостоятельно.
> Добрый день!
> Необходимо мониторить некий список сайтов на доступность и так, чтобы при 301
> редиректе, проверялось состояние сайта на который идет перенаправление с проверяемого
> URL. Подскажите, пожалуйста:
> 1) Есть ли такая возможность в Zabbix
> 2) как можно реализовать проверку "301 -> 200ок?" скриптом
> Спасибо!https://github.com/dkhamsing/awesome_bot