С чего всё началось?
Однажды, два админа, с достаточным опытом администрирования зоопарков серверов, задумались над тем, что для каждого серверного окружения приходится настраивать, или исторически они уже есть, свои nagios'и, mrtg, cacti, zabbix'и, nessus'и etc… Хоть настройка графиков, службы мониторинга сервисов и безопасности является тривиальной задачей, но все равно эта задача занимает время, требует размножения сущностей и постройки новых зависимостей. Логично пришла идея сделать «для себя» инструмент, который максимально помогал бы в рутинном администрировании. Но перед тем как «придумывать новый велосипед» нужно разложить проблему, которую он будет решать на составляющие.
В чем собственно проблема?
1. У меня/клиента только один сервер. Но чтобы его мониторить надо еще один.
А кто будет мониторить сервер который мониторит этот сервер? :)
Выход есть! Гугл поможет найти пачку буржуйских сервисов. Перепробовали штук 15 и не нашли того,
который работал бы как нам хотелось бы и имел достаточный функционал.
2. Для того, чтобы поставить сервер на мониторинг нужно его прописать как минимум в нескольних конфигах.
На самом деле не сложно n раз запустить vi config.cfg и зарелоадить софт, но, если, софт нужно инсталить или обновлять, то это создает дополнительную головную боль.
З. Все инструменты в разных интерфейсах.
Приведу пример браузера среднестатистического админа:
Первый таб — nagios, второй — cacti/mrtg. Плюс для проверки безопасности еще какойто софт.
Это три разних интерфейса, но они связаны одной сущностью.
4. Хочу получать нотификации через реальные SMS.
Почтовые шлюзы операторов или часто имеют большую задержку или просто их нет.
Надо полюбому строить взаимоотношения с операторами. Либо телефон к серверу прикручивать,
либо работать работать через какую нить sms-кантору, разобравшись с её самописным API.
5. Заб
Таких вебсервисов существует очень мало и работают они не всегда качественно.
Зато есть удобный и бесплатный nessus. Хоть и не автоматизирован и без нормального web интерфейса.
What Admin Want?
Базируясь на собственном опыте и желаниях, появился список функционала и особенностей:
- Максимально упростить добавление сервера в систему мониторинга. Достаточно установить с портов net-snmpd и мышкой в putty закопипастить сгенерированный конфиг.
- Инвентаризация — Единое место храниения информации о том что это за система и на каком железе живет.
- Мониторинг доступности сервисов и метрик: HTTP, PING, SMTP, SSH, POP3, IMAP, DNS, CPU Usage, Disk Spae.
- Нотификации по email, реальных(моментальных) sms, icq. Ежедневный сумарный отчет.
- Графики исспользования ресурсов — Interface, CPU Usage, LoadAvarage, Memory, Disks
- Безопасность — внешняя проверка сервера на все известные уязвимости — frontend для nessus'а
Разработка.
Свободных рук программистов небыло, потому пришлось научиться програмировать и написать самому.
Под web-frontend была выбрана Java, в качестве ajax framework'а ZKoss.
AppServer — Tomcat. Web связка — Apache+Nginx.
Backend — nagios, для графиков rrdtool, для безопасности — nessus, все ето связано ~ 20 демонами и скриптами на С, Shell/AWK, Python. Через 6 месяцев мир увидила альфа-версия.
Что получилось.
Мониторинг:
Графики загрузки:
Интерфейс безопасности:
Инвентаризация:
Поганять демку можна:
user: demo@shalb.com
password: shalb
spae.shalb.com
Промо страница: shalb.com/ru/spae/spae_features
Бизнес.
Так как было просто глупо тратить столько времени без варианта заработать, дописалась регистрация
и биллинг. Сделали анализ цен хоть както похожих проектов (mon.itor.us, host-tracker), посчитали себестоимость услуги для мониторинга одного сервера, построили ценовую политику и вышло 5$ в месяц за мониторинг одного IP.
Кто клиент.
Целевые клиенты SPAE — владелецы, администраторы серверов, VPS'ов у которых от одного до пяти серверов.
Мы не ориентируемся на Гуру администраторов и на администраторов больших систем серверов. У этих людей уже всё давно есть.
Сервис просто решает часть проблем связынных с администрированием и безопасностью серверов.
Настоящее.
Сейчас система мониторит 80 серверов в 5ти датацентрах.
Запущена партнерская программа с датацентром Воля, который дает 20% скидки на наш сервис.
Начали рефакторинг кода уже с настоящими опытнымы Java программистами. Ловим баги, планируем маркетинговую кампанию.
Будущее:
Кастомная настройка мониторинга сервисов (по портам/продвинутый http мониторинг)
Кастомные OID для графиков (disk IO включительно)
Многоязычный интерфейс.
My IPS — интеграция в интерфейс управления/нотификация snort'а.
WebServices API.
OpenSource standalone версия — как только код будет не стыдно показать коммюнити.
Спасибо.