Коллеги, здравствуйте.
В последнее время появилась необходимость в мониторинге витруальных машин на серверах, их статусов и алертов при каких-либо инцидентах.
Что имеем: около 10-15 вм, каждая из которых сделана под свою задачу; имеет разное количество cpu, ram, hdd и тп.
Что сейчас есть из мониторинга. Существует продакшн-сервер, который "замониторен" эталонно. Фактически так, как и хочется видеть.
Так как этот прод пока один - его удобно мониторить netdata в реалтайме; смотреть, что происходит на тачке, когда приходит алерт от той же netdatы (например, возрос фон 5хх на веб-сервере), я сразу иду в netdata и в логи нжинкса.
Так же существует связка netdata+influxdb. Вторая пушит все на мониторинг-сервер в grafana, которая красиво и понятно отрисовывает все у себя. Тем самым я могу посмотреть, что происходило на тачке в какой-то давний момент времени.
Удобно? Да. Фактически все что надо есть. Алерты, реалтайм+_не_реалтайм мониторинг.
Что "не очень" из этого - во-первых, зависимость от нескольких систем: для реалтайма нужна netdata+установить influxdb для пуша данных (кстати, а можно сохранять бд influx не на локальной тачке, а на тачке мониторинга? так как локальная уже гигов 10 съела со всеми значениями).
Это подходит при условии мониторинга 1, 2. Максимум 3 тачек.
Но не 15.
Очень хочется найти решение наподобие zabbix-server, zabbix-agent, однако сам заббикс мне не особо нравится (может, не привык?)
Так или иначе на большей части вм не нужен реалтайм (хотя было бы удобно его иметь) (так или иначе везде можно будет поставить netdata, если надо), но нужны реалтайм алерты+сохранение графиков мониторинга.
Еще условие - мы имеем отдельную тачку для мониторинга. То есть очень хочется просто ставить агенты (как в случае с zabbix) на сервера, проводить минимальную конфигурацию, а всеостальное настраивать на сервере.
Вопрос в том, есть ли такие комплексные альтернативы zabbixу? Или только он и придется с этим смириться?
Спасибо!
Naves, moropsk что-то с ELK у меня не завелось. к тому же он, кажется, на java (могу ошибаться?) и ест немало места.
например на ВМ для доступа по впн (1cpu, 512ram) его еле-еле можно запусттиь, как мне кажется.
плюс да, действительно это, как мне кажется, небольшой костыль. или нет?
Naves, хорошо, но, как я понимаю, тут некоторые вещи, как мониторинг nginx идут не из "коробки"? плюс тут можно присылать алерты, мониторить обычный cpu wait и т.п., как делает netdata?
или это все настраивается кастомно?
Илья Родионов, ммм, это зависит от того, что вы подразумеваете под коробкой.
Есть сервер elasticsearch, есть агенты, которые отправляют данные, у агентов нужно включать локально модули через конфиг. Те конфиг не прилетает от сервера сам, значит или ручками включать или через какой-нибудь ansible. У еластика "официальный интерфейс для пользователя" - kibana, в ней можно создать "дашборды" или ручками, или загрузить стандартные. Графики можно настраивать как угодно.
Вообще вам лучше пролистать статью какую-нибудь типа https://ru.bmstu.wiki/Elastic_Beats
На самом деле, я не агитирую за еластик, и не могу сказать, чем он лучше zabbix именно в вашем случае.
Naves, выглядит, конечно, красиво. особенно с множеством графиков и тп.
но хорошо, я даже почти готов принять заббикс.
расскажите, пожалуйста, кейсы. т.е, как мониторить сервера/что к ним подсовывать и как строить нужные графики (для вебов графики включая рпс, кол-во 5хх и тп)
что имеем: продакшн-веб сервер; apache. хочу мониторить систему+апач в частности, сеть (наверное входит в систему) и не ухожу ли я по диску (так же система?)
несколько веб-серверов-ВМ с разным кол-вом cpu, ram. мониторить так же систему+веб-сервер.
gitlab-сервер (а его как мониторить в заббиксе?)
2 storage-сервера; тут важно мониторить io, свобожное/занятое пространство и т.п.
сервер mysql-slave, мониторить нормально ли приезжает реплика, какой seconds behind master
сервер vpn. хочется мониторить кол-во подключенных юзеров
ну и по мелочи какое-то кол-во серверов с мониторином просто системы в целом (cpu, ram и тп).
есть мысли, как все это "по-красивому" замониторить? для каждой части сервиса создавать свои темплейты и т.п. (например для gitlab сервера и другого)
Илья Родионов, если кратко, то купить splunk (ой, уже не купить в России)
Рисовать все самому, или искать готовые шаблоны и править их под себя. К примеру, есть шаблон графика хитов, копируем-редактируем-делаем фильтр по event_code, кидаем на дашбоард.
Насколько я помню в забиксе ровно то же самое, вот какой здесь нужно выбрать? https://www.zabbix.com/integrations/nginx
Собственно, если вы определили список метрик, вы их уже собираете через netdata. Данные нужно куда-то сохранять. Судя по https://docs.netdata.cloud/backends/
netdata может отправлять данные в разные БД. Переносите InfluxDB на отдельную машину с графаной, которой вы уже пользуетесь.
Да, это не из коробки, и нужно разворачивать гирлянду, но zabbix, судя по всему вы будете настраивать с нуля и страдать.
В первом приближении да, тк вам не придется все настраивать с нуля на новом незнакомом инструменте. Плюс есть нюанс, универсальная система типа заббикса скорее всего не имеет шаблонов для всех ваших метрик, которые вы уже используете. Их конечно можно настроить, но сколько времени вы потратите - неизвестно, и в принципе так будет с любой системой.
Zabbix придется использовать, если вы начнете мониторить совсем уж разные вещи, типа тысячи портов на свичах через snmp, температуры в разных серверных, напряжения на упсах, и куча самописных скриптов получающих различную погоду на Марсе. Да и то, тренд последних лет запихивать это все в горизонтально-масштабируемые БД типа еластика, а не насиловать несчастные реляционные mysql/postgre
Если вы пытаетесь решить проблему, что на каждом новом хосте придется настраивать сборщик данных, то надо смотреть в сторону ansible/puppet для работы с конфигами.
Илья Родионов, А что тут рассказывать? Есть сервер nagios, который постоянно опрашивает агентов и снимает с них данные. Есть агенты, которые данные отдают. Сервер ставит алерт, если агент отдал состояние алерта и снимает его, если агент перестал его отдавать. Графиков никаких базовая (бесплатная) версия не рисует, хотя есть pnp4nagios.
Его достоинством является возможность прикрутить к нему какие угодно агенты. Мониторить напряжение БП через IPMI? Легко. Мониторить сколько порошка осталось в картридже? Запросто. Мониторить, запущен ли некий сервис на винде? Да без базару.