Мониторинг веб-проектов:       штаб оперативного реагирования                и аналитический центр                        ...
А зачем мониторить веб-проекты?  Клиенты чутко реагируют на доступность и  скорость веб-проекта – днем … и ночью  Вашу веб...
А зачем мониторить веб-проекты?«У них сайт часто зависает и глючит. Вделах, видимо, еще больший бардак!»«Они потеряли мои ...
Весь офис вышел «покурить» Часть бизнес-процессов компании/проекта завязана на веб-интерфейс – узкое место Чем медленнее в...
Ой, мощностей не хватает со вчера!   Отдел продаж в конце месяца – «завесил» 20   образовательных проектов на сутки    Пр...
Веб-лицо компании/проекта – должно нравиться и располагатьк действию!
Клиент должен ощущать надежность веб-решения, легкость и стиль      Красный «кабриолет»                    Зеленый «лимуз...
Прежде всего - люди  Сотрудник/группа эксплуатации – с подлинным  техническим образованием  Люди либо с опытом, либо … уча...
Прежде всего - люди  Понимание Unix/Linux изнутри и сетевых  протоколов, RFC  Способность иногда «программировать» на bash...
Стиль работы – «Ослик»Подход «жертвы»:  «Вы скажите, позвоните, напишите, напомните – мы же  умные, мы - сделаем». Сделают...
Стиль работы – «Штурман» Проактивность. Узнать раньше Клиента о проблеме или одновременно. Скорость. Автоматизировать реше...
Стиль работы – «Штурман»
Дальше – детали и технический хардкор
Что мониторим прежде всего? Наличие свежих бэкапов! Учения по восстановлению из бэкапов – прошли недавно, успешно Доступно...
Чем мониторим  Nagios (www.nagios.org)  Zabbix (www.zabbix.com/ru/)Регистрация событий в журнале для аудита и анализа, e-m...
Чем мониторим Заведите машину мониторинга, если проектов много, «копейка рубль бережет» Важно мониторить сам сервер монито...
Что мониторить на сервере  Базовые тесты сервера – ставим везде  Тесты критичного софта – иногда  Тесты mysql и другой БД ...
Базовые тесты сервера   Минимум, без которого - ну никак нельзяvmstat
Тесты критичного софта  Для критичного софта: считаем число процессов, объем RSS, %CPU,  process system/user time
Тесты БД  Привожу пример для MySQL
Мониторинг MySQL   Гистограмма времени обработки запросов (Percona)
Мониторинг операционной системы Очень полезные утилиты: atop, apachetop, innotop atop (www.atoptool.nl):
Мониторинг операционной системы apachetop (freecode.com/projects/apachetop) – гистограмма запросов к apache - онлайн
Мониторинг БД innotop (code.google.com/p/innotop)
Мониторинг веб-приложения   Лог работы скрипта (>) – обновился за N часов   Лог ошибок работы скрипта (2>) – должен быть п...
Pinba!   http://pinba.org   Плагин для PHP + cпециальный storage для MySQL   Онлайн агрегатор хитов   UDP-пакеты   Тэги по...
Мониторинг веб-приложения   Число ошибок в хитах за 15 минут - меньше L   Макс. время хита (тэга pinba) – меньше M сек.   ...
Мониторинг веб-приложения   «Стоимость» хита в процессором времени - pinbaГрафики рисует простой плагин для munin
Мониторинг веб-приложения   Хиты в разрезе - pinbaГрафики рисует простой плагин для munin
Мониторинг веб-приложения   Гистограммы распределения времени хитов, памяти,   кодам ответа – из логов (awk-скрипт)   Обща...
Аналитика   Видим, что было   Предвидим, что будет   Улавливаем тренды   Планируем мощности железа   Сравниваем настройки ...
Аналитика  Апачи  MaxClients = StartServers = MinSpareServers =  MaxSpareServers < 20-30
Аналитика  Nginx
Аналитика - MySQL  Следите за числом потоков на БД! 100 уже немало
Аналитика - MySQL  Кэш запросов иногда эффективнее отключить
Аналитика - MySQL  Медленные запросы – часто признак проблемы
Аналитика  ПамятьApache MaxClientsMySQL buffers … Нужно «прикинуть» максимальный расход памяти в приложениях и следить за ...
Аналитика  Уход в swap. На графике машина - зависла.Скорость работы с диском на несколько порядковниже. Нужно стараться из...
Аналитика  Дисковая подсистема
Аналитика  Дисковая подсистема   iostat
Аналитика  Сеть
Аналитика  Нагрузка
Аналитика  Нагрузка
Аналитика  memcached
Действия при аварии   Нужно быстро понять – где и как починить   Смотрим срабатывание тестов nagios – часто   единственный...
Инструменты поиска узких мест  Apache /server-status  Включенные логи медленных запросов php-  fpm, nginx, apache, mysql
Инструменты поиска узких мест  XHProf, pinba, XDebug
Инструменты поиска узких мест                XHProf (github.com/facebook/xhprof)                Почти не создает нагрузку ...
Инструменты поиска узких мест   XDebug (xdebug.org)   Cоздает ощутимую нагрузку на бою   Можно снимать трейсы выполнения в...
Инструменты поиска узких мест       Старые, добрые утилиты unix       strace       gdb gdb –p 123456 (gdb) source /src/php...
Автоматизация жизнеобеспечения    Пишем хандлеры для nagios/zabbix    Можно поиграться с Pacemaker    Чем проще – тем лучш...
Спасибо за внимание!Вопросы? Александр Сербул serbul@1c-bitrix.ru    @AlexSerbul
Upcoming SlideShare
Loading in …5
×

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр

