Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

47
Zabbix Прошлое, настоящее и будущее

Transcript of Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Page 1: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

ZabbixПрошлое, настоящее и будущее

Page 2: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

О чем я буду говорить?

Немножко истории

Настоящее: Zabbix 3.0

Будущее

Page 3: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

О команде ZabbixНас 30 человек

Офисы в Риге, Токио и Нью-Йорке

Зарабатываем предоставлением услуг вокруг Zabbix: поддержка, обучение, разработка, решения под ключ

В Японии предлагаем интересные продукты:

Page 4: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Что мы делаем?

• Строим открытую систему мониторинга которой можно доверять

• Не только для IT, но и IoT и другие применения

• Помешаны на качестве и хорошем коде

• Думаем о простоте поддержки

Page 5: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

ПрошлоеС чего начинался Zabbix

Page 6: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

История: 1998• Изначально использовался Perl, но не долго

• Основные архитектурные решения

Язык C для критичных частей

Язык PHP для WEB интерфейса

SQL back-end

Page 7: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Язык C+ Низкоуровневый, близок к железу

+ Эффективный код: быстрый

+ Минимальное использование ресурсов: CPU и память

+ Практически нет зависимостей

+ Один раз написал, запускай где хочешь

- Медленная разработка

- Проблемы с памятью, локами, поинтерами

Page 8: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Язык PHP+ Легко быстро научиться писать плохой код

+ Доступен на всех платформах

+ Активно развивается в последнее время

- Динамическая типизация

- Для хорошего кода нужна дисциплина

- Интерпретируем: ошибки во время выполнения

Page 9: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

SQL back-end + MySQL, PostgreSQL, Oracle, DB2, SQLite

+ Транзакционность и целостность данных

+ Стандартный API: SQL

+ Легко разворачивать

- Масштабируемость

- Высокая доступность и redundancy

Page 10: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Как использование языка C влияет на Zabbix

Zabbix очень компактное приложение с минимальными зависимостями

Page 11: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Архитектура: хорошие стороны

Разделение логики: сбор данных, обнаружение проблем, оповещение пользователей, визуализация, API, и прочее

Мультипроцессорное приложение: использует все доступные ядра CPU

Данные всегда в целостном состоянии

Page 12: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

ОптимизацииКеширование данных

Page 13: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

ОптимизацииМассовые (bulk) операции

Page 14: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

2015, что изменилось?• Языки: без изменений - C, PHP, SQL

• Строгая процедура разработки

• Спецификация, разработка, code review, тестирование, документация, готово!

• Coding guidelines

• Continuous integration

• Статические анализаторы и commit hooks

Page 15: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Сложности настоящего времени

• Различные технологии на back-end и front-end Команды с различными знаниями

• Скорость разработки

• Как добиться качества: тесты или лучшие инструменты?

• Исторический код на PHP

Page 16: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Различное качество кода

C PHP

Page 17: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

НастоящееZabbix 3.0

Page 18: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Где найти roadmap?Ищем в поисковике “zabbix roadmap”

Попадаем на https://www.zabbix.org/wiki/Docs/roadmap

Page 19: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Zabbix 2.x: интерфейсУбрали бессмысленные вещи

Page 20: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Zabbix 3.0: интерфейс

Page 21: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Zabbix 3.0: интерфейс

Page 22: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Zabbix 3.0: интерфейс

Page 23: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Интерфейс: незаметные улучшения

• Модульность, MVC

• Возможность создавать свои страницы

• Возможность изменять существующие страницы

• Первые попытки инфраструктуры (API) для создания своих блоков (widgets) дашборда

Page 24: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Шифрование и аутентификация

• Шифрование и аутентификация для всех компонент

• Поддержка TLS v1.2 и PSK

• На выбор: OpenSSL, GnuTLS и PolarSSL

Page 25: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Личные ресурсы

• Личные screens, maps и slide shows

• Возможность дать доступ другим пользователем

Page 26: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Версионность XML

• Версии для XML файлов

• Строгая валидация

• Обратная совместимость

• Автоматическая конвертация со старых версий

Page 27: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Контекстные макросы{$MACRO:context], если не существует, то возьмём значение {$MACRO}

Пример

{$MINDISKSPACE:/tmp] => 50% {$MINDISKSPACE:/db] => 30%{$MINDISKSPACE} = 10%

