52
Александр Сербул Руководитель направления контроля качества интеграции и внедрений Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр

Александр Сербул Руководитель направления контроля качества интеграции и внедрений

  • Upload
    adina

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр. Александр Сербул Руководитель направления контроля качества интеграции и внедрений. А зачем мониторить веб-проекты?. Клиенты чутко реагируют на доступность и скорость веб-проекта – днем … и ночью - PowerPoint PPT Presentation

Citation preview

Page 1: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Александр СербулРуководитель направления контроля качества интеграции и внедрений

Мониторинг веб-проектов:штаб оперативного реагирования

и аналитический центр

Page 2: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Клиенты чутко реагируют на доступность и

скорость веб-проекта – днем … и ночью

Вашу веб-систему есть с чем сравнить - Google,

Facebook, Twitter …

Вас рассматривают «под лупой», обсуждая

недостатки в соцсетях и Twitter!

А зачем мониторить веб-проекты?

Page 3: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

«У них сайт часто зависает и глючит. В делах,

видимо, еще больший бардак!»

«Они потеряли мои данные. Как скоро их ждать на

диске на Горбушке?»

У Клиентов обострился вкус на качество веб-

систем, они ждут больше и «чтобы побыстрее»

А зачем мониторить веб-проекты?

Page 4: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Часть бизнес-процессов компании/проекта

завязана на веб-интерфейс – узкое место

Чем медленнее веб-админки, тем медленнее

работает ваш бизнес

Весь офис вышел «покурить»

Page 5: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Отдел продаж в конце месяца – «завесил» 20

образовательных проектов на сутки

При начислении зарплаты – сайты открываются по

минуте

База данных «внезапно» перестала справляться с

нагрузкой… Канал просел… Провайдер заглючил…

Ой, мощностей не хватает со вчера!

Page 6: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Веб-лицо компании/проекта – должно нравиться и располагать

к действию!

Page 7: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Клиент должен ощущать надежность веб-решения, легкость и стиль

Красный «кабриолет» Зеленый «лимузин»

Page 8: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Сотрудник/группа эксплуатации – с подлинным

техническим образованием

Люди либо с опытом, либо … учатся на вашем

проекте и Клиентах

Админ «Петя» за $500 и телефон

подключит, и … сервера настроит

Прежде всего - люди

Page 9: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Понимание Unix/Linux изнутри и сетевых

протоколов, RFC

Способность иногда «программировать» на bash

(приветствуется - perl, C и др.)

Некий «гибрид» разработчика и администратора«Ищем сисадмина: Windows Visa/7/Free BSD/Open BSD/Net

BSD/Solaris/Cisco/IP телефония, С, С++, Java. Умение верстать, JS,

разбираться в чужом коде, таскать коробки и работать в Agile

команде»

Прежде всего - люди

Page 10: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Подход «жертвы»:

«Вы скажите, позвоните, напишите, напомните – мы же

умные, мы - сделаем». Сделают, но Клиент уже

прокатится на «красном кабриолете»

«Ой, мы потеряли данные клиентов. Сейчас настроим

бэкап»

«Сейчас все сделаю и за полдня –

все заново протестирую»

Стиль работы – «Ослик»

Page 11: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Проактивность. Узнать раньше Клиента о проблеме или

одновременно.

Скорость. Автоматизировать решение типовых задач – не

тянуть резину по 2-3 дня.

Системный подход. Не наступать на одни грабли 2 раза

подряд. Фиксировать детали аварии.

Заглядывать за горизонт. Сбор и анализ трендов, закупка

оборудования, увеличение мощностей.

Стиль работы – «Штурман»

Page 12: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Стиль работы – «Штурман»

Page 13: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Дальше – детали и технический хардкор

Page 14: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Наличие свежих бэкапов!

Учения по восстановлению из бэкапов – прошли

недавно, успешно

Доступность «морды» сайтов – снаружи. Желательно из

нескольких точек (ping-admin.ru, host-tracker.com …)

Срок действия SSL-сертификатов

Доступность «админок» – изнутри

Наличие свежих бэкапов!

Что мониторим прежде всего?

Page 15: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Nagios (www.nagios.org)

Zabbix (www.zabbix.com/ru/)

Регистрация событий в журнале для аудита и анализа, e-mail/SMS –

уведомления, свои обработчики событий.

Чем мониторим

Page 16: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Заведите машину мониторинга, если проектов много, «копейка

рубль бережет»

Важно мониторить сам сервер мониторинга из другого ДЦ

Чем мониторим

Page 17: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Что мониторить на сервере

Базовые тесты сервера – ставим везде

Тесты критичного софта – иногда

Тесты mysql и другой БД – отдельная интересная

тема для DBA

«Комплексные» тесты – ставим на машину

мониторинга

Page 18: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Базовые тесты сервера

Минимум, без которого - ну никак нельзя

vmstat

Page 19: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Тесты критичного софта

Для критичного софта: считаем число процессов, объем RSS, %CPU,

process system/user time

Page 20: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Тесты БД

Привожу пример для MySQL

Page 21: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг MySQL

Гистограмма времени обработки запросов (Percona)

Page 22: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг операционной системы

Очень полезные утилиты: atop, apachetop, innotop

