Pull to refresh

Comments 63

зачем изобретать велосипед? monitd — умеет все перечисленное и еще много чего сверх
Читайте нижние две строки :)

Во первых это тренировка баш скриптинга, во вторых простота конфигурирования. когда нужно просто сканить пару портов на паре серваков не стоит ставить какие либо громоздкие сервисы с сложной системой конфигурации (я о nagios).
а, пардон, пропустил камент…
нагиос действительно слишком массивен для такой задачи, а вот monitd в самый раз, не монстр =)
ну на самом деле nagios не умеет ничего мониторить :) nagios — это система оповещений, реагирующая на результаты работы плагинов. вот в этом топике вы как раз и написали такой плагин ;)

если проверок много, то целесообразно объединить их через нагиос, а если мало, то и кронтаб сойдет :)
Насколько я понял, monit еще отличается тем, что способен предпринимать меры к исправлению (фиксации). Nagios, мне казалось, такого не умеет. Или можно доставить?
После прочтения — те же мысли. Видимо, писать иногда проще, чем читать.
иногда нужен действительно минимум. К тому же я не понял, умеет ли монит мониторить хотя бы на каком-то уровне вин-компы.
Точно так же — прозвонкой портов.
Если нет разницы — зачем платить больше? :) (с)
А в чем выгода использования самопального скрипта супротив специализированного, разработанного для этих целей программного продукта? :)
Про выгоду не скажу. А вот причин для создания «своего» решения много. Начиная от ЧСВ и удовольствия от процесса, заканчивая изучением Advanced Bash scripting Howto и повышением уровня профессиональных знаний. Если автор статьи считает, что для его целей nagios & co избыточны — его выбор.

Как минимум, надо вспомнить фразу — «There's more than one way to do it»
Хорошо, согласен. Просто обычно учат приводить и анализировать все возможные пути решения задачи, но это уже далеко не строго.
а пчелайн не банит за частую отправку?
там ограничение по-моему, не более 10 вроде
UFO landed and left these words here
пчелайн иногда имеет огромные задержки до нескольких часов(если отправляется несколько смсок), поэтому от такого решения я отказался и подключил к серверу сотовый телефон.
у мегафона аналогичные фокусы. сообщение отправленное через mail2sms может прийти мгновенно или более чем через сутки.
может вам просто не везло, когда пользовался билайном — ни разу не было задержек.
раньше все оповещения были заточепны на билайн. теперь на другом опсосе =) жаль, что на нем нет такой услуги =(
может быть еще сильно зависит от региона.
отправляешь емейл на нужный адрес, а смс приходит только через несколько часов. в итоге для меня это не вариант.
Если упадет сервис, Вам каждый час начнет приходить смска? Представьте, что это случилось в 3 часа ночи, или в воскресенье :-)
зависит от важности сервиса. Возможно, надо проснуться и починить.
Если сервис столь важен, возможно стоит проверять его работоспособность чаще чем раз в час…
Некоторые сервисы именно настолько важны, что нужно ночью проснуться и поднять.
Пускай приходит, пока не устраню причину, это мои деньги.

Для желающих не получать по выходным итд — необходимо разрабатывать проверку на то посылать ли и посылать куда.

Для таких вещей уже немного разумным становится использование нагиоса.
В кроне кстати есть все что бы не получать уведомления по ночам, выходным и т.п.
Страшнее ситуация, когда сервис проверяется намного чаще и в итоге при падении в смс очередь попадает пара тысяч смсок :)

Такой случай был в пчелайне, в очередь легло 30 тысяч смс, удалили их потом с огромным трудом :)
безусловно.
В нашем проекте некоторые чеки отрабатывают раз в 30с.
Ммм… По мне делая проект нада всегда делать с запасом.
Лучше чтобы
1) на каждом сервере висел monit который поднимет сервис в случае его падения
2) была отдельная машина с cacti/nagios/zabbix которая будет мониторить статус машин. И желательно ещё чтобы умела оповещать по SMS/ICQ/Jabber о падении

ПС. Это сейчас у вас 2,3 сервера с 2-3 сервисами… а когда их станет больше, лучше уж заранее?
ППС. А ещё неплохо было бы проверять код ответа. Мускул у ваc может слушать порт но выдавать Too Many Сonnections, nginx может выдавать вместо 200 ОК — Bad Gateway
Писал такое, работая в суппорте. Не серьёзно, но в качестве «тренировки bash-скриптинга» — самое оно.
Писал такое но оно перловыми тридами пинговало 500 управляемых свичей за 2.5 минуты )

В принципе у автора простое решение но за то что сам сделал — плюс)
UFO landed and left these words here
мне достаточно того что порт открыт, в основном писальось под мои нужды. Как заментил пригодилось многим.

Может создать отдельный блог — баш скрипты для сисодмина. там простенькие скриптики для бэкапов итд итп делать.
скорее OpenNet, но на хабре.
А зачем это?
if (!( [ -z $(cat /var/test/serverlist) ]))

Если есть это
if [ -s /var/test/serverlist ]

Ну и на тему mail2sms было сказано уже много. Меня мегафоновский сервис потихоньку стал напрягать и я поднял таки jabberd. На телефоне бомбус, а уведомления шлются перловым скриптом sendxmpp примерно так

sendxmpp -r SOT.log2conf -c log@conference.domain.me

