Долгожданная версия открытой системы мониторинга 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, или:
{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. Регистрация на митап будет доступа через две недели.

Комментарии (76)


  1. Pumko_adm
    20.02.2016 10:41

    А можно как-нибудь поправить дашборд, в панели последние 20 событий, в плане компактности? А то по сравнению с 2.7.х стало неудобно. Раньше каждое событие занимало 1 строку, теперь 2.

    2.4.7
    Картинку ставить не удалось =((


    1. evg_krsk
      20.02.2016 10:53

      Вторая картинка в посте — 20 событий, по одной строке каждое.


      1. Pumko_adm
        20.02.2016 10:59

        2.4.7


        1. alexvl
          20.02.2016 11:59

          Соглашусь с этим. Попытаемся что-то улучшить в ближайших 3.0.х.


          1. Pumko_adm
            21.02.2016 17:49

            Спасибо, будем ждать!


        1. evg_krsk
          21.02.2016 04:25

          Хм. Действительно, во многих местах (Latest data, Configuration->Hosts, Dashboard) очень нерационально стало использоваться место. На 1920x1080 влезает совсем немного записей.

          Это не говоря уж о варнингах PHP и одном воспроизводимом крэше сервера :-)


  1. varnav
    24.02.2016 14:09
    +1

    А импорт-экспорт Value Maps появился?


    1. varnav
      24.02.2016 14:35
      +1

      Ой, вижу — появился. Это очень хорошо!


  1. kruff
    25.02.2016 18:09

    Реально ли использовать для отправки нотификейшенов smtp.gmail.com? Пробую, но не выходит. Пишет Login denied: Authentication failed: 535. С настройками вроде как не косячил:

    Скрин
    image


    1. alexvl
      25.02.2016 18:15

      Да, реально. Где-то я об этом подробно писал, так сразу не могу отыскать. Поищу...


      1. wabbit
        25.02.2016 18:45
        +1

        1. kruff
          25.02.2016 19:35

          Спасибо! Помогло!


    1. yosemity
      25.02.2016 18:26

      Попробуйте SSL/TLS и 993 порт. Двухфакторка точно не включена?


      1. yosemity
        25.02.2016 22:21

        Что за ерунду я написал, заклинило на IMAP`е...


  1. ivanday
    26.02.2016 12:58

    а появилась ли опция отслеживания, что хост «флешует»? То есть кратковременный переход из стабильного состояния в критическое и обратное. При этом уведомление присылается на оба события и так может длиться всю ночь, например.