atop (www.atoptool.nl):

Page 23: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг операционной системы

apachetop (freecode.com/projects/apachetop) – гистограмма запросов к apache - онлайн

Page 24: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг БД

innotop (code.google.com/p/innotop)

Page 25: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг веб-приложения

Лог работы скрипта (>) – обновился за N часов

Лог ошибок работы скрипта (2>) – должен быть пуст

Page 26: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Pinba!

http://pinba.org

Плагин для PHP + cпециальный storage для MySQL

Онлайн агрегатор хитов

UDP-пакеты

Тэги позволяют гибко получать информацию о различных

показателях веб-приложения

Уже установили? Правильно

Page 27: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг веб-приложения

Число ошибок в хитах за 15 минут - меньше LМакс. время хита (тэга pinba) – меньше M сек.

Макс. использование памяти хитом – меньше N МБ

Графики рисует простой плагин для munin

Page 28: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг веб-приложения

Графики рисует простой плагин для munin

«Стоимость» хита в процессором времени - pinba

Page 29: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг веб-приложения

Графики рисует простой плагин для munin

Хиты в разрезе - pinba

Page 30: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Мониторинг веб-приложения

Гистограммы распределения времени хитов, памяти, кодам ответа – из логов (awk-скрипт)

Общая температура «по палате»

Page 31: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Видим, что было

Предвидим, что будет

Улавливаем тренды

Планируем мощности железа

Сравниваем настройки софта

Веб-система перестает быть черным ящиком, видно ее

развитие с течением времени

Page 32: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Апачи

MaxClients = StartServers = MinSpareServers = MaxSpareServers < 20-30

Page 33: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Nginx

Page 34: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика - MySQL

Следите за числом потоков на БД! 100 уже немало

Page 35: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика - MySQL

Кэш запросов иногда эффективнее отключить

Page 36: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика - MySQL

Медленные запросы – часто признак проблемы

Page 37: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Память

Apache MaxClients

MySQL buffers …

Нужно «прикинуть» максимальный расход памяти в приложениях и следить за ней

Page 38: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Уход в swap. На графике машина - зависла.

Скорость работы с диском на несколько порядков ниже. Нужно стараться избегать своппинга.

Page 39: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Дисковая подсистема

Page 40: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Дисковая подсистема

iostat

Page 41: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Сеть

Page 42: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Нагрузка

Page 43: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

Нагрузка

Page 44: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Аналитика

memcached

Page 45: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Действия при аварии

Нужно быстро понять – где и как починить

Смотрим срабатывание тестов nagios – часто

единственный источник информации

Смотрим почту от nagios

Смотрим логи. Держим заготовленные скипты-парсеры

логов на поиск ошибок.

Вот тут наливаем чай

Смотрим графики munin, базу pinba

Если получается, запускаем инструменты поиска узких

мест

Page 46: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Инструменты поиска узких мест

Apache /server-status

Включенные логи медленных запросов php-fpm, nginx, apache, mysql

Page 47: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Инструменты поиска узких мест

XHProf, pinba, XDebug

Page 48: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Инструменты поиска узких мест

XHProf (github.com/facebook/xhprof)

Почти не создает нагрузку на бою

Можно быстро найти корень проблемы

Полезно автоматически сохранять

трейсы долгих страниц

… и анализировать их с разработчиками

Page 49: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Инструменты поиска узких мест

XDebug (xdebug.org)

Cоздает ощутимую нагрузку на бою

Можно снимать трейсы выполнения веб-страниц

Часто – незаменимый инструмент

Page 50: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Инструменты поиска узких мест

Старые, добрые утилиты unix

strace

gdbgdb –p 123456

(gdb) source /src/php-5.3.19/.gdbinit

(gdb) dump_bt executor_globals.current_execute_data[0x0252d628] stemming() /var/www/html/bitrix/modules/search/tools/stemming.php:231

[0x0252bc78] stemming() /var/www/html/bitrix/modules/search/classes/mysql/search.php:1090

[0x02525ec8] StemIndex() /var/www/html/bitrix/modules/search/classes/general/search.php:1332

[0x025223f8] Index() /var/www/html/bitrix/modules/iblock/classes/general/iblockelement.php:4857

[0x0251b670] UpdateSearch() /var/www/html/bitrix/modules/iblock/classes/general/iblockelement.php:3295

[0x02519c40] Add() /var/www/html/bitrix/modules/crm/classes/general/crm_webdav_helper.php:486

[0x02514010] SaveEmailAttachment() /var/www/html/bitrix/modules/crm/classes/general/crm_email.php:867

[0x065c2030] EmailMessageAdd()

[0x0250fcc8] call_user_func_array() /var/www/html/bitrix/modules/mail/classes/general/mail.php:2477

Page 51: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Автоматизация жизнеобеспечения

Пишем хандлеры для nagios/zabbix

Можно поиграться с Pacemaker

Чем проще – тем лучше!

С удовольствием пообщаюсь на эту

тему в кулуарах

Page 52: Александр Сербул Руководитель направления контроля качества интеграции и внедрений

Спасибо за внимание! Вопросы?

Александр Сербул

[email protected]

@AlexSerbul