Держим руку на
пульсе проекта
МОНИТОРИНГ PHP-ПРИЛОЖЕНИЙ
MINSK PHP USER GROUP MEETUP #7
Дисклеймер
1. Мало текста
2. Еще меньше картинок.
o Авторов не нашел
o Копирайтов не проставил
o Стыдно
3. Шутки. Много, т...
Содержание
1. Пашму? Зашем, нашальника?
2. Меряем
3. Сообщаем
4. Агрегируем логи
3
1. Пашму?
ЗАШЕМ, НАШАЛЬНИКА?
4
Вопрос. Важный. Честно.
Кто-нибудь уже меряет,
нотифицирует?
5
Еще один важный вопрос
А нотифицирует?
А агрегирует?
А спим спокойно?
6
Зачем это вообще нужно?
Чтобы спать спокойно
Чтобы не говорить «с нашей
стороны ракеты вылетели»
Чтобы никому не ломать па...
А серьезно?
Узнавать о проблемах раньше,
чем клиенты
Статистика
Автоматизация
(масштабируемость, высокая
доступность)
8
Меряем
ЭТО НЕ ТО, ЧТО ВЫ ПОДУМАЛИ. ЭТО ПРО
МЕТРИКИ
9
Что мерять. Big picture
1. Сервер (клауд? сюрприз!)
2. Сервисы (компоненты)
3. Приложение (бэкэнд)
4. Приложение (фронтэнд...
Меряем сервер
1. CPU (LA, user/system/idle…)
2. Memory (free/used, swap)
3. IO (tps, await)
4. Disk (read/write speed, fre...
Меряем сервисы. Выбор
редакции в номинации “LAMP”
1. “L”: пропустим
2. “A”: nginx
(http_stub_status_module)
3. “M”: Visual...
Приложение. Ну наконец-то!
1. Время обработки
запроса/консоли
2. Потребляемая память
3. Страничка isAlive
4. Кастомные
мет...
Весь доклад – сплошная
вода!
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. Сказать роботам
◦ Ни капли сожаления
◦ И з...
Куда сообщать, человеки?
1. Скорая помощь, девопсы
2. jobs.tut.by – «ищу работу»
3. Emails
4. SMS
5. Mobile apps notificat...
Какой сокет слушают
роботы?
1. AWS AutoScale
2. HAProxy
3. Выключаем ноду из кластера
4. Перебалансируем нагрузку
5. Grace...
Агрегируем логи
Источники
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. Спецпрото...
Все остальное?
Не делаем рекурсий: не храним
логи базы данных в базе данных
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_multi...
Традиционные вопросы
1. Чем?
2. Куда?
36
Чем?
1. Rsyslog
2. syslog-ng
◦ Multiline (MySQL slow query log)
◦ Костыли для PHP (tip: роутим
на destination, в котором
п...
Куда?
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/m...
Как-бы все…
Спасибо за терпение!
Вопросы?
Skype: max.romanovsky
E-mail: max.romanovsky@gmail.com
maksim_ramanouski@epam.co...
Upcoming SlideShare
Loading in …5
×

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

1,085 views
886 views

Published on

Minsk PHP user group meetup #7

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

No Downloads
Views
Total views
1,085
On SlideShare
0
From Embeds
0
Number of Embeds
170
Actions
Shares
0
Downloads
9
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. Держим руку на пульсе проекта МОНИТОРИНГ PHP-ПРИЛОЖЕНИЙ MINSK PHP USER GROUP MEETUP #7
  2. 2. Дисклеймер 1. Мало текста 2. Еще меньше картинок. o Авторов не нашел o Копирайтов не проставил o Стыдно 3. Шутки. Много, тупых и не к месту 4. 43 слайда 2
  3. 3. Содержание 1. Пашму? Зашем, нашальника? 2. Меряем 3. Сообщаем 4. Агрегируем логи 3
  4. 4. 1. Пашму? ЗАШЕМ, НАШАЛЬНИКА? 4
  5. 5. Вопрос. Важный. Честно. Кто-нибудь уже меряет, нотифицирует? 5
  6. 6. Еще один важный вопрос А нотифицирует? А агрегирует? А спим спокойно? 6
  7. 7. Зачем это вообще нужно? Чтобы спать спокойно Чтобы не говорить «с нашей стороны ракеты вылетели» Чтобы никому не ломать пальцы И самому не попадать в травматологию 7
  8. 8. А серьезно? Узнавать о проблемах раньше, чем клиенты Статистика Автоматизация (масштабируемость, высокая доступность) 8
  9. 9. Меряем ЭТО НЕ ТО, ЧТО ВЫ ПОДУМАЛИ. ЭТО ПРО МЕТРИКИ 9
  10. 10. Что мерять. Big picture 1. Сервер (клауд? сюрприз!) 2. Сервисы (компоненты) 3. Приложение (бэкэнд) 4. Приложение (фронтэнд)  кто это делает?  10
  11. 11. Меряем сервер 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
  12. 12. Меряем сервисы. Выбор редакции в номинации “LAMP” 1. “L”: пропустим 2. “A”: nginx (http_stub_status_module) 3. “M”: Visual FoxPro MySQL 4. “P”: php-fpm. без шуток. 12
  13. 13. Приложение. Ну наконец-то! 1. Время обработки запроса/консоли 2. Потребляемая память 3. Страничка isAlive 4. Кастомные метрики/бенчмарки 13
  14. 14. Весь доклад – сплошная вода! 14
  15. 15. Тулзы. Чем? Pinba xhprof New Relic 15
  16. 16. Тулзы. Чем еще? 1. Зависит от того, «куда» 2. zabbix_sender 3. другие проприетарные тулзы и API 16
  17. 17. Тулзы. Куда? Zabbix Pinboard New Relic 17
  18. 18. Zabbix 18
  19. 19. Pinboard 19
  20. 20. Тулзы. Куда еще? 1. Munin 2. Cacti 3. AWS CloudWatch 4. Nagios/Icinga 5. Heartbeat page (https://status.github.com/) 20
  21. 21. Сообщаем 21
  22. 22. Мерять и хранить - хорошо Но лучше – еще и читать Даже когда девелоперы спять Особенно когда девелоперы спят 22
  23. 23. Что делать? 1. Сказать человекам ◦ «Шэф, усё прапала!» ◦ «Понять и простить» 2. Сказать роботам ◦ Ни капли сожаления ◦ И зубы целы 23
  24. 24. Куда сообщать, человеки? 1. Скорая помощь, девопсы 2. jobs.tut.by – «ищу работу» 3. Emails 4. SMS 5. Mobile apps notifications 24
  25. 25. Какой сокет слушают роботы? 1. AWS AutoScale 2. HAProxy 3. Выключаем ноду из кластера 4. Перебалансируем нагрузку 5. Graceful degradation 25
  26. 26. Агрегируем логи
  27. 27. Источники 1. Сервер 2. Сервисы 3. Приложение 27
  28. 28. Сервер = Syslog This page intentionally left blank 28
  29. 29. Все остальное? 1. Syslog 29
  30. 30. Все остальное? 1. Syslog 2. Log files ◦ logrotate! 3. Database ◦ MySQL: Archive ◦ MongoDB: Capped Collections 4. Спецпротоколы (GELF) 30
  31. 31. Все остальное? Не делаем рекурсий: не храним логи базы данных в базе данных 31
  32. 32. Сервисы 1. Web server (error/access) 2. MySQL (error/slow query) 3. PHP (error/SAPI/stderr) 32
  33. 33. Приложение Monolog 1. syslog/GELF/<ваше_апи> 2. Formatter (многострочные exceptions) 3. Processor (доп. данные) 33
  34. 34. В ложке syslog-меда… 1. Многие не умеют «всислог» 2. Некоторые хотят денег 3. А еще кое-кто делает это плохо 34
  35. 35. 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
  36. 36. Традиционные вопросы 1. Чем? 2. Куда? 36
  37. 37. Чем? 1. Rsyslog 2. syslog-ng ◦ Multiline (MySQL slow query log) ◦ Костыли для PHP (tip: роутим на destination, в котором переставляем priority если program PHP) 37
  38. 38. Куда? 1. Graylog2 2. Logstash + ElasticSearch + Kebana 38
  39. 39. Graylog2 1. Syslog (TCP(!)/UDP; old proto ) 2. GELF 3. ElasticSearch (backup!) 4. MongoDB (backup!) 5. Extractors 39
  40. 40. Разбавим текст картинкой 40
  41. 41. Ну и скриншот… 41
  42. 42. Ссылки 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
  43. 43. Как-бы все… Спасибо за терпение! Вопросы? Skype: max.romanovsky E-mail: max.romanovsky@gmail.com maksim_ramanouski@epam.com http://maxromanovsky.com/ 43

×