metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-01-05 11:51 am

Программировать запрещено

Все началось с того, что в одной территориально распределенной опердени не прошла проверка на корректность репликации баз и на меня повесили задание разобраться с этим. Т.е., просто формальный критерий - сумма проводок "сколько опердень отдала товара на сторону" не совпала с суммой "сколько опердень получила товара со стороны".
Как известно, репликация распределенных баз данных это адское вуду, которое, как оказалось, до сих пор служит темой для теоретических работ, стимулом для использования NoSQL и тому подобного. Когда я делал эту хрень 5 лет назад, я еще не настолько поехал крышей на почве computer science, чтобы месяцами читать теоретические работы, прежде чем делать. Поэтому система уже сделана и давно работает, но изредка возникают проблемы требующие ручного вмешательства.
Ну с задачей я разобрался, там мелочь, но в процессе решил упростить себе решение подобных задач и сделать небольшой sql запрос для проверки подобного. В процессе создания запроса обнаружил что моя копия рабочей базы устарела и нужно бы скачать с клиентов новую копию. Полез на сервер бэкапов и обнаружил что бэкапов там уже неделю как нет.
Оказывается, местные админы опять "воевали с кидо" и, видимо, отключили планировщик заданий, после чего бэкапы отгнили. Я бы, конечно, предложил вырвать им сердце, но мой начальник человек умеющий сглаживать углы, поэтому мне никто не разрешит высказать админам все что я думаю о деструктивном вмешательстве в работу системы, ни у кого не спрашивая и никого не предупреждая, а так же о том, какие деструктивные вмешательства в работу внутренних и внешних органов этих админов я бы произвел, будь на то моя воля.

Обсуждение сей ситуации привело к всплытию старой темы про адекватный мониторинг наших производственных серверов. Я давно про это думаю, но есть особенность что эти сервера разбросаны по всей РБ и за ее пределами, количество вариаций подключения серверов между собой, клиентскими рабочими местами и интернетом достаточно невменяемое (что нибудь типа "сервер 1 видит сервер 2, сервер 3 видит видит сервер 2, но сервер 1 и 3 друг друга не видят, причем выход в интернет есть только на сервере 1 и только через анальный VPN находящийся у черта на рогах на сервере 4 и на котором админы в припадках биполярного аффективного расстройства постоянно рулят правилами файрволла в зависимости от фаз луны")
Кроме того, тема мониторинга серверов при размышлении превращается в адово вуду типа "мониторинг наличия соединений, мониторинг наличия свободного места, мониторинг работоспособности софта, мониторинг наличия регулярно создаваемых бэкапов, и прочая и прочая".

Ребе [livejournal.com profile] belnetmon с ходу предложил несколько вариантов простого мониторинга, но я их все отверг, потому что уже давно их все перебрал и понял, что реальный мониторинг, а не самоуспокоение - это как "безопасность, которая процесс а не продукт". Т.е. мало того, что написанной за день софтиной "проверяем состояние сервера раз в час и пишем в базу данных" не обойдешься никак - за этим нужно постоянно присматривать, а софт всего лишь упрощает работу тому, кто будет присматривать.
Т.е. суть в том, что писать подобного рода программы запрещено - единственное что они могут дать - это самоуспокоение, а на самом деле там админ в припадке психоза напишет прогу, которая будет отсылать уведомление "все хорошо", ничего не проверяя, а бэкапы отключит, потому что они мешают ему спать, "винчестер шуршит и излучает астральных вшей в радиусе 10 метров". Поэтому написать качественную софтину подобного назначения - это слишком долго и дорого (полноценный промышленный продукт как бэ), а писать некачественную наколенную поделку запрещает паук, который страдает перфекционизмом и люто ненавидит половинчатые решения.

-================<;>~

(Anonymous) 2011-01-05 12:17 pm (UTC)(link)
Quod custodiet ipsos custodes?

Эта проблема впервые поднята в древнем Риме.

[identity profile] oldmann.livejournal.com 2011-01-05 12:49 pm (UTC)(link)
сделайте систему мониторинга по принципу "агент на каждом сервере, отключили бэкап - приходит письмо на адрес pizdec@belnetmon.by".

[identity profile] http://users.livejournal.com/zubr_/ 2011-01-05 12:56 pm (UTC)(link)
Отправка alert на почту или на пейджер - само то.

Подобной программе можно дать пару особых фич. Например, "пинг" или принудительный запуск от центрального узла; контрольный прогон по данным, по которым нельзя сделать заглушку.

