Долгожданная версия открытой системы мониторинга Zabbix обещает нам целый ворох новых возможностей, вставая на путь визуального обновления.
Сегодня хочу поделиться с вами тем, что принес релиз, и чем можно начать пользоваться уже сегодня, скачав новую версию с сайта. Мы также будем рады пригласить всех желающих на Zabbix Meetup в Москве, подробности о котором вы найдете в конце статьи.
Первое, что бросается в глаза — это освежевший веб-интерфейс. Новый дизайн избавился от лишних, нагромождавших элементов, ушли различные ненужные рамки графиков и так далее.
Также интерфейс проработан с точки зрения удобства, например, теперь для любого узла сети или шаблона всегда можно посмотреть, как собственные макросы перекрываются с унаследованными. Доступно несколько оформлений, светлое и темное. Обязательно попробуйте темнуюсторону тему!
Про остальные изменения интерфейса можно почитать тут.
а также в отдельном мини-обзоре на Хабре.
Теперь Zabbix поддерживает шифрование всех сообщений при необходимости — все общение между сервером, прокси и агентом может быть зашифровано и защищено от посторонних любопытных глаз.
Шифрование также предоставляет и аутентификацию — только при наличии доверенного сертификата или Pre-shared ключа компоненты смогут пообщаться с Zabbix. Аутентификация при этом взаимная, то есть не только Zabbix Server проверяет сертификат агента, но и агент может быть настроен проверять сертификат сервера: кто его выпустил и можно ли им верить.
Шифрование при этом полностью опционально, и может быть настроено для каждого компонента отдельно ( то есть одни агенты и прокси могут использовать шифрование, а другие продолжать общаться в открытую как и ранее)
Если шифрование Вам не нужно или Вы к нему морально не готовы, то просто используйте Zabbix как и прежде (взяв в оборот другие новые возможности конечно! :) ) При этом все компоненты 3.0 будут поддерживать шифрование, и его можно будет постепенно включать для отдельных компонентов в удобном для себя темпе.
И никаких новых портов — как и раньше 10050/10051 используются для всех видов коммуникаций в Zabbix.
Все подробности про шифрование в Zabbix здесь, а также в нашем отдельном мини-обзоре на Хабре.
Предвидеть проблему до того, как она произойдет? — Теперь да, в Zabbix 3.0.
Говорят, что в 2016 на дисках все еще кончается место иногда. Zabbix может предвидеть такую ситуацию и спасти приложение от падения, предупредив всех заранее и дав время добавить или освободить место как раз до того, как начнутся проблемы.
Просто посмотрите пример, где Zabbix предсказывает, как быстро закончится место на /home, проанализировав исторические значения за последнее время.
Допустим, что нам нужно 10 часов, чтобы отреагировать и добавить или почистить место (как на скриншоте выше). И допустим, что 1 часа собранных данных о свободном месте достаточно, чтобы сделать корректный прогноз. Реальная проблема для нас — когда место на разделе / (vfs.fs.size[/,free] ) полностью закончится, т.е. 0 байт. Тогда Zabbix должен поднять аварию, когда прогноз на 10 часов вперед, основанный на собранных данных за предыдущий 1 час будет равен 0, или:
или можно поменять местами горизонт прогнозирования(10h) и пороговое значение (0 байт) и использовать другую триггерную функцию:
Статистический анализ под капотом этих функций один и тот же, так что просто выбирайте выражение, которое удобнее.
Узнать про прогнозирование в Zabbix можно здесь и здесь.
А также в нашей отдельной статье на Хабре по прогнозированию.
Новый элемент данных proc.cpu.util, доступный на Linux и Solaris, позволяет мониторить использование CPU каждым отдельным процессом или группой процессов.
Например, администратору сервера может быть интересно контролировать, как используют CPU различные пользователи. При помощи ключа:
он сможет увидеть использование CPU всеми процессами, запущенными под john'ом. А если вдруг интересна только java Джона:
Кроме имени пользователя и процесса можно и указывать тип утилизации CPU (system, user), имя процесса с путем и другие параметры.
Полную спецификацию можно найти тут.
В 3.0 не забыли и об оптимизации производительности. Например, был серьезно переработан кэш исторических данных (History Cache). Благодаря переработке структуры кэш работает быстро при любом соотношении items/values, даже если всего несколько элементов данных заполняют сервер большим количеством исторических значений.
Индекс (History index) был добавлен, чтобы следить за этим кэшем. Контролировать его можно используя новый внутренний счетчик zabbix[wcache,index,]
Например, на графике наглядно видно как долго происходила обработка восемью history syncers 500000 значений для 100 элементов данных до 3.0 и после.
Подробнее по этой и другим внутренним проверкам здесь.
В 3.0 сами действия и их условия тоже хранятся в кэше, чтобы не тревожить БД лишний раз. Данное нововведение придется очень кстати на больших инсталляциях и когда в системе большой объем происходящих событий
Если что-то было достаточно проверять один раз в день, то невозможно было выбрать точное время. Проверка могла произойти и ночью и в обед, и на это никак нельзя было повлиять.
Ну а теперь можно.
Например, если нужно собирать данные с офисных компьютеров, то просто выставите расписание сбора с 9 до 6 в будни:
Это позволит нам избежать ненужных аварий о недоступности выключенных компьютеров ночью.
В примере выше проверки будут происходить каждые пять минут (m/5) только в рабочие дни(wd1-5) с 8 до 18 (h9-18), то есть в 9:00, 9:05, 9:10 и так далее.
А может Вы хотели бы делать LLD-дискавери глубокой ночью, чтобы минимизировать влияние на сеть? Да, это можно сделать точно также.
Подробнее про интервалы по расписанию здесь.
В Zabbix появились личные карты, комплексные экраны(screens) и слайды.
Это позволяет каждому пользователю создавать свои собственные представления информации, которые будут ему удобны. И админские права совсем не нужны.
При этом картой или экраном можно легко поделиться, сделав его доступным всем пользователям, или только членам определенной группы:
Интересно? больше здесь.
Давным-давно люди спрашивали про возможность использования макросов низкоуровневого обнаружения (LLD) в названии в группах элементов данных? Да, теперь пожалуйста и это — прототипы групп элементов данных(Applications) теперь доступны наравне с прототипами элементов данных, триггеров, графиков и комплексных экранов.
Например, для сетевых интерфейсов:
Процедура очистки базы данных необходима для удаления старых исторических данных. Если удалить нужно действительно много, то потребуется большое количество системные ресурсов, что может негативно сказаться на остальных процессах Zabbix, которые заняты чем-то поважней и полезней.
В 3.0 добавлена возможность отменить запуск процедуры очистки по расписанию и запускать её вручную, когда это необходимо. Новая возможность поддерживается как Zabbix прокси, так и Zabbix сервером. Чтобы воспользоваться ею, необходимо отключить в конфиг-файле исполнение очистки по расписанию:
И затем очистку базы данных возможно запускать через командную строку:
Про выполнение этой и других административных функций(runtime-control) из командной строки читайте тут.
Основные Zabbix процессы теперь могут быть запущены не только как демоны, если использовать ключ -f (--foreground). Кроме других преимуществ это, например, может быть полезно при использовании компонент Zabbix в Docker.
Зависимости между триггерами, которые позволяют получить только одну аварию от роутера, вместо десятка аварий от устройств, которые расположены за ним — в Zabbix уже довольно давно. Но, к сожалению, это не работало для прототипов триггеров. Опять же, в 3.0 это ограничение уходит. Это позволит, например, создавать группу триггеров из прототипов, которые имеют разные пороговые значения и уровень важности (предупреждение и авария) при мониторинге количества свободного места на диске:
Подробности найдутся тут.
Те, кто мониторят Windows сервера через Zabbix, должны оценить следующее нововведение — возможность находить все доступные службы в Windows через ключ LLD service.discovery, и создавать для каждой новой службы элементы данных и триггеры. Найденные службы также всегда можно отфильтровать через стандартный механизм фильтров, который есть в низкоуровневом обнаружении.
Подробнее как это настроить можно посмотреть опять таки в обновленной документации по LLD.
Свершилось! Теперь можно делать рассылку уведомлений просто и без проблем: через интерфейс Zabbix настраиваете подключение к почтовому серверу с использованием логина пароля, а также шифрование, если нужно. Больше никаких дополнительных postfix в режиме smarthost или непонимающих взглядов от админа почтовых серверов, кого вы просили разрешать с IP Zabbix сервера слать почту анонимно.
Подробнее тут.
Повзрослели и шаблоны. Теперь при загрузке/выгрузке в XML они включают в себя все используемые преобразования значений(value mappings). Загружать /выгружать преобразования можно и отдельно. А еще загрузить value mappings теперь можно и через API.
Появилась отличная возможность принимать решение об обнаружении по SNMP на основе не одного, а нескольких OID.
Например, для интерфейсов мы можем искать сразу ifName, ifAlias, ifDescr и ifOperStatus:
И если в описании прототипа триггера указать, например, вот такой список:
то при аварии по триггеру мы сможем увидеть подробное описание порта.
Можно использовать значения дополнительных OID и в фильтрах LLD, для принятия решения ставить интерфейс на мониторинг или нет, а также использовать значения в названии триггеров, графиков и элементов данных. Или как было сказано выше в названии групп элементов данных (Applications).
Подробнее читайте в обновленном мануале по LLD.
Zabbix 3.0 предлагает более 50 новых возможностей для изучения, со всеми, что не попали в эту статью, такими как API для trends или добавление дополнительных параметров для пользовательских скриптов оповещения можно ознакомиться в релизе здесь.
Приглашаем всех попробовать обновленную систему Zabbix уже сегодня и поделиться с нами своими впечатлениями в сети или лично на Zabbix meetup в Москве, который состоится 12 марта 2016 года, в 11:00, по адресу метро Трубная, Цветной Бульвар, 2. Регистрация на митап будет доступа через две недели.
Сегодня хочу поделиться с вами тем, что принес релиз, и чем можно начать пользоваться уже сегодня, скачав новую версию с сайта. Мы также будем рады пригласить всех желающих на Zabbix Meetup в Москве, подробности о котором вы найдете в конце статьи.
Интерфейс
Первое, что бросается в глаза — это освежевший веб-интерфейс. Новый дизайн избавился от лишних, нагромождавших элементов, ушли различные ненужные рамки графиков и так далее.
Также интерфейс проработан с точки зрения удобства, например, теперь для любого узла сети или шаблона всегда можно посмотреть, как собственные макросы перекрываются с унаследованными. Доступно несколько оформлений, светлое и темное. Обязательно попробуйте темную
Про остальные изменения интерфейса можно почитать тут.
а также в отдельном мини-обзоре на Хабре.
Шифрование
Теперь Zabbix поддерживает шифрование всех сообщений при необходимости — все общение между сервером, прокси и агентом может быть зашифровано и защищено от посторонних любопытных глаз.
Шифрование также предоставляет и аутентификацию — только при наличии доверенного сертификата или Pre-shared ключа компоненты смогут пообщаться с Zabbix. Аутентификация при этом взаимная, то есть не только Zabbix Server проверяет сертификат агента, но и агент может быть настроен проверять сертификат сервера: кто его выпустил и можно ли им верить.
Шифрование при этом полностью опционально, и может быть настроено для каждого компонента отдельно ( то есть одни агенты и прокси могут использовать шифрование, а другие продолжать общаться в открытую как и ранее)
Если шифрование Вам не нужно или Вы к нему морально не готовы, то просто используйте Zabbix как и прежде (взяв в оборот другие новые возможности конечно! :) ) При этом все компоненты 3.0 будут поддерживать шифрование, и его можно будет постепенно включать для отдельных компонентов в удобном для себя темпе.
И никаких новых портов — как и раньше 10050/10051 используются для всех видов коммуникаций в Zabbix.
Все подробности про шифрование в Zabbix здесь, а также в нашем отдельном мини-обзоре на Хабре.
Предсказание и прогнозирование
Предвидеть проблему до того, как она произойдет? — Теперь да, в Zabbix 3.0.
Говорят, что в 2016 на дисках все еще кончается место иногда. Zabbix может предвидеть такую ситуацию и спасти приложение от падения, предупредив всех заранее и дав время добавить или освободить место как раз до того, как начнутся проблемы.
Просто посмотрите пример, где Zabbix предсказывает, как быстро закончится место на /home, проанализировав исторические значения за последнее время.
Допустим, что нам нужно 10 часов, чтобы отреагировать и добавить или почистить место (как на скриншоте выше). И допустим, что 1 часа собранных данных о свободном месте достаточно, чтобы сделать корректный прогноз. Реальная проблема для нас — когда место на разделе / (vfs.fs.size[/,free] ) полностью закончится, т.е. 0 байт. Тогда Zabbix должен поднять аварию, когда прогноз на 10 часов вперед, основанный на собранных данных за предыдущий 1 час будет равен 0, или:
{host:vfs.fs.size[/,free].forecast(1h,,10h)}<=0
или можно поменять местами горизонт прогнозирования(10h) и пороговое значение (0 байт) и использовать другую триггерную функцию:
{host:vfs.fs.size[/,free].timeleft(1h,,0)}<=10h
Статистический анализ под капотом этих функций один и тот же, так что просто выбирайте выражение, которое удобнее.
Узнать про прогнозирование в Zabbix можно здесь и здесь.
А также в нашей отдельной статье на Хабре по прогнозированию.
Мониторинг использования CPU отдельным процессом или приложением
Новый элемент данных proc.cpu.util, доступный на Linux и Solaris, позволяет мониторить использование CPU каждым отдельным процессом или группой процессов.
Например, администратору сервера может быть интересно контролировать, как используют CPU различные пользователи. При помощи ключа:
proc.cpu.util[,john]
он сможет увидеть использование CPU всеми процессами, запущенными под john'ом. А если вдруг интересна только java Джона:
proc.cpu.util[java,john]
Кроме имени пользователя и процесса можно и указывать тип утилизации CPU (system, user), имя процесса с путем и другие параметры.
Полную спецификацию можно найти тут.
Улучшения производительности
History cache
В 3.0 не забыли и об оптимизации производительности. Например, был серьезно переработан кэш исторических данных (History Cache). Благодаря переработке структуры кэш работает быстро при любом соотношении items/values, даже если всего несколько элементов данных заполняют сервер большим количеством исторических значений.
Индекс (History index) был добавлен, чтобы следить за этим кэшем. Контролировать его можно используя новый внутренний счетчик zabbix[wcache,index,]
Например, на графике наглядно видно как долго происходила обработка восемью history syncers 500000 значений для 100 элементов данных до 3.0 и после.
Подробнее по этой и другим внутренним проверкам здесь.
Action cache
В 3.0 сами действия и их условия тоже хранятся в кэше, чтобы не тревожить БД лишний раз. Данное нововведение придется очень кстати на больших инсталляциях и когда в системе большой объем происходящих событий
Запуск проверок в определенное время
Если что-то было достаточно проверять один раз в день, то невозможно было выбрать точное время. Проверка могла произойти и ночью и в обед, и на это никак нельзя было повлиять.
Ну а теперь можно.
Например, если нужно собирать данные с офисных компьютеров, то просто выставите расписание сбора с 9 до 6 в будни:
Это позволит нам избежать ненужных аварий о недоступности выключенных компьютеров ночью.
В примере выше проверки будут происходить каждые пять минут (m/5) только в рабочие дни(wd1-5) с 8 до 18 (h9-18), то есть в 9:00, 9:05, 9:10 и так далее.
А может Вы хотели бы делать LLD-дискавери глубокой ночью, чтобы минимизировать влияние на сеть? Да, это можно сделать точно также.
Подробнее про интервалы по расписанию здесь.
Пользовательские карты, экраны и слайды
В Zabbix появились личные карты, комплексные экраны(screens) и слайды.
Это позволяет каждому пользователю создавать свои собственные представления информации, которые будут ему удобны. И админские права совсем не нужны.
При этом картой или экраном можно легко поделиться, сделав его доступным всем пользователям, или только членам определенной группы:
Интересно? больше здесь.
Имена групп элементов данных с использованием макросов
Давным-давно люди спрашивали про возможность использования макросов низкоуровневого обнаружения (LLD) в названии в группах элементов данных? Да, теперь пожалуйста и это — прототипы групп элементов данных(Applications) теперь доступны наравне с прототипами элементов данных, триггеров, графиков и комплексных экранов.
Например, для сетевых интерфейсов:
Принудительный запуск процедуры очистки базы данных
Процедура очистки базы данных необходима для удаления старых исторических данных. Если удалить нужно действительно много, то потребуется большое количество системные ресурсов, что может негативно сказаться на остальных процессах Zabbix, которые заняты чем-то поважней и полезней.
В 3.0 добавлена возможность отменить запуск процедуры очистки по расписанию и запускать её вручную, когда это необходимо. Новая возможность поддерживается как Zabbix прокси, так и Zabbix сервером. Чтобы воспользоваться ею, необходимо отключить в конфиг-файле исполнение очистки по расписанию:
HousekeepingFrequency=0
И затем очистку базы данных возможно запускать через командную строку:
zabbix_server -R housekeeper_execute
Про выполнение этой и других административных функций(runtime-control) из командной строки читайте тут.
Возможность работы Zabbix компонент на переднем плане
Основные Zabbix процессы теперь могут быть запущены не только как демоны, если использовать ключ -f (--foreground). Кроме других преимуществ это, например, может быть полезно при использовании компонент Zabbix в Docker.
Зависимости между прототипами триггеров
Зависимости между триггерами, которые позволяют получить только одну аварию от роутера, вместо десятка аварий от устройств, которые расположены за ним — в Zabbix уже довольно давно. Но, к сожалению, это не работало для прототипов триггеров. Опять же, в 3.0 это ограничение уходит. Это позволит, например, создавать группу триггеров из прототипов, которые имеют разные пороговые значения и уровень важности (предупреждение и авария) при мониторинге количества свободного места на диске:
Подробности найдутся тут.
Обнаружение служб Windows
Те, кто мониторят Windows сервера через Zabbix, должны оценить следующее нововведение — возможность находить все доступные службы в Windows через ключ LLD service.discovery, и создавать для каждой новой службы элементы данных и триггеры. Найденные службы также всегда можно отфильтровать через стандартный механизм фильтров, который есть в низкоуровневом обнаружении.
Подробнее как это настроить можно посмотреть опять таки в обновленной документации по LLD.
SMTP с аутентификацией
Свершилось! Теперь можно делать рассылку уведомлений просто и без проблем: через интерфейс Zabbix настраиваете подключение к почтовому серверу с использованием логина пароля, а также шифрование, если нужно. Больше никаких дополнительных postfix в режиме smarthost или непонимающих взглядов от админа почтовых серверов, кого вы просили разрешать с IP Zabbix сервера слать почту анонимно.
Подробнее тут.
Импорт и экспорт преобразований значений
Повзрослели и шаблоны. Теперь при загрузке/выгрузке в XML они включают в себя все используемые преобразования значений(value mappings). Загружать /выгружать преобразования можно и отдельно. А еще загрузить value mappings теперь можно и через API.
Низкоуровневое обнаружение SNMP по нескольким OID сразу
Появилась отличная возможность принимать решение об обнаружении по SNMP на основе не одного, а нескольких OID.
Например, для интерфейсов мы можем искать сразу ifName, ifAlias, ifDescr и ifOperStatus:
discovery[{#SNMPVALUE},ifOperStatus,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},.1.3.6.1.2.1.2.2.1.2,{#IFTYPE},ifType]
И если в описании прототипа триггера указать, например, вот такой список:
Last Discovery Interface info:
ifAlias:{#IFALIAS}
ifName:{#IFNAME}
ifDescr:{#IFDESCR}
ifType:{#IFTYPE}
то при аварии по триггеру мы сможем увидеть подробное описание порта.
Можно использовать значения дополнительных OID и в фильтрах LLD, для принятия решения ставить интерфейс на мониторинг или нет, а также использовать значения в названии триггеров, графиков и элементов данных. Или как было сказано выше в названии групп элементов данных (Applications).
Подробнее читайте в обновленном мануале по LLD.
И это не все
Zabbix 3.0 предлагает более 50 новых возможностей для изучения, со всеми, что не попали в эту статью, такими как API для trends или добавление дополнительных параметров для пользовательских скриптов оповещения можно ознакомиться в релизе здесь.
Приглашаем всех попробовать обновленную систему Zabbix уже сегодня и поделиться с нами своими впечатлениями в сети или лично на Zabbix meetup в Москве, который состоится 12 марта 2016 года, в 11:00, по адресу метро Трубная, Цветной Бульвар, 2. Регистрация на митап будет доступа через две недели.
Pumko_adm
А можно как-нибудь поправить дашборд, в панели последние 20 событий, в плане компактности? А то по сравнению с 2.7.х стало неудобно. Раньше каждое событие занимало 1 строку, теперь 2.
evg_krsk
Вторая картинка в посте — 20 событий, по одной строке каждое.
Pumko_adm
alexvl
Соглашусь с этим. Попытаемся что-то улучшить в ближайших 3.0.х.
Pumko_adm
Спасибо, будем ждать!
evg_krsk
Хм. Действительно, во многих местах (Latest data, Configuration->Hosts, Dashboard) очень нерационально стало использоваться место. На 1920x1080 влезает совсем немного записей.
Это не говоря уж о варнингах PHP и одном воспроизводимом крэше сервера :-)
varnav
А импорт-экспорт Value Maps появился?
varnav
Ой, вижу — появился. Это очень хорошо!
kruff
Реально ли использовать для отправки нотификейшенов smtp.gmail.com? Пробую, но не выходит. Пишет Login denied: Authentication failed: 535. С настройками вроде как не косячил:
alexvl
Да, реально. Где-то я об этом подробно писал, так сразу не могу отыскать. Поищу...
wabbit
alexvl, вот оно: https://habrahabr.ru/company/zabbix/blog/277473/#comment_8778397
kruff
Спасибо! Помогло!
yosemity
Попробуйте SSL/TLS и 993 порт. Двухфакторка точно не включена?
yosemity
Что за ерунду я написал, заклинило на IMAP`е...
ivanday
а появилась ли опция отслеживания, что хост «флешует»? То есть кратковременный переход из стабильного состояния в критическое и обратное. При этом уведомление присылается на оба события и так может длиться всю ночь, например.