335 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
335
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр

  1. 1. Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр Александр СербулРуководитель направления контроля качества интеграции и внедрений
  2. 2. А зачем мониторить веб-проекты? Клиенты чутко реагируют на доступность и скорость веб-проекта – днем … и ночью Вашу веб-систему есть с чем сравнить - Google, Facebook, Twitter … Вас рассматривают «под лупой», обсуждая недостатки в соцсетях и Twitter!
  3. 3. А зачем мониторить веб-проекты?«У них сайт часто зависает и глючит. Вделах, видимо, еще больший бардак!»«Они потеряли мои данные. Как скоро их ждать надиске на Горбушке?» У Клиентов обострился вкус на качество веб- систем, они ждут больше и «чтобы побыстрее»
  4. 4. Весь офис вышел «покурить» Часть бизнес-процессов компании/проекта завязана на веб-интерфейс – узкое место Чем медленнее веб-админки, тем медленнее работает ваш бизнес
  5. 5. Ой, мощностей не хватает со вчера! Отдел продаж в конце месяца – «завесил» 20 образовательных проектов на сутки  При начислении зарплаты – сайты открываются по минутеБаза данных «внезапно» перестала справляться с нагрузкой… Канал просел… Провайдер заглючил…
  6. 6. Веб-лицо компании/проекта – должно нравиться и располагатьк действию!
  7. 7. Клиент должен ощущать надежность веб-решения, легкость и стиль Красный «кабриолет»  Зеленый «лимузин» 
  8. 8. Прежде всего - люди Сотрудник/группа эксплуатации – с подлинным техническим образованием Люди либо с опытом, либо … учатся на вашем проекте и КлиентахАдмин «Петя» за $500 и телефон подключит, и … сервера настроит 
  9. 9. Прежде всего - люди Понимание Unix/Linux изнутри и сетевых протоколов, RFC Способность иногда «программировать» на bash (приветствуется - perl, C и др.) Некий «гибрид» разработчика и администратора«Ищем сисадмина: Windows Visa/7/Free BSD/Open BSD/Net BSD/Solaris/Cisco/IP телефония, С, С++, Java. Умение верстать, JS, разбираться в чужом коде, таскать коробки и работать в Agile команде»
  10. 10. Стиль работы – «Ослик»Подход «жертвы»: «Вы скажите, позвоните, напишите, напомните – мы же умные, мы - сделаем». Сделают, но Клиент уже прокатится на «красном кабриолете» «Ой, мы потеряли данные клиентов. Сейчас настроим бэкап» «Сейчас все сделаю и за полдня – все заново протестирую»
  11. 11. Стиль работы – «Штурман» Проактивность. Узнать раньше Клиента о проблеме или одновременно. Скорость. Автоматизировать решение типовых задач – не тянуть резину по 2-3 дня. Системный подход. Не наступать на одни грабли 2 раза подряд. Фиксировать детали аварии. Заглядывать за горизонт. Сбор и анализ трендов, закупка оборудования, увеличение мощностей.
  12. 12. Стиль работы – «Штурман»
  13. 13. Дальше – детали и технический хардкор
  14. 14. Что мониторим прежде всего? Наличие свежих бэкапов! Учения по восстановлению из бэкапов – прошли недавно, успешно Доступность «морды» сайтов – снаружи. Желательно из нескольких точек (ping-admin.ru, host-tracker.com …) Срок действия SSL-сертификатов Доступность «админок» – изнутри … Наличие свежих бэкапов! 
  15. 15. Чем мониторим Nagios (www.nagios.org) Zabbix (www.zabbix.com/ru/)Регистрация событий в журнале для аудита и анализа, e-mail/SMS –уведомления, свои обработчики событий.
  16. 16. Чем мониторим Заведите машину мониторинга, если проектов много, «копейка рубль бережет» Важно мониторить сам сервер мониторинга из другого ДЦ 
  17. 17. Что мониторить на сервере Базовые тесты сервера – ставим везде Тесты критичного софта – иногда Тесты mysql и другой БД – отдельная интересная тема для DBA «Комплексные» тесты – ставим на машину мониторинга
  18. 18. Базовые тесты сервера Минимум, без которого - ну никак нельзяvmstat
  19. 19. Тесты критичного софта Для критичного софта: считаем число процессов, объем RSS, %CPU, process system/user time
  20. 20. Тесты БД Привожу пример для MySQL
  21. 21. Мониторинг MySQL Гистограмма времени обработки запросов (Percona)
  22. 22. Мониторинг операционной системы Очень полезные утилиты: atop, apachetop, innotop atop (www.atoptool.nl):
  23. 23. Мониторинг операционной системы apachetop (freecode.com/projects/apachetop) – гистограмма запросов к apache - онлайн
  24. 24. Мониторинг БД innotop (code.google.com/p/innotop)
  25. 25. Мониторинг веб-приложения Лог работы скрипта (>) – обновился за N часов Лог ошибок работы скрипта (2>) – должен быть пуст
  26. 26. Pinba! http://pinba.org Плагин для PHP + cпециальный storage для MySQL Онлайн агрегатор хитов UDP-пакеты Тэги позволяют гибко получать информацию о различных показателях веб-приложения Уже установили? Правильно 
  27. 27. Мониторинг веб-приложения Число ошибок в хитах за 15 минут - меньше L Макс. время хита (тэга pinba) – меньше M сек. Макс. использование памяти хитом – меньше N МБГрафики рисует простой плагин для munin
  28. 28. Мониторинг веб-приложения «Стоимость» хита в процессором времени - pinbaГрафики рисует простой плагин для munin
  29. 29. Мониторинг веб-приложения Хиты в разрезе - pinbaГрафики рисует простой плагин для munin
  30. 30. Мониторинг веб-приложения Гистограммы распределения времени хитов, памяти, кодам ответа – из логов (awk-скрипт) Общая температура «по палате»
  31. 31. Аналитика Видим, что было Предвидим, что будет Улавливаем тренды Планируем мощности железа Сравниваем настройки софта Веб-система перестает быть черным ящиком, видно ее развитие с течением времени
  32. 32. Аналитика Апачи MaxClients = StartServers = MinSpareServers = MaxSpareServers < 20-30
  33. 33. Аналитика Nginx
  34. 34. Аналитика - MySQL Следите за числом потоков на БД! 100 уже немало
  35. 35. Аналитика - MySQL Кэш запросов иногда эффективнее отключить
  36. 36. Аналитика - MySQL Медленные запросы – часто признак проблемы
  37. 37. Аналитика ПамятьApache MaxClientsMySQL buffers … Нужно «прикинуть» максимальный расход памяти в приложениях и следить за ней
  38. 38. Аналитика Уход в swap. На графике машина - зависла.Скорость работы с диском на несколько порядковниже. Нужно стараться избегать своппинга.
  39. 39. Аналитика Дисковая подсистема
  40. 40. Аналитика Дисковая подсистема iostat
  41. 41. Аналитика Сеть
  42. 42. Аналитика Нагрузка
  43. 43. Аналитика Нагрузка
  44. 44. Аналитика memcached
  45. 45. Действия при аварии Нужно быстро понять – где и как починить Смотрим срабатывание тестов nagios – часто единственный источник информации Смотрим почту от nagios Смотрим логи. Держим заготовленные скипты-парсеры логов на поиск ошибок. Вот тут наливаем чай  Смотрим графики munin, базу pinba Если получается, запускаем инструменты поиска узких мест
  46. 46. Инструменты поиска узких мест Apache /server-status Включенные логи медленных запросов php- fpm, nginx, apache, mysql
  47. 47. Инструменты поиска узких мест XHProf, pinba, XDebug
  48. 48. Инструменты поиска узких мест XHProf (github.com/facebook/xhprof) Почти не создает нагрузку на бою Можно быстро найти корень проблемы Полезно автоматически сохранять трейсы долгих страниц … и анализировать их с разработчиками
  49. 49. Инструменты поиска узких мест XDebug (xdebug.org) Cоздает ощутимую нагрузку на бою Можно снимать трейсы выполнения веб-страниц Часто – незаменимый инструмент
  50. 50. Инструменты поиска узких мест Старые, добрые утилиты unix strace gdb gdb –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 …
  51. 51. Автоматизация жизнеобеспечения Пишем хандлеры для nagios/zabbix Можно поиграться с Pacemaker Чем проще – тем лучше! С удовольствием пообщаюсь на эту тему в кулуарах 
  52. 52. Спасибо за внимание!Вопросы? Александр Сербул serbul@1c-bitrix.ru @AlexSerbul

×