SlideShare une entreprise Scribd logo
1  sur  61
Мониторинг веб-проектов:
real-time мониторинг и
аналитика, поиск ошибок и
«боевая» отладка
Александр Демидов,
«1С-Битрикс»
О чем будем говорить
Явные и не очень потери на медленном / недоступном сайте.
Спасет ли SLA провайдера?
Общие принципы внедрения систем real-time мониторинга.
Мониторинг нетипичных характеристик (наличие бэкапов, делегирование
домена и т.п.).
Автоматизация типовых реакций на алерты.
Зачем нужна аналитика в мониторинге (пробуем предугадать проблемы до
того, как они случатся).
Инструменты и общие подходы быстрого поиска "узких" мест.
Немного про client side.
Что теряет медленный сайт?
Прямые потери заказов
Финансовые потери во время
рекламных компаний – вы платите за
«холостые» клики
Стоимость контекстной рекламы
Значение поиска невозможно преуменьшить
60% трафика интернет-магазина – поиск
(конверсия этого трафика около 0.5 %)
40% остального трафика – средняя
конверсия 1.1% (исследование
Webprofiters)
Несложная математика: около 40%
заказов – из поиска
Медленный сайт опускается в результатах поиска
Факторы ранжирования
время отклика сайта
скорость загрузки страницы
возвраты на SERP и переходы на
другие сайты
количество просмотренных
страниц
общее время сессии
Падение CTR
Агрегаторы тоже не любят медленные сайты
Яндекс.Маркет ежедневно
отключает на полтора часа более
1000 магазинов из-за таймаутов
Если ваш сайт выглядит как живой...
убедитесь, что он еще и здоровый.
Спасет ли SLA провайдера?
Ни один SLA не покроет вашу упущенную выгоду (прибыль),
только расходы на хостинг.
Наиболее часто встречается гарантия 99.9% доступности в SLA.
Это – около 9 часов простоя в год.
Небольшие слоты (до 5 минут) никто не считает.
Ребут сервера, скорее всего, не попадает под SLA. А если это
база данных, она может стартовать несколько часов после
аварийного завершения.
«Хитрости» SLA
Web 1
Elastic Load Balancing
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
S3
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
$25 / месяц
$5000 / месяц
Недоступность сайта…
Вышел из строя диск
Кончилось место на диске
Не хватило ресурсов CPU
Не хватило памяти
Не хватило производительности диска
Не хватило канала
Вышла из строя оперативная память
Вышла из строя материнская плата
Сгорел блок питания
DDoS
Взлом - целевая атака
Взлом - нецелевая атака
Разделегирование домена
Закончился срок действия SSL сертификата
Выход из строя маршрутизатора провайдера
Авария на канале провайдера
Потери пакетов у upstream провайдера
Авария с электропитанием
Выход из строя вентиляции - перегрев
Ошибки настройки сети
Ошибки настройки веб-сервера
Ошибки настройки базы данных
Ошибка разработки
Преднамеренное вредительство разработчиком
Ошибки на файловой системе
Попадание в реестр Роскомнадзора
Ошибки внешних систем (например, платежная система в интернет-магазине)
Ошибка персонала хостера
Ошибка персонала upstream оператора
Недоступность и авария DNS
Удаленность хостинга от клиентов
Ошибки в системном ПО (segfault)
Ошибки файловой системы после аварийной перезагрузки
Ошибки БД после аварийной перезагрузки
Сброс несохраненных настроек после перезагрузки
Неоплата хостинга
Неоплата лицензий на ПО
Несовместимость с клиентским ПО
Отсутствие ресурсов для масштабирования (не хватило серверов)
Неготовность приложения к масштабированию
Отсутствие кэширования
Взаимодействие с внешними системами (нагрузка импортами)
Нагрузка во время создания бэкапа
Ошибки после установки обновлений
Ошибочная блокировка браузерами (вирусы)
Отсутствие обработки пользовательских данных
Авария на уровне датацентра (пожар, наводнение)
Отсутствие бэкапа для восстановления
«Битый» бэкап (не было учений по восстановлению)
Несвоевременная реакция сисадмина
Real Time мониторинг – как узнавать о проблемах?
Можно – так…
Или – так…
Real Time мониторинг – как узнавать о проблемах?
Как при этом не взорвать мозг?
Доступность «Битрикс24» и
облачных сервисов
«1С-Битрикс» - 99.99%
8200+ проверок в трех
регионах в системе
мониторинга
Организация системы мониторинга
Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не
самописные.
Дежурная смена и/или мгновенные уведомления.
Мониторить – всё.
Но – аккуратно. Тысячи уведомлений будут бесполезны.
Автоматизация типовых реакций.
Мониторить систему мониторинга.
В идеальном мире – распределенная система мониторинга.
Мониторинг «железа»
Рейды
S.M.A.R.T. – диск, возможно, скоро «умрет»
Утилиты вендора – внутренние аппаратные тесты
Периодическое тестирование железа в оффлайне
Имеем «запчасти» (блоки питания, вентиляторы …) или знаем
где их быстро найти
Мониторинг сети
Загрузка канала
Потери пакетов
Связность узлов
Мониторинг операционной системы
Место на дисках
Очередь выполнения
Размер и использование swap
Тесты критичного софта
Для критичного софта: считаем число процессов, объем RSS,
%CPU, process system/user time
Тесты БД
Пример для MySQL
Мониторинг нетипичных характеристик
Наличие бэкапов
Срок делегирования доменов
Баланс у провайдера смс-уведомлений
Отсутствие в реестре Роскомнадзора
Срок действия SSL сертификатов
SSL сертификаты
Часто по HTTPS работает не весь сайт, а отдельные разделы
Проэкспайрившийся SSL сертификат можно заметить не сразу
При этом закрыты наиболее критичные разделы (корзина,
авторизация и т.п.)
Теряем позиции в поиске (говорят, Google любит HTTPS)
Делегирование домена
Оборот за 2012 год -
$379 млн.
До суток простоя –
более $1 млн.
Делегирование домена
Мониторинг веб-приложения, скрипта в кроне и т.п.
Лог работы скрипта (>) – обновился за N часов
Лог ошибок работы скрипта (2>) – должен быть пуст
Уведомления – как у нас
Cкрипт, опрашивающий страницу «Problems»
Шлем «дайджест» проблем, а не по одному
сообщению на каждое событие
Несколько уровней критичности событий
Разные списки адресатов на разные события
Повтор (через 15 минут, через 2 часа), чтобы не
«потерять» уведомление
ОК – если все стало хорошо
Автоматизация типовых реакций
Рост / падение LA – автоматическое масштабирование вверх / вниз
Автоматический рестарт «сбойных» сервисов
Автоматическое «удаление» проблемных машин
Автоматическое восстановление репликации
Автоматическое переключение трафика в случае аварии на уровне целого ДЦ
event handler
# LA on the server
define service{
use local-service
host_name ec2-54-227-28-75.compute-1.amazonaws.com
service_description Current Load
check_command check_nrpe_1arg!check_load!
event_handler restart_phpfpms
}
define command{
command_name restart_phpfpms
command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c restart_phpfpm
}
Если нет админа… А также для подстраховки
Внешние системы:
http://host-tracker.com/
Яндекс.Метрика
И т.д.
* * * * * user /opt/manage/bin/http_sms.sh
• Зачастую можно найти бесплатные варианты.
• Вы быстро узнаете об отказах, но не будете знать, где они произошли и
почему.
• Вы подстрахуете себя от сбоя мониторинга.
Аналитика
Видим, что было
Предвидим, что будет
Улавливаем тренды
Планируем мощности железа
Сравниваем настройки софта
• Веб-система перестает быть черным ящиком, видно ее развитие с
течением времени
Аналитика
Аналитика - MySQL
Следите за числом запросов и коннектов в БД, количеством
медленных запросов, прочими характеристиками
Если оставить все «по умолчанию»?
По умолчанию MaxClients в Apache 2.x – 256
Если PHP может занять 64 Мб (на самом деле –
см. memory_limit в php.ini) – весь веб-сервер
может занять 16 Гб RAM
256 потенциальных коннектов к MySQL
Память для одного коннекта: read_buffer_size +
read_rnd_buffer_size + sort_buffer_size +
thread_stack + join_buffer_size
• swap, OOM, деградация производительности всей
системы
Аналитика
Память
Apache MaxClients
MySQL buffers …
Нужно «прикинуть» максимальный
расход памяти в приложениях и
следить за ней.
Дисковая подсистема
Немного про client side. Серверы мониторинга – это не клиенты
У людей сайт отображается иначе
Посетители сайта
Динамика загрузки страниц
Navigation Timing API
Не только скорость client side, но и ошибки
Поиск узких мест и действия
Нужно быстро понять – где и как починить
Смотрим срабатывание тестов – часто единственный источник информации
Смотрим уведомления от системы мониторинга
Смотрим логи. Держим заготовленные скипты-парсеры логов на поиск ошибок.
Смотрим графики
Если получается, запускаем инструменты поиска узких мест
Не включил логи?
Статья «уголовного кодекса» веб-
разработчиков и системных
администраторов
Плохо:
display_errors = On
Хорошо:
error.log
access.log
error.log
Агрегирующие скрипты (PHP, Perl, bash):
PHP Signals: 62
[…]
PHP Fatals: 94
[…]
PHP Warnings: 5
[…]
access.log
Среднее время – менее 1 сек., пики – до 3-5 сек. Все ли здесь хорошо?
access.log
Apache
LogFormat "%t "%r" %>s %b child:%P time-> %D" timing
Nginx
log_format timing … '->$upstream_response_time';
PHP-FPM
access.format = … %{mili}d …
Аналитика – со стороны пользователя
Мало знать «среднюю температуру по больнице» и мониторить
только главную страницу сайта
Гистограммы распределения времени хитов, памяти, кодов
ответа и т.п.
Поиск «узких» мест
Apache /server-status
Включенные логи медленных запросов php-fpm, nginx, apache, MySQL
Поиск «узких» мест – специализированные инструменты
pinba
хhprof
И т.д.
Инструменты поиска узких мест
Если никаких других инструментов нет
Или надо срочно локализовать проблему на «бою»
Можно просто перезапустить Apache / nginx / PHP-FPM
Но… Вы не найдете суть проблемы, и она повторится
Старые добрые утилиты unix
lsof
strace
gdb
grep, awk, sort, uniq и т.д.
Определение процесса
lsof | grep php_sessions
[…]
httpd 29684 bitrix 56u REG 0,19 0 5217392126
/tmp/php_sessions/sess_3m8ulspjvousm6nndmle3ul8s5
httpd 31320 bitrix 57uW REG 0,19 0 5217392033
/tmp/php_sessions/sess_bvgb0oaeq6ilqq8ooneo1j7e61
[…]
top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24632 bitrix 16 0 826m 128m 99m S 99.9 0.4 0:40.13 httpd
4006 bitrix 15 0 817m 86m 63m R 9.9 0.3 0:05.61 httpd
24903 bitrix 16 0 823m 121m 94m R 7.9 0.4 0:42.52 httpd
strace
strace -p 12345
[…]
access("/home/bitrix/www/bitrix/modules/cluster/classes/general/memcache_cache.php", F_OK) = 0
sendto(54, "get 4ac3269f374e0dde2ea7074e4f2a"..., 60, MSG_DONTWAIT, NULL, 0) = 60
poll([{fd=54, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=54, revents=POLLIN}])
recvfrom(54, "VALUE 4ac3269f374e0dde2ea7074e4f"..., 8192, MSG_DONTWAIT, NULL, NULL) = 106
sendto(55, "get 0ae4f4fdcffaa0d250c34fd3d7f6"..., 61, MSG_DONTWAIT, NULL, 0) = 61
poll([{fd=55, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=55, revents=POLLIN}])
recvfrom(55, "VALUE 0ae4f4fdcffaa0d250c34fd3d7"..., 8192, MSG_DONTWAIT, NULL, NULL) = 107
sendto(55, "get 0ae4f4fdcffaa0d250c34fd3d7f6"..., 112, MSG_DONTWAIT, NULL, 0) = 112
poll([{fd=55, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=55, revents=POLLIN}])
recvfrom(55, "VALUE 0ae4f4fdcffaa0d250c34fd3d7"..., 8192, MSG_DONTWAIT, NULL, NULL) = 325
[…]
Process 12345 detached
gdb
gdb –p 12345
(gdb) source /src/php-5.6.22/.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
…
Медленные запросы в базе
Одиночный медленный запрос всегда работает медленно
Его просто найти (slow.log)
Его просто изучать (EXPLAIN)
«Живая» система – много небольших запросов
mysql> SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME;
+----------------+-------+----------------+
| time | count | total |
+----------------+-------+----------------+
| 0.000001 | 0 | 0.000000 |
| 0.000010 | 2011 | 0.007438 |
| 0.000100 | 12706 | 0.513395 |
| 0.001000 | 4624 | 1.636106 |
| 0.010000 | 2994 | 12.395174 |
| 0.100000 | 200 | 6.225339 |
| 1.000000 | 33 | 5.480764 |
| 10.000000 | 1 | 2.374067 |
| 100.000000 | 0 | 0.000000 |
| 1000.000000 | 0 | 0.000000 |
| 10000.000000 | 0 | 0.000000 |
| 100000.000000 | 0 | 0.000000 |
| 1000000.000000 | 0 | 0.000000 |
| TOO LONG | 0 | TOO LONG |
+----------------+-------+----------------+
14 rows in set (0.00 sec)
Аналитика - MySQL
Одиночные медленные запросы отлавливаются просто.
Сложнее мониторить общее состояние системы с большим
количеством относительно быстрых запросов.
Приложение всегда работает в условиях ограниченных ресурсов
Постоянный feedback в две стороны: админам и разработчикам
– в автоматическом и полуавтоматическом режиме
Сайт всегда должен быть доступен
для посетителей
Вы должны оперативно узнавать о
любых проблемах и иметь план их
решения
У вас должны быть отлажены
сценарии поиска «узких» мест
Аналитические данные позволят
прогнозировать, где могут
появиться «узкие» места
Спасибо за внимание!
Вопросы?
Александр Демидов
demidov@1c-bitrix.ru
demidov
Demidov.Alexander

