SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Держим руку на
пульсе проекта
МОНИТОРИНГ PHP-ПРИЛОЖЕНИЙ
MINSK PHP USER GROUP MEETUP #7
Дисклеймер
1. Мало текста
2. Еще меньше картинок.
o Авторов не нашел
o Копирайтов не проставил
o Стыдно
3. Шутки. Много, тупых и не к месту
4. 43 слайда
2
Содержание
1. Пашму? Зашем, нашальника?
2. Меряем
3. Сообщаем
4. Агрегируем логи
3
1. Пашму?
ЗАШЕМ, НАШАЛЬНИКА?
4
Вопрос. Важный. Честно.
Кто-нибудь уже меряет,
нотифицирует?
5
Еще один важный вопрос
А нотифицирует?
А агрегирует?
А спим спокойно?
6
Зачем это вообще нужно?
Чтобы спать спокойно
Чтобы не говорить «с нашей
стороны ракеты вылетели»
Чтобы никому не ломать пальцы
И самому не попадать в
травматологию
7
А серьезно?
Узнавать о проблемах раньше,
чем клиенты
Статистика
Автоматизация
(масштабируемость, высокая
доступность)
8
Меряем
ЭТО НЕ ТО, ЧТО ВЫ ПОДУМАЛИ. ЭТО ПРО
МЕТРИКИ
9
Что мерять. Big picture
1. Сервер (клауд? сюрприз!)
2. Сервисы (компоненты)
3. Приложение (бэкэнд)
4. Приложение (фронтэнд)
 кто это делает? 
