LINUX.ORG.RU

локальная тулза мниторинга серверов


0

0

Привет!
Возникла необходимость сделать софтину чтоб мониторила сервера. Серверов много и рабочих компов тоже.
Оцените алго, может у вас не так сделано. Ну или идеи какие будут. Кроме использования сторонних сервисов мониторинга(!)

На домены заливается файл например test.php, который при передаче ему параметра test.php?q=15 выдает число в 2 раа большее. то есть 30 в данном случае. хорошо бы использовать md5 в кач-ве результата но это лишняя ненужная нагрузка.

На домашнем роутере стоит скрипт который по крону каждые 5 минут обходит все домены, и пытается загрузить test.php , если загруженно и параметр правильный в ответе, то ок, иначе в базу пишется что мол такой то сервак ил домен не ответил.

На дексктопах стоит софт который висит в трее, и каждые 5 минут ломится на роутер, откуда грузит скрипт который и базы выуживет ошибки. Парсит страницу скрипта, и если что не так выдает алерт в виде пилы частотоц 200Гц))) Типа как в Ту-154 при снижении на 50 метров))))) . Софт пока что под win потому что kylix я еще не пробовал ставить. В софте есть кнопочка ресет которая чистит базу после устранения.

Преимущества, мониторинг не зависит от погоды на десктопах, этим занимается роутер.

Как думаете правильная ли концепция?

И может кто подскажет как сделать чтоб test.php мог дать команду top, чтоб получить load average? он то под апачем бегает, вряд ли ему система даст выполнить такую команду.

И стоит ли добавить проверку на наличе соединения, например получили ошибку, скрипт пытается загрузить robots.txt с сайта kernel.org, если загрузил значит коннект есть и ошибка не в этом?


И еще, может кто знает, kylix вообще под KDE заточен? Им делать софтину чтоб висела в «трее» под nix? А то я никогда не писал десктопный софт под linux. Вот думаю наверно kylix надо поставить, или есть моднее среды?

evolutionX
() автор топика

QtCreator - твоя мечта. Лучшая IDE в Linux для C++, а тем более, и для Qt.
Софт для отслеживания серверов уже существует. Сотни их. Поищи, я уверен что найдётся то что тебе нужно. Если не ГУИшное и специально для кед, то, как минимум, консольное.
Вообще глянь в сторону heartbeat. Вроде он для подобного создавался.

tia
()
Ответ на: комментарий от tia

спасибо, посмотрю на предмет отдирания кода который мониторит)))
heartbeat он для замены серверов в кластере. а мне просто алерт, админов датацентров пинать) да и вряд ли роутер асус потянет что то кроме простенького php скрипта загружающего тестовые файлы.

про QtCreator спасибо!! не знал. буду ставить. если есть что то вроде, как на винде, webbrowsera, актив-х интерфейса для IE, ну или любого полноценного броузера, то вообще будет сказка))) ведь есть же?) у меня то прям больной вопрос, сейчас софт который лазит по инету пускаю с винды чере вмварю. а то webbrowser совсем не безопасный.

а вот еще, какие есть IDE под линукс в которых можно юзать полноценный броузер? тупо грузить можно и на php, но мне нужен полноценный парсинг страницы в Doc.Obj.Model. , да еще и флеш чтоб понимал... на винде легко, а как под линукс? и, если такое есть, то на чем это можно делать так чтоб софт был консольный в итоге, или это уже фантасика?

я то все по старинке, как человек воспитанный qbasicom на 80286, пишу на рhp, delphi, visal с++. все что было модно 10 лет назад..)))) если обьемы работ больше то скрипты пускаю с линукса.. а сейчас столько сред разработки новых, а я даже про них и не знаю...

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

>heartbeat он для замены серверов в кластере
Да, глянул в вику, вспомнил.

да и вряд ли роутер асус

WL-5*? Потянет. Много что потянет.

webbrowsera

QtWebKit. Это движок для браузера. Фактически, готовый браузер. Есть даже виджет на нём - WebBrowser(Смотри в QtDesigner, если хочется просто поиграться).

ведь есть же?

Вообще зачем? Тебе нужно послать HTTP-запрос, получить ответ и... всё. Для этого можно вообще таких вещей не использовать. Достаточно Qhttp.
Смотри сюда: http://doc.trolltech.com/4.6/qhttp.html

полноценный парсинг страницы в Doc.Obj.Model

Как я сказал выше, не понимаю зачем оно тебе здесь. Ведь достаточно в plain-text отсылать.
Для парсинга просто юзай XHTML(т.е. пиши валидный html по правилам xml) + QXml(парсится как xml).

да еще и флеш чтоб понимал

Флеш вообще от лукавого.

или это уже фантасика?

