Zabbix и правильное обнаружение проблем - Алексей...

37
Zabbix и правильное обнаружение проблем Алексей Владышев

Transcript of Zabbix и правильное обнаружение проблем - Алексей...

Page 1: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Zabbix и правильное обнаружение проблемАлексей Владышев

Page 2: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

О чём доклад?Что такое Zabbix?

Как работает Zabbix?

Как правильно обнаруживать проблемы?

Page 3: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Что такое Zabbix?Enterprise level Open Source monitoring solution

Чем мы отличаемся

Реальный Open Source

Всё в одном

Простота в эксплуатации

Зрелость, качество и надёжность

Гибкость

Page 4: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Как работает Zabbix

Zabbix ServerDB

Сбор данныхАнализИстория

Визуализация

Page 5: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Сбор данныхДоступность, производительность, целостность, проблемы окружения, KPI & SLA

Page 6: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Методы сбора данныхPull

• Проверки сервисов

• Пассивный Агент

• SSH и Telnet

Push

• Активный Agent

• Zabbix Trapper и SNMP Traps

• Мониторинг лог файлов

Page 7: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Активные / пассивные

Page 8: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Как часто?Раз в N секунд всегда

Zabbix равномерно распределяет проверки

Разная частота в разные интервалы времени

Раз в X секунд в рабочее времяРаз в Y секунд по выходным

В конкретное время

Проверки вида 'Готовы к работе!'

Page 9: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Как в этом потоке информации отлавливать проблемы?

Page 10: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Триггеры!

Page 11: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Триггерэто

описание проблемы

Page 12: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

ТриггерыПример

{server:system.cpu.load.last()} > 5

Операторы

- + / * < > = <> or and not

Анализируем всё!

{node1:cpu.func1(3m)}>5 and {node2:cpu.func2(3m)}>5 and {nodes:tps.func3(5m)}>3

Page 13: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Уровень новичкаПроизводительность:

{server:system.cpu.load.last()} > 5

Доступность

{server:net.tcp.service[http].last()} = 0

Page 14: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Чуствительность →ложные срабатывания

Page 15: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Что делать?

Page 16: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Правильно формулировать

проблемы ипонимать суть!

Page 17: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Используем историюПроизводительность системы

{server:system.cpu.load.min(10m)} > 5

Доступность сервиса

{server:net.tcp.service[http].max(5m)} = 0

или

{server:net.tcp.service[http].max(#3)} = 0

Page 18: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Решение проблемыне эквивалентно её

отсутствию!

Page 19: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

ГистерезисРазличные условия для входа в состояние проблемы и выхода из неё

Было

{server:system.cpu.load.last()} > 5Стало

({TRIGGER.VALUE}=0 and {server:system.cpu.laod.last()}>5)

or

({TRIGGER.VALUE}=1 and {server:system.cpu.load.last()}>1)

Избавились от флаппинга!

Page 20: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Несколько примеровСистема перегружена

({TRIGGER.VALUE}=0 and {server:system.cpu.load.min(5m)}>3) or({TRIGGER.VALUE}=1 and {server:system.cpu.load.max(2m)}>1)

Не хватает свободного места на /

({TRIGGER.VALUE}=0 and {server:vfs.fs.size[/,pfree].last()}<10) or({TRIGGER.VALUE}=1 and {server:vfs.fs.size[/,pfree].min(10m)}<30)

SSH сервер недоступен

({TRIGGER.VALUE}=0 and {server:net.tcp.service[ssh].max(#3)}=0) or ({TRIGGER.VALUE}=1 and {server:net.tcp.service[ssh].min(#10)}=0)

Page 21: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Аномалии

Page 22: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Как обнаружитьСравниваем с нормой, где

норма = состояние системы в прошлом

Средняя загрузка процессора за последний час превышает вдвое загрузку процессора за тот же период неделю назад.

{server:system.cpu.load.avg(1h)} > 2 * {server:system.cpu.load.avg(1h,7d)}

Page 23: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

ЗависимостиПрячем зависимые проблемы

Нет места надиске

CRM недоступна

База данныхнедоступна

Page 24: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Как реагироватьна проблемы?

Page 25: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Реакция на проблему

Автоматическое решение проблем

Сообщения пользователю или группе

Отkрытие тикетов в системе Helpdesk

Page 26: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Эскалируем!• Немедленная реакция

• Реакция с задержкой

• Оповещение еслиавтоматика не сработала

• Повторные сообщения

• Эскалация на следующийуровень

Page 27: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Подведём итог• Анализируем историю

• Отсутствие проблемы — не есть её решение

Используем разные условия для проблемы и её решения

• Пытаемся работать с аномалиями

• Автоматически решаем проблемы

• Эскалируем проблемы!

Page 28: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Вопросы?Если не успели задать вопрос или не удовлетворены моим ответом, то:

- меня можно смело отлавливать сегодня и завтра на конференции

- через твиттер: @avladishev

- пишите на [email protected]

Спасибо за внимание!

Page 29: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Zabbix 3.0: когда?

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

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

Page 30: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

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

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

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

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

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

Page 31: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

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

Page 32: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

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

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

Поддержка TLS и PSK

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

Page 33: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Персонифицированные ресурсы

Персональные screens, maps and slide shows

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

Page 34: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

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

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

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

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

Page 35: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

Контекстные макросы

Сейчас: {$MACRO}

Zabbix 3.0

{$MACRO}[“context”], если не существует, то возмём значение {$MACRO}

Пример

{$MINDISKSPACE}['/tmp'] => 50%

{$MINDISKSPACE}['/db'] => 30%

{$MINDISKSPACE} = 10%

Page 36: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

А также... #1

• Выполнение проверок в определённое время

• ODBC LLD

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

• Поддержка дополнительных макросов для поля URL триггера

• Улучшения в мониторинге лог файлов

• Возможно: baseline monitoring

Page 37: Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015

А также... #2

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

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

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

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

• Обнаружение любого количества SNMP LLD значений

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

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

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