Содержание
-
Мониторинг проектов: сравнительный анализ существующих решений Антон Баранов Системный администратор Linux Партнерская конференция «1С-Битрикс»
-
О себе Антон Баранов Системный администратор Linux. Более 6 лет опыта работы с Linux-системами и web-проектами различной сложности. Последние полтора года тружусь в компании ITSummaнад обеспечением стабильной работы highload-проектов для посетителей со всего мира. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
О нас |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ На поддержке:
-
Разделы Что именно необходимо мониторить в высоконагруженном (и не только) проекте? Обзор существующих open-sourceсистем мониторинга(cacti,zabbix,graphite). Какие существуют SAAS-решения для мониторинга? |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Что нужно мониторить? |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Что нужно мониторить? Потребление ресурсов Работу серверного ПО Бизнес-логика приложения |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Ресурсы Делятся на 2 группы: Критические Важные |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Критические ресурсы Проблемы с ними гарантированно приведут к неработоспособности сервисов. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Критические ресурсы CPU (idle,user,stalled/LA) Memory (free,used) Disk IO % Traffic In/Out Disk usage space (free,used) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Важные ресурсы Наблюдение за ними позволяют предсказать возникновение проблем |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Важные ресурсы SWAP RAID status (SW/HW) S.M.A.R.T. status IOPS (read/write) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Важные ресурсы Disk avio Sockets CPU temperature CPU Fan Speed |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Серверное ПО Самое главное: вы должны четко представлять себе, для чего необходимо мониторить тот или иной параметр. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Серверное ПО Nginx (RPS, reading/writing/keepalivereqs) PHP-FPM (RPS, кол-воchildren’ов, кол-во «max children reached» Sphinx (кол-во запросов, наличие FatalError) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Серверное ПО MySQL (кол-возапросовselect,update,insert/rows processed/innodb buffer pool usage/replica status) Exim (размер почтовой очереди) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Бизнес-логика Все показатели работы проекта, проблемы с которыми являются критичными для бизнеса |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Бизнес-логика Количество новых регистраций Корректность работы процесса регистрации ( от заполнения формы до активации учетной записи) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Бизнес-логика Количество скачиваний приложения Количество показов баннерной рекламы и кликов по ней |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Бизнес-логика Доступность сервиса компании-партнера, чей контент используется на сайте Статистика по запросам с тем или иным реферером |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Да чему там ломаться? |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Мониторинг мониторинга! Работа подсистемы уведомлений Возможность отправки почты/смс/уведомлений в jabber/slack/hipchat и т.д. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Обзор существующих open-source систем мониторинга(cacti,zabbix,graphite) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Open-source Server-side: PHP+[MySQL/PostgreSQL/SQLite/Oracle] Client-side: zabbix-agent/SNMP/external checks |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Создаем хост в Zabbix Устанавливаем на сервер zabbix-агент |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Добавляем шаблоны Импортируем недостающие Настраиваем zabbix-agent Настраиваем web-сценарий для проверки URL |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Мониторинг nginx: Импорт шаблона Создание bash-скрипта для парсингаnginx-статуса Прописывание инклуда в конфигzabbix-agent |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Уведомления Шаблон => Триггер => Действие |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Выводы: Конфигурирование Zabbix - достаточно сложно Zabbix-сервер масштабируется так же, как и любое другое веб-приложение |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Zabbix Автоматизация мониторинга новых узлов возможна без проблем любыми средствами управления конфигурацией |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Open-source Server-side: PHP+rrdtool+MySQL Client-side: SNMP |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Установить на сервер snmpd Сконфигурировать rocommunity в snmpd Добавить хост в Cacti |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti По дефолту мониторинг только основных ресурсов - CPU/Memory/Networketc. Все остальное - плагины |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Nginx - Percona plugin MySQL - Percona Plugin URL - mURLin plugin Alerts - thold plugin Mail - settings plugin |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Уведомления только на email через плагин settings (возможно есть и другие плагины) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Выводы: Мониторинг либо через snmp (включая custom OID), либо через плагины Кол-во способов уведомления ограничено |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Cacti Выводы: Автоматизация возможна только через cli скрипты Масштабируется как обычное web-приложение |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Server-side: Carbon Whisper Graphite webapp |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite carbon - a Twisted (an event-driven networking engine written in Python) daemon that listens for time-series data |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite whisper - a simple database library for storing time-series data (similar in design to RRD) graphite webapp- Djangowebapp that renders graphs on-demand using Cairo |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Client-side: любое ПО, которое сумеет отсылать данные в нужном формате в Graphite (Bucky, collectd, Collectl, Diamond, Ganglia,Logster, Sensu, statsdetc.) |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Установка collectd. Включение нужных плагинов Конфигурирование плагинов Настройка отправки данных в Graphite |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Host "127.0.0.1" User "root" Password "sohW2ax0Eenox9t" Database "test1" MasterStats false |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Мониторинг возможен с помощью чего угодно, что может посылать данные на carbon в нужном формате. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Уведомления через graphite-beacon/graphite-pager и т.д. Graphite-beacon: 1) добавить конфигурация нужного типа уведомлений (SMTP, Hipchat, Slack, Pagerduty, HTTP handlers) 2) Добавить условия генерации уведомлений |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite "alerts": [ { "name": "Memory", "query": "aliasByNode(collectd.*.memory.memory-free, 1)", "interval": "1minute", "format": "bytes", "rules": ["warning:
-
Graphite |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Выводы: Конфигурируется только ПО отсылки данных в graphite. Сложность зависит от ПО. Collectd - прост. Гибкие настройки уведомлений. Автоматизация возможна и не составит труда. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite Масштабируется горизонтально Движок хранения данных whisper имеет недостатки, проявляющиеся на больших количествах метрик, рекомендуют менять его, если планируется очень много метрик |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Graphite graphite-relay (решение, проксирующее метрики на несколько процессов carbon-cache для распараллеливания нагрузки) - весьма требовательно к CPU, что порой требует отдельного балансера для нескольких relay. |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
SAAS-мониторинг:ServerDensity, DataDog HQ |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity https://www.serverdensity.io Server-side: black-box Client-side: python-daemon |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity Добавляемдевайсв SD Устанавливаемклиентанасервертремякомандами: curl -LO https://www.serverdensity.com/downloads/agent-install.sh chmod +x agent-install.sh ./agent-install.sh -a https://bitrixconf.serverdensity.io -k 454981106adfae9b73cb42991ee05a6c |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity Nginx: добавить url к nginx-статусу в /etc/sd-agent/config.cfg MySQL: добавить данные доступа в config.cfg Перезапустить sd-agent Добавить метрики в свойствах девайса в панели SD |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity URL для мониторинга добавляется отдельно, в Services Проверка идет с точек со всего мира (можно выбрать) Алерты создаются автоматически |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
ServerDensity Автоматизация без проблем Наличие API Уведомления через почту/Slack/HipChat/SMS/PagerDuty |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ http://datadoghq.com Server-side: black-box Client-side: python daemon |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ Nginx: Включитьинтеграцию Сделатькопипастув /etc/dd-agent/conf.d/nginx.yaml : init_config: instances: - nginx_status_url: http://194.177.22.245/nginx-status tags: - instance:vm96153.local MySQL добавляетсяаналогично, черезинтеграцию Рестартоватьdd-agent |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ Мониторинг сайта добавляется как http-проверка через /etc/dd-agent/conf.d/http_check.yaml Уведомления настраиваются через панель, в разделе «Monitors» |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
DataDog HQ Автоматизация без проблем Наличие API Уведомления через почту/PagerDuty + ручная настройка чего угодно через webhooks |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Мониторинг Так что же выбрать? |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Мониторинг Это зависит от многих факторов. Основные: Количество узлов, которые нужно мониторить Задачи, которые планируется решать |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Спасибо за внимание! Вопросы? |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
-
Контакты АнтонБаранов https://anton-baranov.me abaranov@itsumma.ru https://www.facebook.com/anton.s.baranov |ПАРТНЕРСКАЯ КОНФЕРЕНЦИЯ
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.