10
Меряем сервер
1. CPU (LA, user/system/idle…)
2. Memory (free/used, swap)
3. IO (tps, await)
4. Disk (read/write speed, free/used
space, # of inodes)
5. Network (outgoing/ingoing traffic)
11
Меряем сервисы. Выбор
редакции в номинации “LAMP”
1. “L”: пропустим
2. “A”: nginx
(http_stub_status_module)
3. “M”: Visual FoxPro MySQL
4. “P”: php-fpm. без шуток.
12
Приложение. Ну наконец-то!
1. Время обработки
запроса/консоли
2. Потребляемая память
3. Страничка isAlive
4. Кастомные
метрики/бенчмарки
13
Весь доклад – сплошная
вода!
14
Тулзы. Чем?
Pinba xhprof
New Relic
15
Тулзы. Чем еще?
1. Зависит от того, «куда»
2. zabbix_sender
3. другие проприетарные тулзы и
API
16
Тулзы. Куда?
Zabbix Pinboard
New Relic
17
Zabbix
18
Pinboard
19
Тулзы. Куда еще?
1. Munin
2. Cacti
3. AWS CloudWatch
4. Nagios/Icinga
5. Heartbeat page
(https://status.github.com/)
20
Сообщаем
21
Мерять и хранить - хорошо
Но лучше – еще и читать
Даже когда девелоперы спять
Особенно когда девелоперы спят
22
Что делать?
1. Сказать человекам
◦ «Шэф, усё прапала!»
◦ «Понять и простить»
2. Сказать роботам
◦ Ни капли сожаления
◦ И зубы целы
23
Куда сообщать, человеки?
1. Скорая помощь, девопсы
2. jobs.tut.by – «ищу работу»
3. Emails
4. SMS
5. Mobile apps notifications
24
Какой сокет слушают
роботы?
1. AWS AutoScale
2. HAProxy
3. Выключаем ноду из кластера
4. Перебалансируем нагрузку
5. Graceful degradation
25
Агрегируем логи
Источники
1. Сервер
2. Сервисы
3. Приложение
27
Сервер = Syslog
This page intentionally left blank
28
Все остальное?
1. Syslog
29
Все остальное?
1. Syslog
2. Log files
◦ logrotate!
3. Database
◦ MySQL: Archive
◦ MongoDB: Capped Collections
4. Спецпротоколы (GELF)
30
Все остальное?
Не делаем рекурсий: не храним
логи базы данных в базе данных
31
Сервисы
1. Web server (error/access)
2. MySQL (error/slow query)
3. PHP (error/SAPI/stderr)
32
Приложение
Monolog
1. syslog/GELF/<ваше_апи>
2. Formatter (многострочные
exceptions)
3. Processor (доп. данные)
33
В ложке syslog-меда…
1. Многие не умеют «всислог»
2. Некоторые хотят денег
3. А еще кое-кто делает это плохо
34
PHP + Syslog = БОЛЬ!!1
35
https://github.com/php/php-src/blob/master/main/main.c#L665
https://wiki.php.net/rfc/allow_multiple_simultaneous_syslog_connections
Традиционные вопросы
1. Чем?
2. Куда?
36
Чем?
1. Rsyslog
2. syslog-ng
◦ Multiline (MySQL slow query log)
◦ Костыли для PHP (tip: роутим
на destination, в котором
переставляем priority если
program PHP)
37
Куда?
1. Graylog2
2. Logstash + ElasticSearch +
Kebana
38
Graylog2
1. Syslog (TCP(!)/UDP; old proto )
2. GELF
3. ElasticSearch (backup!)
4. MongoDB (backup!)
5. Extractors
39
Разбавим текст картинкой
40
Ну и скриншот…
41
Ссылки
http://pinba.org/
http://intaro.github.io/pinboard/
http://www.zabbix.com/
https://packagist.org/packages/monolog/monolog
http://www.balabit.com/network-security/syslog-ng
http://graylog2.org/
42
Как-бы все…
Спасибо за терпение!
Вопросы?
Skype: max.romanovsky
E-mail: max.romanovsky@gmail.com
maksim_ramanouski@epam.com
http://maxromanovsky.com/
43

Weitere ähnliche Inhalte

Andere mochten auch

Increase your performance and code quality
Increase your performance and code qualityIncrease your performance and code quality
Increase your performance and code qualityDusko Vesin
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Max Romanovsky
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPOleg Poludnenko
 
Effective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 DevelopersEffective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 DevelopersMarcin Chwedziak
 
Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Leonardo Proietti
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 

Andere mochten auch (6)

Increase your performance and code quality
Increase your performance and code qualityIncrease your performance and code quality
Increase your performance and code quality
 
Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...Symfony under control. Continuous Integration and Automated Deployments in Sy...
Symfony under control. Continuous Integration and Automated Deployments in Sy...
 
Алексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHPАлексей Иванкин: Highload + PHP
Алексей Иванкин: Highload + PHP
 
Effective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 DevelopersEffective Doctrine2: Performance Tips for Symfony2 Developers
Effective Doctrine2: Performance Tips for Symfony2 Developers
 
Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 

Ähnlich wie Держим руку на пульсе проекта. Мониторинг PHP-приложений

Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Ontico
 
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...IT-Доминанта
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Mail.ru Group
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.ScrumTrek
 
Так говорят программисты
Так говорят программистыТак говорят программисты
Так говорят программистыprigarov
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидахОмские ИТ-субботники
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7Alexander Levantovsky
 
Микросервисы: первая кровь
Микросервисы: первая кровьМикросервисы: первая кровь
Микросервисы: первая кровьМаксим Сячин
 
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp VaultКак перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp VaultOleg Mykolaichenko
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубыAleksandr Tarasov
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java DeveloperOlexandra Dmytrenko
 
Exactpro Training: Defects and Feelings
Exactpro Training: Defects and FeelingsExactpro Training: Defects and Feelings
Exactpro Training: Defects and FeelingsIosif Itkin
 
Джентльменский набор сисадмина / Антон Турецкий (Badoo)
Джентльменский набор сисадмина / Антон Турецкий (Badoo)Джентльменский набор сисадмина / Антон Турецкий (Badoo)
Джентльменский набор сисадмина / Антон Турецкий (Badoo)Ontico
 
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...Как мы админа увольняли, или тонкости организации корпоративной безопасности ...
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...Ontico
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers DownÞorgeir Ingvarsson
 
Haker0515-myjurnal.ru
Haker0515-myjurnal.ruHaker0515-myjurnal.ru
Haker0515-myjurnal.ruVasya Pupkin
 

Ähnlich wie Держим руку на пульсе проекта. Мониторинг PHP-приложений (20)

Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
Sphinx 3.0, поиск 15 лет спустя / Андрей Аксенов (Sphinx)
 
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
Работа с ошибками. Как ловить исключения и что потом с ними делать (Григорий ...
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
 
Так говорят программисты
Так говорят программистыТак говорят программисты
Так говорят программисты
 
Wild microservices and imaginary DevOps
Wild microservices and imaginary DevOpsWild microservices and imaginary DevOps
Wild microservices and imaginary DevOps
 
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
2013-03-02 02 Дмитрий Пашкевич. Код на стероидах
 
MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7MagicPlot @ UXSPb @ IT Global Meetup #7
MagicPlot @ UXSPb @ IT Global Meetup #7
 
Микросервисы: первая кровь
Микросервисы: первая кровьМикросервисы: первая кровь
Микросервисы: первая кровь
 
Белоус Екатерина
Белоус ЕкатеринаБелоус Екатерина
Белоус Екатерина
 
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp VaultКак перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
 
микроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубымикроСЕРВИСЫ: огонь, вода и медные трубы
микроСЕРВИСЫ: огонь, вода и медные трубы
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
Exactpro Training: Defects and Feelings
Exactpro Training: Defects and FeelingsExactpro Training: Defects and Feelings
Exactpro Training: Defects and Feelings
 
Джентльменский набор сисадмина / Антон Турецкий (Badoo)
Джентльменский набор сисадмина / Антон Турецкий (Badoo)Джентльменский набор сисадмина / Антон Турецкий (Badoo)
Джентльменский набор сисадмина / Антон Турецкий (Badoo)
 
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...Как мы админа увольняли, или тонкости организации корпоративной безопасности ...
Как мы админа увольняли, или тонкости организации корпоративной безопасности ...
 
Преемственность продуктов
Преемственность продуктовПреемственность продуктов
Преемственность продуктов
 
How to Put Automation Engineers Down
How to Put Automation Engineers DownHow to Put Automation Engineers Down
How to Put Automation Engineers Down
 
Haker0515-myjurnal.ru
Haker0515-myjurnal.ruHaker0515-myjurnal.ru
Haker0515-myjurnal.ru
 

Держим руку на пульсе проекта. Мониторинг PHP-приложений