Многим невдомёк, какая у системных администраторов нервная работа: постоянно что-то выходит из строя, а пользователи чудят безо всякой меры. Ежедневно приходится решать десятки, если не сотни задач, связанных с поддержанием работоспособности серверов, сетевой инфраструктуры, парка пользовательских компьютеров, всевозможной техники и электроники. Не говоря уже о всевозможных более простых задачах вроде настройки ПО и обслуживания оргтехники. В нашей работе очень много рутины, и нам захотелось привнести немного разнообразия и веселья в рабочий процесс. Сказано — сделано: подумав немного, мы построили специальную систему оповещения, управления, контроля и властвования.
В нашей компании повседневные задачи — таски — для системных администраторов создаются во внутренней информационной системе. В нашем отделе висит большой телевизор, на который выводится список текущих незакрытых тасков. Естественно, все таски классифицируются по степени важности и срочности.
Нам захотелось внести какое-то приятное разнообразие в процесс получения информации о новых задачах. Для этого мы выбрали несколько видов событий и написали маленькое приложение, отправляющее на виртуальный COM-порт Arduino Nano сообщения (триггеры) об этих событиях. Теперь в зависимости от полученного триггера Arduino сигнализирует нам с помощью одного из приспособлений:
- Когда появляется задача, требующая срочного решения, начинает стучать бубен. Для этого мы приладили к нему соленоид от привода двери автомобиля.
- Если на каком-то сервере регистрируется критическое повышение температуры, то мы сразу узнаём об этом благодаря громкому звонку, какие используются в метрополитене. Не обратить внимание просто невозможно.
- При повышении критического количества тасков похрюкивает резиновая свинья психоделической расцветки. Здесь тоже используется соленоид, который приводит в действие рычаг, нажимающий на животное.
Код для программирования всего этого дела достаточно простой, справится даже школьник:
int metro = 13;
int buben = 12;
int pig = 11;
int alarm = 10;
int usbnumber = 0;
void setup() {
pinMode(metro, OUTPUT);
pinMode(buben, OUTPUT);
pinMode(pig, OUTPUT);
pinMode(alarm, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
usbnumber = Serial.read();
if (usbnumber == 'm') {
digitalWrite(metro, LOW);
}
if (usbnumber == 'b') {
digitalWrite(buben, LOW);
}
if (usbnumber == 'a') {
digitalWrite(alarm, LOW);
}
if (usbnumber == 'p') {
digitalWrite(pig, LOW);
}
if (usbnumber == 'q') {
digitalWrite(buben, HIGH);
}
Serial.print(usbnumber);
}
}
Кроме того, специально для сотрудников, которые лично приходят к нам в отдел за профессиональной помощью, мы сделали устройство для релаксации — пульт управления отделом технической поддержки (можете видеть его на первой картинке).
Индикаторы:
- Уровень энтропии в отделе.
- Среднее количество нейронов в голове сотрудников отдела (ед/мм3).
Кнопки и переключатели:
- Режим «Турбо». Когда появляется особенно срочное задание, руководитель отдела нажимает кнопку, и у сисадминов включается разгон по частоте и питанию.
- «Стоп хардкор». Используется, когда в процесс вмешивается беспричинное веселье и нужно прекратить его, чтобы возобновить рабочее настроение.
- Режим «Пятница». Идейный антипод «Турбо» с защитой от случайного включения, чтобы невзначай в среду не устроить пятницу.
- «Великий рандом». Выбирает случайным образом сотрудника, который будет решать поставленную задачу. Привязана к функции randadmin в нашей внутренней информационной системе.
- «Вы пробовали перезагрузить?». Просто приятно нажать.
- «Вы пробовали включить/выключить». Используется в паре с «Вы пробовали перезагрузить?».
- «Внимание, в кабинете девушка!». При нажатии кнопки также включается световое табло под потолком «Внимание, в кабинете дама!». Не спрашивайте, откуда взялось несовпадение. Коллектив у нас сугубо мужской, и мы привыкли ярко выражать свои эмоции при появлении той или иной интересной задачи. И в голове у прекрасных девушек, приходящих к нам настроить свои розовенькие ноутбуки и ставших случайными свидетелями выражения этих самых эмоций, перестают прыгать розовые пони и меркнет радуга над поляной жизни. Дабы этого избежать, мы придумали табличку, предупреждающую наших коллег о появлении нежного существа, чей хрупкий внутренний мир может быть нарушен.
- «Задача мимо». Нажимается в тех случаях, когда задача не может быть нами решена или вообще не относится к отделу технической поддержки.
Пульт с кнопками и индикаторами — вещь хорошая, но быстро надоедающая. Поэтому кроме удовольствия от тактильных ощущений пульт даёт возможность развлечься и иным способом: он позволяет сыграть в игру «обезвредь бомбу». На таймере отображается обратный отсчёт в 60 секунд, и за это время нужно успеть подобрать правильную комбинацию нажатий и переключений, которая остановит таймер. Если сапёр-энтузиаст не успевает за минуту, из динамика раздаётся звук взрыва.
Всем пришедшим мы ласково предлагаем присесть за пульт, поделиться наболевшим, и пока мы в поте лица решаем возникшие проблемы, постоять, образно говоря, у руля команды сисадминов. И человеку приятно, можно чем-то занять руки и внимание, и нам не надо следить, чтобы скучающий гость не открутил что-нибудь важное у обильно разложенных по отделу устройств и комплектующих.
В общем виде схема нашей новой системы офлайн-оповещения выглядит так:
Первые посетители уже положительно оценили наше творение. А мы теперь привыкаем к новым непривычным звукам, сопровождающим появление очередных тасков.
P.S. В процессе создания системы ни одной свиньи не пострадало. С днем системного администратора!