Contenu connexe

Tendances

Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
Andrew Avdeev
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Ontico
 
Тестирование аварий / Андрей Губа (Одноклассники)
Тестирование аварий / Андрей Губа (Одноклассники)Тестирование аварий / Андрей Губа (Одноклассники)
Тестирование аварий / Андрей Губа (Одноклассники)
Ontico
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Ontico
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 

Tendances (20)

Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
 
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
Эволюция процесса деплоя в проекте / Денис Яковлев (2ГИС)
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Тестирование аварий / Андрей Губа (Одноклассники)
Тестирование аварий / Андрей Губа (Одноклассники)Тестирование аварий / Андрей Губа (Одноклассники)
Тестирование аварий / Андрей Губа (Одноклассники)
 
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
Zabbix и правильное обнаружение проблем - Алексей Владышев @ RootConf 2015
 
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)
 
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 

En vedette

10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
Ontico
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
Ontico
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Ontico
 
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
Ontico
 
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Ontico
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Ontico
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
Ontico
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Ontico
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Ontico
 
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Ontico
 

En vedette (20)

10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
10 способов достижения HighLoad'а и BigData на ровном месте / Илья Космодемья...
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...Организация надежного резервного копирования веб-проекта. Практика и подводны...
Организация надежного резервного копирования веб-проекта. Практика и подводны...
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
NoSQL - неспроста ли это ЖЖЖ / Даниил Подольский (inCaller.org)
 
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
 
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
 
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
 