[identity profile] permea-kra.livejournal.com 2011-01-05 01:13 pm (UTC)(link)
По-моему, тут только один вариант: ручной скриптик, который ходит по серверам каждую ночь, собирает и нарезает логи, а утром в случае чего вопит 'ай-ай, сервер такой-то поели жабы. Ай-ай связь с сервером таким-то поели черви.'
(deleted comment) (Show 11 comments)

[identity profile] nicka-startcev.livejournal.com 2011-01-05 01:35 pm (UTC)(link)
Ващще-то это наполовину административная проблема. То есть, решается не софтиной, а написанием (и доведением под роспись до исполнителей) вменяемого регламента работ, чтоб работник с одной стороны мог осилить этот регламент, а с другой, чтоб там чё существенное не было пропущено.

[identity profile] norguhtar.livejournal.com 2011-01-05 02:47 pm (UTC)(link)
Ну вы блин как маленькие дети ;) Есть же такое ПО. nagios советовать не буду ибо там черви и жабы, с моей точки зрения. С точки зрения всего остального легкое monit, со стороны тяжелого zabbix. Но в код zabbix смотреть не рекомендую если хочется сохранить психическое здоровье. Из comuter science еще можно порекомендовать cfengine, но сразу предупреждаю это адцкий шизняк :)

[identity profile] fas-tm.livejournal.com 2011-01-05 03:05 pm (UTC)(link)
Нечто такое я сейчас и пилю. Задача - мониторить софт и железо. Есть центр и есть регионы. VPN. Сервер с базой данных получает от агентов инфу, пингует сервера, забирает данные по snmp, дописаны кастомные модули для специфических задач.
Все состояния выводятся на графическую консоль. Пишутся в журнал. Отсылаются на почту. Изначально opensource проект. В обычно состоянии - жабы и черви. Допиливаем.
В простейшем случае живучесть серваков и сервисов на них.
web consolе

Есть возможность перезапускать сервисы при зависании итд... Опять же логи и записи об инцидентах.
Агенты - для любых операционок...

[identity profile] volodymir-k.livejournal.com 2011-01-05 03:15 pm (UTC)(link)
HP OpenView :)))
Пусть директор схватится за сердце от их цен.

[identity profile] l0gin.livejournal.com 2011-01-05 04:21 pm (UTC)(link)
Ребе, вы не думали распространять опердень в виде сервиса по подписке?

[identity profile] alexandr0.livejournal.com 2011-01-05 04:41 pm (UTC)(link)
Устройте у себя сервер лицензий. Вместе с проверкой лицензии проверяйте заодно и прочее, что пожелаете. Заодно решится проблема "выход в интернет есть только на сервере 1".

[identity profile] mega-mosk.livejournal.com 2011-01-05 07:09 pm (UTC)(link)
Ребе, это стимул для использования Оракла, ДБ2 и иже с ними. Причем на никсах отличных от канонiчного лялиха. И Ваш-таки мониторинг туда впишется прекрасно. Ну или можно сидеть и пиздеть о том как страшно жить, да.

ребе, nagios спасёт Вас (немножко) от червей

[identity profile] golosptic.livejournal.com 2011-01-06 03:18 pm (UTC)(link)
без дураков
работа по написанию софта мониторинга заменяется работой по написанию маленьких скриптиков-плагинов под конкретные задачи типа создания бэкапов.
Под многие (типа свободного места) оно и встроенное есть.

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

[identity profile] tzirechnoy.livejournal.com 2011-01-07 06:14 pm (UTC)(link)
А я, кстати, таки посоветую nagios. Черви и жабы -- они везде, зато когда с конфигом nagios правильно разберёшься он выглядит вменяемым. Дажэ извращённый.

[identity profile] yakov-sirotkin.livejournal.com 2011-01-07 06:33 pm (UTC)(link)
Проблема мониторинга лечится при помощи большого монитора на стене, который показывает текущую ситуацию разными цветами, как светофор.

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

[identity profile] blackyblack.livejournal.com 2011-01-10 10:41 am (UTC)(link)
Ставьте эрланг. С клиентами договоритесь о канале для шелла. Будет тотальная распределенность, возможность апдейта софта прям от вас, мониторинг всего и вся.

[identity profile] slonyara101.livejournal.com 2011-01-25 02:45 am (UTC)(link)
Это прям в точку!!! Другими словами и не скажешь! :)