Всё просто. Если использовать твою мысль, то делаем так:
1) На каждом сервере ставим nginx + что-нить, что может отреагировать по-разному на запросы. К примеру, PHP или Python. Вообще можно сделать и хитрее, вообще без скриптинга. Но там потом придумаешь.
2) На клиенте(т.е. откуда чекаем состояние серверов) ставим приложение для мониторинга.

Приложение для мониторинга:
1) Берём QtCreator, создаём «простое» консольное приложение.
2) Пишем код:
2.1) Открываем список серверов (QFile)
2.2) Шлём запрос на сервер (QHttp)
2.3) Получаем от сервера ответ (QHttp)
2.4) Чекаем валидность ответа (ну просто операциями сравнения, лол)
2.5) Не верно - пишем в лог(или через libnotify шлём popup). Верно - ок.
2.6) Следующий сервер. Опять пункт 2.2
3) Ставим на роутер и в крон

tia
()
Ответ на: комментарий от evolutionX

И да, банальные вопросы, чисто так, для статистики:
1) Сколько тебе лет?
2) Какие языки знаешь?
3) На каких языках уверенно пишешь?
4) На каких языках пишешь?
5) Это по работе?
6) Кем работаешь?
7) Сколько получаешь?

tia
()

и чего только не делают люди чтоб zabbix не ставить.

Komintern ★★★★★
()
Ответ на: комментарий от tia

по поводу зачем надо, как самый простой пример, не люблю это слово но вроде как называется honeypot. можно грузить текст, да. а как быть с javascriptom? парсить? не умно. шифрованный javascript сразу обламывает. нужно например прогнать несколько сотен тысяч сайтов через анализатор, на предмет выявления шифрованных ифреймов в которых может быть «код», причем хороший и рабочий, с высокой эффективностю и тд.. тут только через полную эмуляцию, иначе как получить готовый массив расшифрованных ифреймов? массово по другому никак. повторюсь, это как пример, и далекой молодости, когда деревья были большие, а «спецсофт» очень много приносил. сейчас мне такое не нужно.

кстати документ преобраованный в модель имеет человеческий вид, парсить его одно удовольствие...

1 - 27
2 - незнаю. пишу в зависимости от задачи. обычно php для скриптинга, дельфи для виндового софта с интерфейсом (для себя), остальное по мере надобности. эти самые удобные, а я ленивый, люблю на автомате чтоб все работало, вот они основне инструменты. но было дело драйвера писал) сегодня например придется вспоминать как юзать olly debugger, и кое что на масме делать.. не проблема языки, главное чтоб интерес был, писать можно на чем угодно, имхо от задачи зависит.

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

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

7 - сейчас мало совсем. раньше выходила средняя зарплата меньше чем за сутки. рекламу перепродавать это дело такое.. если работает то очень много. ну как пример. чтоб к выходным было 10 тыс уе в кармане такого сейчас нет. может будет может нет. но приносить конторе сто тыс уе в месяц получаяя при этом всего одну я не буду.

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

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

может принято у некоторых что «компьютерщик» это тупой студент, который делает все, а программер это подросший студент, но я так не считаю. я не для того в 12 лет начинал писать на бейсике в тетрадке тк компа не было))))))

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

>как быть с javascriptom?
Стоп стоп стоп. Тебе просто нужно проверить жив ли сервер и отдаёт ли то что нужно. Разве не достаточно одной страницы, которая выполняет математическое действие с аргументами и возвращает в plain-text?

tia
()
Ответ на: комментарий от tia

ой сорри не так понял. я думал ты про зачем юзать полную эмуляцию когда можно открыть сокет и получить текст страницы, я там выше написал.

а тут конечно, хватит file_get_contents...

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

точнее не через file_get_contents а через сокеты неблокируемые, чтоб сразу несколько десятков запросов отправлять.

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

>я думал ты про зачем юзать полную эмуляцию когда можно открыть сокет
Именно про это я и говорю.

я там выше написал.

Я упустил что-то? Не вижу оснований использовать «полную эмуляцию»(как ты назвал).

tia
()
Ответ на: комментарий от tia

>Вообще зачем? Тебе нужно послать HTTP-запрос, получить ответ и... всё. Для этого можно вообще таких вещей не использовать. Достаточно Qhttp.

про браузер я спросил не для этого софта а чтоб между делом узнать, можно ли на линуксе юзать аналог мелкомягкого webbrowsera. выяснилось что можно. что есть очень хорошо.

«полную эмуляцию» . угу. реального пользователя. а как это называется правильно? как никак, эмуляция имеет место быть.

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

