Комментарии 47
ЖЕСТЬ, я даже не представляю сколько людей перевернулось в гробу.
+11
а что именно не нравится?
+1
Ну, например, не нравится неопределенность с лицензией. «GNU copyleft» — это как-то совсем не ссылка на конкретный юридически-значимый документ, а просто название какой-то идеологии. У того же GNU вон постоянно идут баталии GPLv2, GPLv2+, GPLv3, LGPL, AGPL — это все разные лицензии с разными совместимостями и смыслами. А если брать шире — все, что сколько-нибудь соответствует идеологии copyleft — таких лицензий будет несколько десятков.
А по существу — ну, более-менее понятная задача и способ решения. Если не смотрели еще на Inquisitor — посмотрите, там примерно то же самое делается (примерно так же дергаются из шелл-скрипта и парсятся выводы разных команд), но на несколько более фундаментальном уровне. Мониторинги там тоже есть.
Могу еще на вызов iostat поругаться: в том виде, в котором вы его сделали, он практически ничего адекватного не показывает. iostat надо смотреть именно в динамике с какими-нибудь хорошо подобранными интервалами типа 5-10 секунд (при этом неплохо бы понимать, откуда берутся именно 5 или 10 секунд).
А по существу — ну, более-менее понятная задача и способ решения. Если не смотрели еще на Inquisitor — посмотрите, там примерно то же самое делается (примерно так же дергаются из шелл-скрипта и парсятся выводы разных команд), но на несколько более фундаментальном уровне. Мониторинги там тоже есть.
Могу еще на вызов iostat поругаться: в том виде, в котором вы его сделали, он практически ничего адекватного не показывает. iostat надо смотреть именно в динамике с какими-нибудь хорошо подобранными интервалами типа 5-10 секунд (при этом неплохо бы понимать, откуда берутся именно 5 или 10 секунд).
+1
Что касается лицензии — то это тупо заглушка. Если вы внимательно читали — в абзаце, где я выставляю права rwx для всех и вся, я говорю, что версия тестовая, ибо половины функционала еще нет. В данный момент вяжу curl с веб-сервисами типа ifconfig.me и делаю аналог удаленного управления по ssh, только на BASH.
Что качается нормальных систем мониторинга, то на эту нишу я не претендую, цель проекта, что первоначального, что конечного — явить мощь BASH. Кому нужно знать всё ставят Nagios и Zabbix. Я же принципиально использовал лишь те команды, которые порой мелькают в tty опрошенных линуксойдов. Можно было сделать по людски, можно было писать на С/С++, но мне хотелось следовать принципу KISS и получить максимально лёгкую систему.
Что касается iostat — его функция в данном проекте — лишь набить меню. В том варианте, что использую я в данный момент времени, нет ни iostat, ни всего пункта network. К вопросу я хотел подойти максимально объективно и были созданы несколько тем, в т.ч. голосование на linux.org.ru, с результатов которых был сформирован список предоставляемой информации. И всё же несмотря на всю объективность, это всего лишь куски кода, которые решают конкретно мою задачу, хотя и содержат задатки для того, чтобы заинтересованные люди свободно брали и улучшали, переделывали под себя, делали превосходящие аналоги на базе этой идеи. Разве не для этого есть опенсорс?
Благодарю за объективную критику.
Что качается нормальных систем мониторинга, то на эту нишу я не претендую, цель проекта, что первоначального, что конечного — явить мощь BASH. Кому нужно знать всё ставят Nagios и Zabbix. Я же принципиально использовал лишь те команды, которые порой мелькают в tty опрошенных линуксойдов. Можно было сделать по людски, можно было писать на С/С++, но мне хотелось следовать принципу KISS и получить максимально лёгкую систему.
Что касается iostat — его функция в данном проекте — лишь набить меню. В том варианте, что использую я в данный момент времени, нет ни iostat, ни всего пункта network. К вопросу я хотел подойти максимально объективно и были созданы несколько тем, в т.ч. голосование на linux.org.ru, с результатов которых был сформирован список предоставляемой информации. И всё же несмотря на всю объективность, это всего лишь куски кода, которые решают конкретно мою задачу, хотя и содержат задатки для того, чтобы заинтересованные люди свободно брали и улучшали, переделывали под себя, делали превосходящие аналоги на базе этой идеи. Разве не для этого есть опенсорс?
Благодарю за объективную критику.
+1
Хотите явить мощь BASH? Или хотите сделать все руками сами?
Для первого вполне можно было использовать shsite или похожий готовый скрипт темплейтов html на BASH.
А то эта смесь html и кода… что то уж очень напоминает, от чего все сбежали как от огня)
Для первого вполне можно было использовать shsite или похожий готовый скрипт темплейтов html на BASH.
А то эта смесь html и кода… что то уж очень напоминает, от чего все сбежали как от огня)
0
И то и другое. Вообще можно было много чего сделать. Можно и по ssh это вбивать и смотреть выхлоп глазами, например. И да, ssh в разы мощнее сего.
Меня вот html не пугает. Я лет с 4х, наверное, не боюсь букв и их сочетаний.
Меня вот html не пугает. Я лет с 4х, наверное, не боюсь букв и их сочетаний.
-1
Меня вот html не пугает. Я лет с 4х, наверное, не боюсь букв и их сочетаний.
очень за вас рад. правда-правда)
И то и другое. Вообще можно было много чего сделать. Можно и по ssh это вбивать и смотреть выхлоп глазами, например. И да, ssh в разы мощнее сего.
при чём тут ssh? Я ещё помню разгребания сайтов на си написанных, где так же html выплевывался printf-ом.
Писать что-то новое в 21-м веке, смешивая логику и представление — это финиш.
0
Пожалуйста засуньте скрипты под спойлеры — ужасно неудобно, просто неуважение к читающим. Спасибо.
+6
Это просто гениально! Спасибо за статью!
P.S спойлеры не помешали б…
P.S спойлеры не помешали б…
-5
Для отдачи статики используйте nginx, apach тут совершенно не нужен.
Странная работа с шаблоном. Почему бы не использовать заменяемые плейсхолдеры?
Типа:
И потом в коде заменять @@MAIN_TEMP@@ на нужное значение с помощью sed, perl или как удобнее.
Странная работа с шаблоном. Почему бы не использовать заменяемые плейсхолдеры?
Типа:
<div class="temperature">@@MAIN_TEMP@@</div>
И потом в коде заменять @@MAIN_TEMP@@ на нужное значение с помощью sed, perl или как удобнее.
+1
Можно и так, мне что первое в голову пришло — так я и реализовал, потом просто модифицировал.
0
а, нет, вру. Хотел так сделать, но так пришлось бы после каждого обновления заново переписывать сначала шаблон, а потом его же парсить на замену. Время работы больше, ибо в среднем на одну команду нужно просмотреть n/2 строк, где n — общее количество строк в шаблоне. Дозаписывать в конец проще, хоть и больше обращений к диску.
0
Зачем переписывать шаблон? По идее он должен быть неизменным.
Про просмотреть n/2 строк — к чему такая оптимизация? :) Это копеечная операция.
Про просмотреть n/2 строк — к чему такая оптимизация? :) Это копеечная операция.
+1
Что касается шаблона — в моём представлении это был бы перл-скрипт, парсящий готовый шаблон и творящий чудеса регэкспом s///. В таком случае при последующем проходе парсер не заменил бы ничего. Если вы имели в виду использование html_template и perl cgi — то такой вариант меня не устроил как слишком сложный, мне хотелось, чтобы каждый школьник мог разобраться. Или я неправильно понял предложенную вами идею?
0
А если сделать split /@@/, $template, то достаточно каждый нечетный элемент получившегося массива вставить без изменений, а каждый четный заменить на результат соответствующего измерения.
Это если запариться на тему производительности, чего в данном случае делать не нужно :)
Это если запариться на тему производительности, чего в данном случае делать не нужно :)
0
По названию статьи подумал, что будет мониторинг удаленных машин (сервера, коммутаторы итп), но вообще, получилось неплохо!
В будущем можно прикрутить syslog и тогда будет действительно круто!
В будущем можно прикрутить syslog и тогда будет действительно круто!
0
Благодарю, приоткрою завесу тайны: эти отчеты будут собираться на центральной машине (пусть будет локальный прокси), ибо когда один клиент отвалится — смысл в этой затее потеряется, потому как невозможно будет даже установить причину. А так, учитывая интервал в 5 минут, с этой точностью можно будет установить время выхода из строя конкретной машины и просмотреть что могло к этому привести. Сделаю некое подобие ботнета — одновременное выкачивание одного скрипта и немедленное его выполнение всей подсетью. Одной строчкой можно будет, скажем, выключить несколько десятков машин. Но пока нужно найти вкусностей для более полного сбора информации, решить вопросы безопасности и было бы очень неплохо сдать сессию).
0
Одновременное выкачивание скрипта и выполнение его подсетью привидет к а) ботлнеку на сети б) резкому росту нагрузки на железо.
Мой совет — сразу после удачной сдачи сессии почитайте что такое SNMP. Также я бы посоветовал настроить syslog коллектор + splunk. Если после этого не наиграетесь, попробуйте сделать nagios + centreon + nagvis. После этого — покрутите заббикс, cacti итд. А после этого — идите уже куда-нибудь работать — там получите нормальные таски, которые нужно решать, там и sh прокачаете и bash если захотите, да и perl-а хлебнете.
Мой совет — сразу после удачной сдачи сессии почитайте что такое SNMP. Также я бы посоветовал настроить syslog коллектор + splunk. Если после этого не наиграетесь, попробуйте сделать nagios + centreon + nagvis. После этого — покрутите заббикс, cacti итд. А после этого — идите уже куда-нибудь работать — там получите нормальные таски, которые нужно решать, там и sh прокачаете и bash если захотите, да и perl-а хлебнете.
0
Советы учту, спасибо. А с заббиксом и нагиосом я уже имел опыт работы. Были мне вручены 4 сервака в Германии с этими крутатеньками. Не понравились. А работы у меня и так хватает :) К сожалению, таких ваканси, где можно было бы нормально поработать с sh и bash на горизонте нет, а от избытка перла я расстался с последним работодателем. Конечно, весело через perl cgi в html_template давать данные из мускула, но не через ту кмс, с которой приходилось работать.
0
А чем Zabbix не нравится и остальные системы? Там, простите за выражение, всяких свистелок и перделок туева куча. Ну разве что для прокачки скилов? Тогда да — поддерживаю.
0
Гуигнгнм, вот ведь некоторые почитают и подумают, что так правильно. Вы бы уж не выкладывали это никуда. Потренировались и ладно.
0
Вечно вы чем-то недовольны) Кому-то нравится. Я что на лоре, что здесь уже неоднократно писал, что суть не в «вот эти скрипты решат все ваши проблемы», а в "… а вот что еще можно сделать на баше". Если вы просто потроллить, помните — big tazhate is watching you.
0
Ну хоть здесь я могу передать тазхейту пламенный привет. Не рискуя быть удалённым =D
>Вечно вы чем-то недовольны) Кому-то нравится
Да я не недоволен, просто если это чисто для себя, то никаких проблем, просто я думаю, что некоторые могут увидеть и решить, что это решение их проблем, вместо здоровых решений. =)
Больше велосипедов разных и нужных.
>Вечно вы чем-то недовольны) Кому-то нравится
Да я не недоволен, просто если это чисто для себя, то никаких проблем, просто я думаю, что некоторые могут увидеть и решить, что это решение их проблем, вместо здоровых решений. =)
Больше велосипедов разных и нужных.
0
[quote]некоторые могут увидеть и решить, что это решение их проблем, вместо здоровых решений. =) [/quote]
Всё лишь just 4 fun. На самом деле, первая версия (тогда еще называлась Mitsuki 0.1) писалась на пьяную голову на дежурстве под мерное жужжание кулера новенького HP Proliant. Аниме на буке кончилось и я вдруг вспомнил, что учусь на программиста. Собственно — вот результат. По сабжу — да, вы правы, на лоре я четко дал понять, что (голосом капризного ребенка) «хочу вот так!». А здесь как-то не упомянул. Но, думаю, и без меня очевидна велосипедность.
Всё лишь just 4 fun. На самом деле, первая версия (тогда еще называлась Mitsuki 0.1) писалась на пьяную голову на дежурстве под мерное жужжание кулера новенького HP Proliant. Аниме на буке кончилось и я вдруг вспомнил, что учусь на программиста. Собственно — вот результат. По сабжу — да, вы правы, на лоре я четко дал понять, что (голосом капризного ребенка) «хочу вот так!». А здесь как-то не упомянул. Но, думаю, и без меня очевидна велосипедность.
0
Кактус же есть. Или вы чисто потренироваться писали это все?
+1
не хватает systat -if для полной кучи
0
Простите, а при чём тут «мощь BASH»? Bash использовался исключительно как shell (sh, tcsh, zsh и т.п.). Никаких bash'евых или shell'овых «tips and tricks» нет и в помине. Есть shell-скрипт с перенаправлением вывода, с не очень оптимизированным использованием в нём sed и grep, есть за уши притянутый perl… Вот если бы Вы это всё сделали на чистом bash'е, с использованием его возможностей (here doc'ов, шаблонов, variable substitutions и expansions и прочих «вкусностей»), вот это было бы красиво. А так… just for fun =)
+1
just 4 fun, никто не спорит. Изначально передо мной стояла задача сделать что-то, во что можно тыкнуть пальцем и сказать «а еще баш вот это магёт». Как появилась конкретная задача — убил двух зайцев. А использование фишек усложнит код, всё же старался сделать его максимально простым, используя команды, которые известны всем.
0
Вот да,
sed
-аддикт в моей голове аж поперхнулся, увидев зачем здесь потребовался перл. 0
О ужас! И зачем это? Cacti с плагином monitor справляется отлично.
А за echo 'тут куча html' побил бы
А если нужно проверить доступность хостов, берем html, js и запрашиваем простенький php скрипт, который пингует запрашиваемый хост. Пишется за 5 минут
А за echo 'тут куча html' побил бы
А если нужно проверить доступность хостов, берем html, js и запрашиваем простенький php скрипт, который пингует запрашиваемый хост. Пишется за 5 минут
0
НЛО прилетело и опубликовало эту надпись здесь
Как «вариант на коленке для себя» — пусть будет. А так, лучшее, что отсюда можно взять, — это стиль HTML-странички. :)
0
1 — Система мониторинга на BASH, но через пару абзацев apt-get install perl.
2 — sudo chmod 777 — вас давно не били?
3 — «Проект опенсурсный» вы его где-то запаблишили под нормальными лицензиями? Если нет — не тешьте себя призрачными надеждами.
4 — Откройте же для себя snmp.
Ну и естественно — зачем же изобретать новый велосипед, если можно погнуть старый? Что принципиально нового дает ваша система? Вы меня не убедили.
2 — sudo chmod 777 — вас давно не били?
3 — «Проект опенсурсный» вы его где-то запаблишили под нормальными лицензиями? Если нет — не тешьте себя призрачными надеждами.
4 — Откройте же для себя snmp.
Ну и естественно — зачем же изобретать новый велосипед, если можно погнуть старый? Что принципиально нового дает ваша система? Вы меня не убедили.
+2
OMG.
если уж перл используется то что бы не переписать по человечески все на нем.
если уж перл используется то что бы не переписать по человечески все на нем.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Система мониторинга на BASH