Не хватает места на диске{host:vfs.fs.size[{%FSNAME},pfree].last()} < {$MINDISKSPACE:{%FSNAME}}

Page 28: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Проверки вида “Ready for business”

Проверки в конкретное время:

каждые N минут

каждые 2 часа начиная с 9:00 (9:00, 11:00 …)

каждый час в hh:00 и hh:30

по рабочим дням в 9:00

по рабочим дням каждый час в 9:00,10:00,...,18:00

каждый первый день месяца в 9:30

каждый первый день месяца в 9:30 если это понедельник

Page 29: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Ручной запуск хаускипера

Например, из crontab:

zabbix_server -R housekeeper_execute

Page 30: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Низкоуровневое обнаружение для SQL

select field1,field2 from table where …

А дальше используем объекты для создания элементов данных {%FIELD1}, {%FIELD2}

Page 31: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

А также• Фильтрация по типу памяти для proc.mem

• Поддержка IPv6 для Java gateway

• Triggers Top 100, фильтрация по: host, host group, severity and custom time period

• Поддержка TCP для DNS проверок

• Обнаружение любого количества SNMP LLD значенийifDescr, ifOutOctets, ifInOctets одним запросом из разных SNMP таблиц

• Dropdowns заменены на кнопки

• Поддержка LLD макросов в единицах измерения и IPMI сенсорах

Page 32: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Zabbix 3.0: когда?

• Планировался в Мае, 2015

• Ожидается: Август, 2015 (?)

Page 33: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

БудущееЧто бы я хотел улучшить в Zabbix

Page 34: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

WEB интерфейс: факты • Не эффективная навигация: меню!

• Слишком много кликов для стандартных действий “Укликайся до смерти”, Lukas, Zabbix Conference 2014

• Информация разрозненаМониторинг/Администрирование жёстко разделены

• Drop downs: поедают много памяти и CPU

Page 35: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

WEB интерфейс: делаем удобным

• Улучшить удобство использования

• Объектно-ориентированная навигация Выбрали узел сети → Вся информация об узле сети на расстоянии одного клика

• Повысить связанность информации

• Ускорить (также зависит от производительности API)

Page 36: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

API: факты

• Может быть ужасно медленным

• Генерирует слишком много SQL запросов

• Нет строгой валидации

• Слабые сообщения об ошибках

Page 37: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

API: более быстрый и надёжный

• Быстрее в 10-100x разБолее эффективные алгоритмыBulk (массовые) операции и кеширование

• Сделать API гражданином “первого сорта”: возможно передвинуть на сторону Zabbix Server Тут у нас самый эффективный код и технологии

• Добавить строгую валидацию

• Подробные сообщения об ошибках

Page 38: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Отчёты: факты

Так много полезной информации, но:

• Очень слабые отчёты

• Почти нет аналитики

• Нет возможности создавать свои отчёты

• Нет возможности запомнить параметры отчётов

Page 39: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Отчёты: визуализация Реального времени и аналитика

Page 40: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Масштабируемость: факты

• Zabbix становится значительно медленнее при росте объёма данных

• Требует специальных усилий для масштабируемости (партиционирование)

• Непросто обеспечить HA/redundancy

Page 41: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Масштабируемость: терабайты!

• Горизонтальная масштабируемость на уровне хранилища Стандартные SQL хранилища этого не обеспечивают

• Отдельное хранилище для истории

• Новый распределённый мониторинг: один интерфейс на все сервера

• Производительность интерфейса очень важна, ответ менее чем за 1 секунду

Page 42: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

API и плагины: факты

В настоящее время только для расширения серверных и агентский проверок, внешних

скриптов.

Page 43: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

API и плагины

Поддерживать везде где только возможно

• Новые триггерные функции

• Пре- и постобработка данных

• Виджеты для дашборда

• И прочее и прочее

Page 44: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Несколько полезных ссылок

Page 45: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

support.zabbix.comГолосование - реальный способ повлиять на наши планы!

Page 46: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

share.zabbix.com

• Поделись со всеми!

• Шаблонами

• Модулями

• Инструкциями (HOWTO)

Page 47: Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)

Спасибо!

twitter.com/zabbix

Приезжайте на конференцию! Рига, 11-12 Сентября.