А вот за «done >» спасибо — чего то я недопер сам до этой мысли.
потому что сначала проверялась переменная, а потом уже перешел на файл я. про test -s уже знаю, но чтото менять заломало)
Ну в сервере менять заломало, это я понимаю.
Но раз уж для народа стараетесь, сделайте код чуть-чуть читабельнее, а то 4 вложенных скобки на ровном месте взрывают мозг ))
Посмотрите на это — ftp://ftp.kernel.org/pub/software/admin/mon
Проста в конфигурации, можно дописывать свои мониторы (у меня, в частности, дописан монитор проверки доступности Oracle DB's и syslog-сервера), имеет web-интерфейс, умеет отправлять почту, можно указать кол-во отсылок, после которых прекратить отправку…

А некоторые сервисы невозможно проверить простой доступностью портов. Например, у Oracle порт 1521 слушает листнер, который может жить и при упавшей базе. В данном случае доступность порта скажет лишь о том, что листнер жив.
у меня по серверам живут три мониторилки:
— monit следит за тем, чтобы нужный демон не упал
— munin мониторит количественные показатели различных подсистем
— smokeping присматривает за проблемами на канале и доступностью нужных хостов.

для моих задач подобного набора хватает ;)
nmap умеет брать список портов из файла – лучше чем запускать сканирование для каждого отдельного порта
разумное замечание, надо подумать как использовать эту фишку.
типа в конфиге
192.168.0.1:22:80:8080
192.168.0.1:22:80:8080 => 192.168.0.1:22,80,8080
как вариант, но :::: проще парсить :)
А тут и парсить не нужно. Ваш код остаётся без изменения, а строка приобретает вид: nmap -p 22,80,8080 192.168.0.1
это конечно хорошо, но когда серверов/админов больше 2-х, то система из самописных скриптов не канает, лечится использованием zabbix/nagios (мне лично нравится zabbix), там и графики и история и оповещения sms/jabber/почта и т.д. и т.п.
а если интернет отвалится? лучше телефон подключить и через него слать смс:)
начнем с того что порт помеченный nmap'om как закрытый не всегда таким является.
так же есть понятие filtered — этот порт может быть тоже как закрытым так и открытым.

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

а это значит nagios/zabbix/cactu.
блин, заголовок прочитался как «Мониторинг портов с увольнением сисадмина» — ажно похолодел!
вротмненоги!11

nmap-то с каких пор стал простым и легким решением? тонна кода непонять к чему. вам правильно сказали про monitd. он мал, умел, тривиален и крайне функционален. а вы уши помоями залили и не желаете ничего слышать. проснитесь блин. я конечно любитель shell-скриптинга с binutils'ами, но это уж слишком.
Убейсоапстену!11

Мне надо проверить — работает ли почтовый сервак и н ребутят ли местные админы сервис Exchange, nmap для этого подходит на 100%, а monit местами избыточен, а местами вообще не в тему =))
вы долбоеб.

telnet $host 25 с соответствующим развитием подходит как проверка работы сервиса почты, впрочем как и http сервера с некоторыми поправками. собственно это и делает monitd или nagios.

пс: «бесполезно спорить со школотой: она все равно умней», — это про вас.
А вы — хам.

Вы можете объяснить, чем нагиос или монит лучше предложенного метода, когда требуется узнать не выключили ли сервер или не опустили ли службу _и ВСЁ_?
если вы не видите разница, то какое вам до этого дело? в соседнем топике другой долбодемон рассказывает про питон в системном администрировании, тут вы про нмап для мониторинга, — по такому маразму очень легко отсеивать долбоебов на собеседовании и расспазновать их среди рабочих сотрудников, и гнать ссаными тряпками из профессии. я вот подумал, что таке не стоит менять сложившийся порядок вещей. профессионалов должно быть как можно меньше, чтобы мы получали как можно больше. а вы продолжайте дальше делиться своими «гениальными» изобретениями между такими же как вы гениальными долбодемонами. счастья вам.
за использовании телнета для проверки портов — вот уж точно нужно гнать срамным веником из профессии. если хочется получать ответ то стоит использовать nc, я это знаю но мне НЕ НУЖЕН ОТВЕТ. мне нужен факт открытия порта, мне проще nmap'ом
судя по всему ты и близко не представляешь о чем идет речь.
Мои поздравления, вами только что сделан первый шаг на пути к забиксам и нагиосам!

Естественный этап эволюции выведет вас на путь использования этих систем, или же к написанию своей системы, переосмыслению написанного, и переходу к забиксам и нагиосам :)
да стоит у меня нагиос этот :)
Просто этот скрипт проверяет заодно УРБД 1ски у меня, хитросплетенным методом — и получаю я инфу одновременно и о 1с и о портах :)
спасибо. очень полезная информация — никогда бы не подумал мониторить с помощью nmap'а.
единственная проблема оставшаяся — как мониторить с удалённой, скорее всего linux/freebsd системы работает ли сервис или программа на винде, которая не открывает порт?
можно посмотреть на bigsister. Проста в настройке, умеет отслеживать процессы и сервисы
ну тут уже надо работать глубже.

Например у меня 1ска пишет лог об синхронизации баз данных, и кидает его на сервак. Простенький парсер проверяет его на наличие этих самых ошибок и толкает ошибку в отдельный файл, который впоследствии хавает этот скрипт и если видит ошибки 1ски — присылает их вместе с закрытыми портами.
Only those users with full accounts are able to leave comments. Log in, please.