Проверяя в очередной раз работу снимаемых метрик посредством Zabbix наткнулся, что мой сервер распределенного мониторинга перестал формировать данные температуры в частности где я расписывал все проделанные (работающие моменты) действия в заметке:
Пробую запустить скрипт получения данных температуры:
aollo@srv-zabbix:/usr/lib/zabbix/externalscripts$ ./temp
weather: error: failed to retrieve
http://weather.noaa.gov/pub/data/observations/metar/decoded/UUDD.TXT
HTTPError: HTTP Error 404: Not Found
Получаю ответ, что данного URL адреса нет, а если попробовать скачать данный текстовый файл:
aollo@srv-zabbix:/usr/lib/zabbix/externalscripts$ wget http://weather.noaa.gov/pub/data/observations/metar/decoded/UUDD.TXT
–2016-08-30 16:32:53– http://weather.noaa.gov/pub/data/observations/metar/decoded/UUDD.TXT
Resolving weather.noaa.gov (weather.noaa.gov)… 93.191.15.168, 93.191.15.160
Connecting to weather.noaa.gov (weather.noaa.gov)|93.191.15.168|:80… connected.
HTTP request sent, awaiting response… 404 Not Found
2016-08-30 16:32:53 ERROR 404: Not Found.
И тоже нет, а если скопировать данный URL адрес в браузер, то а вот оно что, больше данной ссылке нет и работу сервиса предлагается оценить задействовав: weather.gov или tgftp.nws.noaa.gov
Иду по второму варианту скачиваю новый документ по другому URL адресу:
aollo@srv-zabbix wget http://tgftp.nws.noaa.gov/weather/current/UUDD.html
Проанализировал скачанный файл, нахожу нужные мне данные и разбираю их до значения которое мне нужно:
aollo@srv-zabbix cat UUDD.html | sed -n -e 166p | awk '{print $5}'
(17
aollo@srv-zabbix cat UUDD.html | sed -n -e 166p | awk '{print $5}' | cut -d '(' -f2
17
итого скрипт будет следующим:
#!/bin/bash
wget http://tgftp.nws.noaa.gov/weather/current/UUDD.html -O /tmp/UUDD.html
cat /tmp/UUDD.html | sed -n -e 166p | awk '{print $5}' | cut -d '(' -f2
rm /tmp/UUDD.html
exit
aollo@srv-zabbix ./temp
–-2016-08-30 16:47:20– http://tgftp.nws.noaa.gov/weather/current/UUDD.html
Распознаётся tgftp.nws.noaa.gov (tgftp.nws.noaa.gov)… 140.90.101.79
Подключение к tgftp.nws.noaa.gov (tgftp.nws.noaa.gov)|140.90.101.79|:80… соединение установлено.
HTTP-запрос отправлен. Ожидание ответа… 200 OK
Длина: 28358 (28K) [text/html]
Сохранение в: «/tmp/UUDD.html»
100%[======================================>] 28 358 –.-K/s за 0,1s
2016-08-30 16:47:20 (202 KB/s) – «/tmp/UUDD.html» сохранён [28358/28358]
17
Также и для относительной влажности:
aollo@srv-zabbix:/usr/lib/zabbix/externalscripts$ ./humi
weather: error: failed to retrieve
http://weather.noaa.gov/pub/data/observations/metar/decoded/UUDD.TXT
HTTPError: HTTP Error 404: Not Found
aollo@srv-zabbix wget http://tgftp.nws.noaa.gov/weather/current/UUDD.html
aollo@srv-zabbix cat UUDD.html | sed -n -e 174p | awk '{print $3}' | cut -d '%' -f1
88
Итого мой костыль:
#!/bin/bash
wget http://tgftp.nws.noaa.gov/weather/current/UUDD.html -O /tmp/UUDD1.html
cat /tmp/UUDD1.html | sed -n -e 174p | awk '{print $3}' | cut -d '%' -f1
rm /tmp/UUDD1.html
exit
После замещаю содержимое ранее созданных скриптов на сервере Zabbix и для активации внесенных изменений перезапускаю службу агента Zabbix:
aollo@srv-zabbix:~$ sudo service zabbix-agent restart
Вот теперь мониторинг погоды на улице возобновлен.
Итого, пусть даже произошли изменения в работе, главное желание настроить все что поменялось и любым способом который Вы в данном случае видите как наиболее быстрый. Пусть поначалу это выглядит коряво, возможно в дальнейшем покуда Вы наберетесь опыта решение преобразится. Вот и сейчас, я на сколько возможно быстро решил проблему подкинутую сервисом предоставляющим текущую температуру и относительную влажность. Вот так вот, нельзя на 100% надеяться на онлайн сервисы — все должно быть свое, можно просто повесить за окно датчик температуры и подключить его и уже с него снимать информацию. Конечно же об этом я поведую чуть позже, но поведую , а пока до новых встреч, с уважением автор блога — ekzorchik.