Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
-
Upload
zabbix -
Category
Technology
-
view
285.865 -
download
5
Transcript of Zabbix: Прошлое, настоящее и будущее (Zabbix: Past, present and the future)
ZabbixПрошлое, настоящее и будущее
О чем я буду говорить?
Немножко истории
Настоящее: Zabbix 3.0
Будущее
О команде ZabbixНас 30 человек
Офисы в Риге, Токио и Нью-Йорке
Зарабатываем предоставлением услуг вокруг Zabbix: поддержка, обучение, разработка, решения под ключ
В Японии предлагаем интересные продукты:
Что мы делаем?
• Строим открытую систему мониторинга которой можно доверять
• Не только для IT, но и IoT и другие применения
• Помешаны на качестве и хорошем коде
• Думаем о простоте поддержки
ПрошлоеС чего начинался Zabbix
История: 1998• Изначально использовался Perl, но не долго
• Основные архитектурные решения
Язык C для критичных частей
Язык PHP для WEB интерфейса
SQL back-end
Язык C+ Низкоуровневый, близок к железу
+ Эффективный код: быстрый
+ Минимальное использование ресурсов: CPU и память
+ Практически нет зависимостей
+ Один раз написал, запускай где хочешь
- Медленная разработка
- Проблемы с памятью, локами, поинтерами
Язык PHP+ Легко быстро научиться писать плохой код
+ Доступен на всех платформах
+ Активно развивается в последнее время
- Динамическая типизация
- Для хорошего кода нужна дисциплина
- Интерпретируем: ошибки во время выполнения
SQL back-end + MySQL, PostgreSQL, Oracle, DB2, SQLite
+ Транзакционность и целостность данных
+ Стандартный API: SQL
+ Легко разворачивать
- Масштабируемость
- Высокая доступность и redundancy
Как использование языка C влияет на Zabbix
Zabbix очень компактное приложение с минимальными зависимостями
Архитектура: хорошие стороны
Разделение логики: сбор данных, обнаружение проблем, оповещение пользователей, визуализация, API, и прочее
Мультипроцессорное приложение: использует все доступные ядра CPU
Данные всегда в целостном состоянии
ОптимизацииКеширование данных
ОптимизацииМассовые (bulk) операции
2015, что изменилось?• Языки: без изменений - C, PHP, SQL
• Строгая процедура разработки
• Спецификация, разработка, code review, тестирование, документация, готово!
• Coding guidelines
• Continuous integration
• Статические анализаторы и commit hooks
Сложности настоящего времени
• Различные технологии на back-end и front-end Команды с различными знаниями
• Скорость разработки
• Как добиться качества: тесты или лучшие инструменты?
• Исторический код на PHP
Различное качество кода
C PHP
НастоящееZabbix 3.0
Где найти roadmap?Ищем в поисковике “zabbix roadmap”
Попадаем на https://www.zabbix.org/wiki/Docs/roadmap
Zabbix 2.x: интерфейсУбрали бессмысленные вещи
Zabbix 3.0: интерфейс
Zabbix 3.0: интерфейс
Zabbix 3.0: интерфейс
Интерфейс: незаметные улучшения
• Модульность, MVC
• Возможность создавать свои страницы
• Возможность изменять существующие страницы
• Первые попытки инфраструктуры (API) для создания своих блоков (widgets) дашборда
Шифрование и аутентификация
• Шифрование и аутентификация для всех компонент
• Поддержка TLS v1.2 и PSK
• На выбор: OpenSSL, GnuTLS и PolarSSL
Личные ресурсы
• Личные screens, maps и slide shows
• Возможность дать доступ другим пользователем
Версионность XML
• Версии для XML файлов
• Строгая валидация
• Обратная совместимость
• Автоматическая конвертация со старых версий
Контекстные макросы{$MACRO:context], если не существует, то возьмём значение {$MACRO}
Пример
{$MINDISKSPACE:/tmp] => 50% {$MINDISKSPACE:/db] => 30%{$MINDISKSPACE} = 10%
Не хватает места на диске{host:vfs.fs.size[{%FSNAME},pfree].last()} < {$MINDISKSPACE:{%FSNAME}}
Проверки вида “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 если это понедельник
Ручной запуск хаускипера
Например, из crontab:
zabbix_server -R housekeeper_execute
Низкоуровневое обнаружение для SQL
select field1,field2 from table where …
А дальше используем объекты для создания элементов данных {%FIELD1}, {%FIELD2}
А также• Фильтрация по типу памяти для 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 сенсорах
Zabbix 3.0: когда?
• Планировался в Мае, 2015
• Ожидается: Август, 2015 (?)
БудущееЧто бы я хотел улучшить в Zabbix
WEB интерфейс: факты • Не эффективная навигация: меню!
• Слишком много кликов для стандартных действий “Укликайся до смерти”, Lukas, Zabbix Conference 2014
• Информация разрозненаМониторинг/Администрирование жёстко разделены
• Drop downs: поедают много памяти и CPU
WEB интерфейс: делаем удобным
• Улучшить удобство использования
• Объектно-ориентированная навигация Выбрали узел сети → Вся информация об узле сети на расстоянии одного клика
• Повысить связанность информации
• Ускорить (также зависит от производительности API)
API: факты
• Может быть ужасно медленным
• Генерирует слишком много SQL запросов
• Нет строгой валидации
• Слабые сообщения об ошибках
API: более быстрый и надёжный
• Быстрее в 10-100x разБолее эффективные алгоритмыBulk (массовые) операции и кеширование
• Сделать API гражданином “первого сорта”: возможно передвинуть на сторону Zabbix Server Тут у нас самый эффективный код и технологии
• Добавить строгую валидацию
• Подробные сообщения об ошибках
Отчёты: факты
Так много полезной информации, но:
• Очень слабые отчёты
• Почти нет аналитики
• Нет возможности создавать свои отчёты
• Нет возможности запомнить параметры отчётов
Отчёты: визуализация Реального времени и аналитика
Масштабируемость: факты
• Zabbix становится значительно медленнее при росте объёма данных
• Требует специальных усилий для масштабируемости (партиционирование)
• Непросто обеспечить HA/redundancy
Масштабируемость: терабайты!
• Горизонтальная масштабируемость на уровне хранилища Стандартные SQL хранилища этого не обеспечивают
• Отдельное хранилище для истории
• Новый распределённый мониторинг: один интерфейс на все сервера
• Производительность интерфейса очень важна, ответ менее чем за 1 секунду
API и плагины: факты
В настоящее время только для расширения серверных и агентский проверок, внешних
скриптов.
API и плагины
Поддерживать везде где только возможно
• Новые триггерные функции
• Пре- и постобработка данных
• Виджеты для дашборда
• И прочее и прочее
Несколько полезных ссылок
support.zabbix.comГолосование - реальный способ повлиять на наши планы!
share.zabbix.com
• Поделись со всеми!
• Шаблонами
• Модулями
• Инструкциями (HOWTO)
Спасибо!
twitter.com/zabbix
Приезжайте на конференцию! Рига, 11-12 Сентября.