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?

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

Re: -================<;>~

[identity profile] trueblacker.livejournal.com 2011-01-05 12:38 pm (UTC)(link)
я бы сказал "ещё" вместо "впервые"

Re: -================<;>~

[personal profile] alll 2011-01-05 12:43 pm (UTC)(link)
И там же решена. Вместо одного сторожа нанимаются три, между ними организуется нежно лелеемая междуусобица, в результате возникает автоколебательный процесс, сопровождаемый непрерывным стуком.

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

[identity profile] metaclass.livejournal.com 2011-01-05 12:55 pm (UTC)(link)
Да, тут возникают следующие проблемы:
1) На сервере пропал коннект для доставки письма.
2) На сервере бэкап делается, но на самом деле он сломался и из него ничего не восстанавливается
3) Почтовый адрес в припадке невменяемости админа запилила спамоловка исходящего почтовика (уже было такое один раз).
4) Поменяли адрес и имя исходящего почтовика. Тоже было :)
5) На сервере где живет этот ящик психи настроили спамоловку и запилили всю почту.
6) Оппозиционные псы в припадке литвинобесия удалили весь сервер со всеми ящиками:)
7) Оппозиция распылила ротавирусы и тот, кому положено следить за ящиком, сам слег в ящик.
ну и так далее :)

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

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

[identity profile] http://users.livejournal.com/zubr_/ 2011-01-05 01:03 pm (UTC)(link)
Сервер, который будет ожидать приход отчёта решит все эти проблемы. Если в dead line нет отчёта, то отправляется alert специально обученному человеку.
Если п.7, то это уже проблема отдела кадров найти замену. А новый человек первым делом должен обратать все пришедшие alerts.

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

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

[identity profile] metaclass.livejournal.com 2011-01-05 01:39 pm (UTC)(link)
Ну я давно писал, что 10 строк докладной эквиваленты 10 тысячам строк кода.

[identity profile] nicka-startcev.livejournal.com 2011-01-05 01:49 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] veter-r-r.livejournal.com 2011-01-05 02:50 pm (UTC)(link)
Если пункт 7 случится на гос.предприятии, то проблему могут и не заметить до приезда министра. А министров мало, по всем предприятиям не наездишься...

[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:11 pm (UTC)(link)
Любая такая проблема -- уже повод для паники и расследования.

[identity profile] volodymir-k.livejournal.com 2011-01-05 03:14 pm (UTC)(link)
В таких случаях ответственному надо встать подбоченясь, достать бумаги с подписями клиентов, что они обязуются блюсти и блясть будут, достать распечатанные логи с попытками бить в набат, и сделать недоумённые брови домиком: "с моего конца всё, что можно, было сделано, а если кто чего-то не делает, то это не моя проблема, я ж им не начальник".

[identity profile] veter-r-r.livejournal.com 2011-01-05 03:15 pm (UTC)(link)
Это очень специфическое умение, которое редко сочетается с умением программировать в одном человеке.

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

[identity profile] metaclass.livejournal.com 2011-01-05 03:27 pm (UTC)(link)
Если мне не изменяет память, его там уже когда-то внедряли, но я его там ни разу не видел в использовании :)

[identity profile] sorhed.livejournal.com 2011-01-05 03:46 pm (UTC)(link)
Как вы могли забыть про God'а нашего истинного?

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

[identity profile] vp.livejournal.com 2011-01-05 04:24 pm (UTC)(link)
Вы путаете, что сервера находятся не у нас за спиной, а у заказчиков, и являются собственностью этих самых заказчиков, а админов заказчиков заставить работать - это весьма суровый процесс, потому как им это делать.. не хочется. Посему придумываются 1001 способов саботажа, и рычагов воздействия нет. Потому любая неработоспособность системы автоматом становится нашей проблемой (админы рады ее скинуть). Посему и такое внимание к техническим аспектам, как это можно решить

[identity profile] nicka-startcev.livejournal.com 2011-01-05 04:38 pm (UTC)(link)
Про зловредных заказчиков знаю, видел таких. Если они нарушают "устную договорённость" - это фигня и сойдёт им с рук, если же они нарушают букву регламента - это уже можно под саботаж подвести, или еще как-то давить за слабоумие и злонамеренность.

[identity profile] vp.livejournal.com 2011-01-05 04:39 pm (UTC)(link)
Не, мы наоборот т.к. боремся за рынок, то никогда не ограничиваем ни число рабочих мест, ничего. Потом заработок идет на чистом честном саппорте.

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

Page 1 of 4