Как устроен поиск / Андрей Аксенов (Sphinx)
Как устроен поиск / Андрей Аксенов (Sphinx)Как устроен поиск / Андрей Аксенов (Sphinx)
Как устроен поиск / Андрей Аксенов (Sphinx)
 
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
Как балансировать на «сетевом» канате под куполом тяжелой нагрузки? / Сергей ...
 
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
Обзор архитектуры и подсистем деплоя и мониторинга. Как инженеры делают систе...
 
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
Какие бывают провайдеры услуг дата-центров и как выбрать оптимальный? / Игорь...
 
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
101 способ приготовления RabbitMQ и немного о pipeline архитектуре / Филонов ...
 
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
Осваиваем Tarantool 1.6 / Евгений Шадрин (Sberbank Digital Ventures)
 
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
Кэширование данных в web приложениях. Использование memcached / Юрий Красноще...
 
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
Бинарные (файловые) хранилища: страшная сказка с мрачным концом / Даниил Подо...
 
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
С чего начать внедрение Hadoop в компании / Алексей Еремихин (Badoo)
 
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
Как Web-акселератор акселерирует ваш сайт / Александр Крижановский (Tempesta ...
 
Управление релизами, как оно есть / Рыжкин Андрей Яковлевич (AGIMA)
Управление релизами, как оно есть / Рыжкин Андрей Яковлевич (AGIMA)Управление релизами, как оно есть / Рыжкин Андрей Яковлевич (AGIMA)
Управление релизами, как оно есть / Рыжкин Андрей Яковлевич (AGIMA)
 

Similaire à Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боевая отладка / Александр Демидов (1С-Битрикс)

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
sportgid
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
Clouds NN
 
Highload2009 Top100 V3
Highload2009 Top100 V3Highload2009 Top100 V3
Highload2009 Top100 V3
HighLoad2009
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
Media Gorod
 
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
Clouds NN
 
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
it-people
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
it-people
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
qqlan
 
безопасность веб проектов сергей рыжиков
безопасность веб проектов   сергей рыжиковбезопасность веб проектов   сергей рыжиков
безопасность веб проектов сергей рыжиков
Media Gorod
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
Media Gorod
 

Similaire à Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боевая отладка / Александр Демидов (1С-Битрикс) (20)

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...Использование встроенных или подключаемых средств браузеров для тестирования ...
Использование встроенных или подключаемых средств браузеров для тестирования ...
 
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tipsКостянтин Чаус — Monitoring of huge Drupal site. Tools and tips
Костянтин Чаус — Monitoring of huge Drupal site. Tools and tips
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Безопасность CMS
Безопасность CMSБезопасность CMS
Безопасность CMS
 
Highload2009 Top100 V3
Highload2009 Top100 V3Highload2009 Top100 V3
Highload2009 Top100 V3
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 
Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169Hl2008 Spy Log Architechture 169
Hl2008 Spy Log Architechture 169
 
Безопасность
БезопасностьБезопасность
Безопасность
 
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие граблиРИФ 2016, Заоблачная безопасность: как обойти чужие грабли
РИФ 2016, Заоблачная безопасность: как обойти чужие грабли
 
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
CloudsNN 2014. Демидов Александр. Заоблачная безопасность: как обойти чужие г...
 
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
DUMP-2012 - Веб-разработка - "Что мы знаем о производительности и безопасност...
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
Highload: проблемы и решения
Highload: проблемы и решенияHighload: проблемы и решения
Highload: проблемы и решения
 
From ERP to SCADA and back
From ERP to SCADA and backFrom ERP to SCADA and back
From ERP to SCADA and back
 
безопасность веб проектов сергей рыжиков
безопасность веб проектов   сергей рыжиковбезопасность веб проектов   сергей рыжиков
безопасность веб проектов сергей рыжиков
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
UFADevCom'13#1 Шерыхалин Олег
UFADevCom'13#1 Шерыхалин ОлегUFADevCom'13#1 Шерыхалин Олег
UFADevCom'13#1 Шерыхалин Олег
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
 

Plus de Ontico

Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Ontico
 

Plus de Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
 
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
Java и Linux — особенности эксплуатации / Алексей Рагозин (Дойче Банк)
 

Мониторинг веб-проектов real-time мониторинг и аналитика, поиск ошибок и боевая отладка / Александр Демидов (1С-Битрикс)

  • 1. Мониторинг веб-проектов: real-time мониторинг и аналитика, поиск ошибок и «боевая» отладка Александр Демидов, «1С-Битрикс»
  • 2.
  • 3.
  • 4. О чем будем говорить Явные и не очень потери на медленном / недоступном сайте. Спасет ли SLA провайдера? Общие принципы внедрения систем real-time мониторинга. Мониторинг нетипичных характеристик (наличие бэкапов, делегирование домена и т.п.). Автоматизация типовых реакций на алерты. Зачем нужна аналитика в мониторинге (пробуем предугадать проблемы до того, как они случатся). Инструменты и общие подходы быстрого поиска "узких" мест. Немного про client side.
  • 5. Что теряет медленный сайт? Прямые потери заказов Финансовые потери во время рекламных компаний – вы платите за «холостые» клики Стоимость контекстной рекламы
  • 6. Значение поиска невозможно преуменьшить 60% трафика интернет-магазина – поиск (конверсия этого трафика около 0.5 %) 40% остального трафика – средняя конверсия 1.1% (исследование Webprofiters) Несложная математика: около 40% заказов – из поиска
  • 7. Медленный сайт опускается в результатах поиска Факторы ранжирования время отклика сайта скорость загрузки страницы возвраты на SERP и переходы на другие сайты количество просмотренных страниц общее время сессии
  • 9. Агрегаторы тоже не любят медленные сайты Яндекс.Маркет ежедневно отключает на полтора часа более 1000 магазинов из-за таймаутов
  • 10. Если ваш сайт выглядит как живой... убедитесь, что он еще и здоровый.
  • 11. Спасет ли SLA провайдера? Ни один SLA не покроет вашу упущенную выгоду (прибыль), только расходы на хостинг. Наиболее часто встречается гарантия 99.9% доступности в SLA. Это – около 9 часов простоя в год. Небольшие слоты (до 5 минут) никто не считает. Ребут сервера, скорее всего, не попадает под SLA. А если это база данных, она может стартовать несколько часов после аварийного завершения.
  • 12. «Хитрости» SLA Web 1 Elastic Load Balancing Web N … CloudWatch + AutoScaling Web 1 Web 2 Web N … CloudWatch + AutoScaling S3 control cache: memcached mysqld mysqld mysqld mysqld mysqld mysqld master-master replication master-master replication master-master replication mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld control cache: memcached control cache: memcached control cache: memcached control cache: memcached control cache: memcached Web 2 $25 / месяц $5000 / месяц
  • 13. Недоступность сайта… Вышел из строя диск Кончилось место на диске Не хватило ресурсов CPU Не хватило памяти Не хватило производительности диска Не хватило канала Вышла из строя оперативная память Вышла из строя материнская плата Сгорел блок питания DDoS Взлом - целевая атака Взлом - нецелевая атака Разделегирование домена Закончился срок действия SSL сертификата Выход из строя маршрутизатора провайдера Авария на канале провайдера Потери пакетов у upstream провайдера Авария с электропитанием Выход из строя вентиляции - перегрев Ошибки настройки сети Ошибки настройки веб-сервера Ошибки настройки базы данных Ошибка разработки Преднамеренное вредительство разработчиком Ошибки на файловой системе Попадание в реестр Роскомнадзора Ошибки внешних систем (например, платежная система в интернет-магазине) Ошибка персонала хостера Ошибка персонала upstream оператора Недоступность и авария DNS Удаленность хостинга от клиентов Ошибки в системном ПО (segfault) Ошибки файловой системы после аварийной перезагрузки Ошибки БД после аварийной перезагрузки Сброс несохраненных настроек после перезагрузки Неоплата хостинга Неоплата лицензий на ПО Несовместимость с клиентским ПО Отсутствие ресурсов для масштабирования (не хватило серверов) Неготовность приложения к масштабированию Отсутствие кэширования Взаимодействие с внешними системами (нагрузка импортами) Нагрузка во время создания бэкапа Ошибки после установки обновлений Ошибочная блокировка браузерами (вирусы) Отсутствие обработки пользовательских данных Авария на уровне датацентра (пожар, наводнение) Отсутствие бэкапа для восстановления «Битый» бэкап (не было учений по восстановлению) Несвоевременная реакция сисадмина
  • 14. Real Time мониторинг – как узнавать о проблемах? Можно – так…
  • 15. Или – так… Real Time мониторинг – как узнавать о проблемах?
  • 16. Как при этом не взорвать мозг? Доступность «Битрикс24» и облачных сервисов «1С-Битрикс» - 99.99% 8200+ проверок в трех регионах в системе мониторинга
  • 17. Организация системы мониторинга Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не самописные. Дежурная смена и/или мгновенные уведомления. Мониторить – всё. Но – аккуратно. Тысячи уведомлений будут бесполезны. Автоматизация типовых реакций. Мониторить систему мониторинга. В идеальном мире – распределенная система мониторинга.
  • 18. Мониторинг «железа» Рейды S.M.A.R.T. – диск, возможно, скоро «умрет» Утилиты вендора – внутренние аппаратные тесты Периодическое тестирование железа в оффлайне Имеем «запчасти» (блоки питания, вентиляторы …) или знаем где их быстро найти
  • 19. Мониторинг сети Загрузка канала Потери пакетов Связность узлов
  • 20. Мониторинг операционной системы Место на дисках Очередь выполнения Размер и использование swap
  • 21. Тесты критичного софта Для критичного софта: считаем число процессов, объем RSS, %CPU, process system/user time
  • 23. Мониторинг нетипичных характеристик Наличие бэкапов Срок делегирования доменов Баланс у провайдера смс-уведомлений Отсутствие в реестре Роскомнадзора Срок действия SSL сертификатов
  • 24. SSL сертификаты Часто по HTTPS работает не весь сайт, а отдельные разделы Проэкспайрившийся SSL сертификат можно заметить не сразу При этом закрыты наиболее критичные разделы (корзина, авторизация и т.п.) Теряем позиции в поиске (говорят, Google любит HTTPS)
  • 25. Делегирование домена Оборот за 2012 год - $379 млн. До суток простоя – более $1 млн.
  • 27. Мониторинг веб-приложения, скрипта в кроне и т.п. Лог работы скрипта (>) – обновился за N часов Лог ошибок работы скрипта (2>) – должен быть пуст
  • 28. Уведомления – как у нас Cкрипт, опрашивающий страницу «Problems» Шлем «дайджест» проблем, а не по одному сообщению на каждое событие Несколько уровней критичности событий Разные списки адресатов на разные события Повтор (через 15 минут, через 2 часа), чтобы не «потерять» уведомление ОК – если все стало хорошо
  • 29. Автоматизация типовых реакций Рост / падение LA – автоматическое масштабирование вверх / вниз Автоматический рестарт «сбойных» сервисов Автоматическое «удаление» проблемных машин Автоматическое восстановление репликации Автоматическое переключение трафика в случае аварии на уровне целого ДЦ
  • 30. event handler # LA on the server define service{ use local-service host_name ec2-54-227-28-75.compute-1.amazonaws.com service_description Current Load check_command check_nrpe_1arg!check_load! event_handler restart_phpfpms } define command{ command_name restart_phpfpms command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c restart_phpfpm }
  • 31. Если нет админа… А также для подстраховки Внешние системы: http://host-tracker.com/ Яндекс.Метрика И т.д. * * * * * user /opt/manage/bin/http_sms.sh • Зачастую можно найти бесплатные варианты. • Вы быстро узнаете об отказах, но не будете знать, где они произошли и почему. • Вы подстрахуете себя от сбоя мониторинга.
  • 32. Аналитика Видим, что было Предвидим, что будет Улавливаем тренды Планируем мощности железа Сравниваем настройки софта • Веб-система перестает быть черным ящиком, видно ее развитие с течением времени
  • 34. Аналитика - MySQL Следите за числом запросов и коннектов в БД, количеством медленных запросов, прочими характеристиками
  • 35. Если оставить все «по умолчанию»? По умолчанию MaxClients в Apache 2.x – 256 Если PHP может занять 64 Мб (на самом деле – см. memory_limit в php.ini) – весь веб-сервер может занять 16 Гб RAM 256 потенциальных коннектов к MySQL Память для одного коннекта: read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size • swap, OOM, деградация производительности всей системы
  • 36. Аналитика Память Apache MaxClients MySQL buffers … Нужно «прикинуть» максимальный расход памяти в приложениях и следить за ней.
  • 38. Немного про client side. Серверы мониторинга – это не клиенты
  • 39. У людей сайт отображается иначе
  • 42.
  • 43. Не только скорость client side, но и ошибки
  • 44. Поиск узких мест и действия Нужно быстро понять – где и как починить Смотрим срабатывание тестов – часто единственный источник информации Смотрим уведомления от системы мониторинга Смотрим логи. Держим заготовленные скипты-парсеры логов на поиск ошибок. Смотрим графики Если получается, запускаем инструменты поиска узких мест
  • 45. Не включил логи? Статья «уголовного кодекса» веб- разработчиков и системных администраторов Плохо: display_errors = On Хорошо: error.log access.log
  • 46. error.log Агрегирующие скрипты (PHP, Perl, bash): PHP Signals: 62 […] PHP Fatals: 94 […] PHP Warnings: 5 […]
  • 47. access.log Среднее время – менее 1 сек., пики – до 3-5 сек. Все ли здесь хорошо?
  • 48. access.log Apache LogFormat "%t "%r" %>s %b child:%P time-> %D" timing Nginx log_format timing … '->$upstream_response_time'; PHP-FPM access.format = … %{mili}d …
  • 49. Аналитика – со стороны пользователя Мало знать «среднюю температуру по больнице» и мониторить только главную страницу сайта Гистограммы распределения времени хитов, памяти, кодов ответа и т.п.
  • 50. Поиск «узких» мест Apache /server-status Включенные логи медленных запросов php-fpm, nginx, apache, MySQL
  • 51. Поиск «узких» мест – специализированные инструменты pinba хhprof И т.д.
  • 52. Инструменты поиска узких мест Если никаких других инструментов нет Или надо срочно локализовать проблему на «бою» Можно просто перезапустить Apache / nginx / PHP-FPM Но… Вы не найдете суть проблемы, и она повторится Старые добрые утилиты unix lsof strace gdb grep, awk, sort, uniq и т.д.
  • 53. Определение процесса lsof | grep php_sessions […] httpd 29684 bitrix 56u REG 0,19 0 5217392126 /tmp/php_sessions/sess_3m8ulspjvousm6nndmle3ul8s5 httpd 31320 bitrix 57uW REG 0,19 0 5217392033 /tmp/php_sessions/sess_bvgb0oaeq6ilqq8ooneo1j7e61 […] top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 24632 bitrix 16 0 826m 128m 99m S 99.9 0.4 0:40.13 httpd 4006 bitrix 15 0 817m 86m 63m R 9.9 0.3 0:05.61 httpd 24903 bitrix 16 0 823m 121m 94m R 7.9 0.4 0:42.52 httpd
  • 54. strace strace -p 12345 […] access("/home/bitrix/www/bitrix/modules/cluster/classes/general/memcache_cache.php", F_OK) = 0 sendto(54, "get 4ac3269f374e0dde2ea7074e4f2a"..., 60, MSG_DONTWAIT, NULL, 0) = 60 poll([{fd=54, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=54, revents=POLLIN}]) recvfrom(54, "VALUE 4ac3269f374e0dde2ea7074e4f"..., 8192, MSG_DONTWAIT, NULL, NULL) = 106 sendto(55, "get 0ae4f4fdcffaa0d250c34fd3d7f6"..., 61, MSG_DONTWAIT, NULL, 0) = 61 poll([{fd=55, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=55, revents=POLLIN}]) recvfrom(55, "VALUE 0ae4f4fdcffaa0d250c34fd3d7"..., 8192, MSG_DONTWAIT, NULL, NULL) = 107 sendto(55, "get 0ae4f4fdcffaa0d250c34fd3d7f6"..., 112, MSG_DONTWAIT, NULL, 0) = 112 poll([{fd=55, events=POLLIN|POLLERR|POLLHUP}], 1, 1000) = 1 ([{fd=55, revents=POLLIN}]) recvfrom(55, "VALUE 0ae4f4fdcffaa0d250c34fd3d7"..., 8192, MSG_DONTWAIT, NULL, NULL) = 325 […] Process 12345 detached
  • 55. gdb gdb –p 12345 (gdb) source /src/php-5.6.22/.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 …
  • 56. Медленные запросы в базе Одиночный медленный запрос всегда работает медленно Его просто найти (slow.log) Его просто изучать (EXPLAIN)
  • 57. «Живая» система – много небольших запросов mysql> SELECT * FROM INFORMATION_SCHEMA.QUERY_RESPONSE_TIME; +----------------+-------+----------------+ | time | count | total | +----------------+-------+----------------+ | 0.000001 | 0 | 0.000000 | | 0.000010 | 2011 | 0.007438 | | 0.000100 | 12706 | 0.513395 | | 0.001000 | 4624 | 1.636106 | | 0.010000 | 2994 | 12.395174 | | 0.100000 | 200 | 6.225339 | | 1.000000 | 33 | 5.480764 | | 10.000000 | 1 | 2.374067 | | 100.000000 | 0 | 0.000000 | | 1000.000000 | 0 | 0.000000 | | 10000.000000 | 0 | 0.000000 | | 100000.000000 | 0 | 0.000000 | | 1000000.000000 | 0 | 0.000000 | | TOO LONG | 0 | TOO LONG | +----------------+-------+----------------+ 14 rows in set (0.00 sec)
  • 58. Аналитика - MySQL Одиночные медленные запросы отлавливаются просто. Сложнее мониторить общее состояние системы с большим количеством относительно быстрых запросов.
  • 59. Приложение всегда работает в условиях ограниченных ресурсов Постоянный feedback в две стороны: админам и разработчикам – в автоматическом и полуавтоматическом режиме
  • 60. Сайт всегда должен быть доступен для посетителей Вы должны оперативно узнавать о любых проблемах и иметь план их решения У вас должны быть отлажены сценарии поиска «узких» мест Аналитические данные позволят прогнозировать, где могут появиться «узкие» места
  • 61. Спасибо за внимание! Вопросы? Александр Демидов demidov@1c-bitrix.ru demidov Demidov.Alexander