Даже пусть ты хочешь делать «полную-полную эмуляцию», я не могу понять зачем оно тебе, ибо, как я уже говорил, для получения «ответа» от вебсервера можно использовать любые методы. В т.ч. Qhttp.
Если тебе уж так хочется, то можешь просто заменить user-agent в запросе Qhttp + реферал ставить + куки сохранять. Не пойму зачем только оно в мониторинге.

tia
()

> И может кто подскажет как сделать чтоб test.php мог дать команду top, чтоб получить load average? он то под апачем бегает, вряд ли ему система даст выполнить такую команду.

Что именно ты хочешь мониторить?
Если это не троллинг, стукнись ко мне в джаббер, поговорим.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Это слишком просто и не интересно. В джаббер я и сам мог его позвать. Данные разговоры ценны для ЛОРа чтобы было куда посылать остальных, да и знающие могут что почерпнуть.

tia
()
Ответ на: комментарий от tia

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

Lumi ★★★★★
()
Ответ на: комментарий от tia

Мне интересно, что именно (какие параметры) собрался мониторить товарищ. Если только проверять, отдаёт ли его хоумпагу локалхостинг, то я пойду дальше, потому как из маловнятного описания топикстартера я ничего не понял.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

за приглашение спасибо только вот нету у меня мессенгеров никаких) надо будет поставить. все как то без них последнее время обхожусь.

проверка отдает ли вообще хоть что то нагруженный сервер, это наывается хоумпага на локалхосте?

а что еще там смотреть? есть ли коннект к базе разве.

мне это по сути в качестве алерта в случае падения.

top'ы можно и в консолях пооткрывать по сути.. только что там, смотреть как появляются и исчезают чайлды апачевские? а полностью мониторинг это перебор, слишком много лишней инфы.

когда то у меня было такое что сайтеги сделанные под поисковики, настолько им нравились, что те делалли аж по 1000 запросов в минуту. трясли сервер стабильно по утрам по часу-два. даже подвисал как то. вот от примерно таких ситуаций. по моему оптимально. но это когда они жрали паги сгенеренные на ходу.. сейчас такого нету.

если есть идеи что еще можно забрать скриптом мониторинга, то давайте тут, вот еслиб кто сказал как мне из php скрипта забрать верхушку от команды top, былобы замечательно. в shell_exec нельзя же запихнуть top, а если можно, то как сделать чтоб апач имел права на выполнение top?

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

«Спеллчекеров наверное тоже нет?» :(
«Нет сил парсить эти брайндампы.»

Если хотите, чтобы Вам отвечали и помогали, научитесь разговаривать на русском языке.

У меня мониторится так:

crontab -l
* * * * * /usr/local/bin/stats > /dev/null 2>&1

cat /usr/local/bin/stats
#! /bin/bash

/usr/local/bin/getstat | /usr/local/bin/gensql | ssh mike@statserver -C «cat | mysql -u stat -D ИМЯСЕРВЕРАstat»

Первый скрипт собирает нужную мне статистику в виде текста, второй делает из этого текста сикльзапросы. Авторизация настроена по ключам без пароля. Мускуль на статсервере работает строго через локальный сокет. Вебморда к базе, пиши что хочешь, анализируй как приспичит.
У меня мониторится всё, начиная от температуры корок, до частоты питающего напряжения у бесперебойников.

Lumi ★★★★★
()

Тебе нужен zabbix. Или хотя бы nagios.

Идея правильная, но реализация — велосипед. Все давно уже сделано.

nnz ★★★★
()
Ответ на: комментарий от Lumi

тоже нету. и даже пунтосвитчера нету. шифт так отломали давно. про русский язык улыбнуло))

весьма интересно, но скрипт собирающий статистику не сможет проверить как себя чувствует апач и нгинкс, не сделав тестовую загрузку страницы.

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

так что внешний запрос лучше чем внутренний сбор данных и отправка их на статсервер.



evolutionX
() автор топика
Ответ на: комментарий от nnz

nagios понравился по скриншотам. очень даже ничего так. но гуделку все равно прикручивать надо)

evolutionX
() автор топика
Ответ на: комментарий от evolutionX

> весьма интересно, но скрипт собирающий статистику не сможет проверить как себя чувствует апач и нгинкс, не сделав тестовую загрузку страницы.

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


Поэтому я и спросил, что именно нужно мониторить. Я скриптом мониторю то, что просто так из апача не отмониторишь. Да и нет у меня апача на серверах, кроме одного. Если тебе нужно проверять жив твой *ВЕБ*-сервер, или уже сдох, то для этого уже понаписали много всего и много чего уже здесь из готового пасоветовали. Выбирай, что лучше подойдёт и на что гдаз будет радоваться.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Тьфу! Чёрт... s/пасоветовали/посоветовали/

Lumi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.