SlideShare a Scribd company logo
Переезжаем с Zabbix
на Prometheus
Озеров Василий
•2004
•DevOps (tapcore.com)
•Founder
• fevlake.com
• checkops.com
Немного о себе
Что случилось?
• Быстро росли
• Пропускали проблемы
• Не могли анализировать
• Используем Zabbix Agent
• Поддержка windows / linux
• Встроенные шаблоны
Zabbix. Системные метрики.
• Status Page
• Скрипт парсинга
• Zabbix Agent
• Template
Zabbix. Nginx.
Zabbix. Docker. LLD.
• Template
• Скрипт Discovery
• Docker API
Zabbix. Docker. Забираем метрики.
• Скрипт метрик
• Docker API
Zabbix. Docker. Zabbix Agent XXL.
• Zabbix Agent
• Template
• Profit!
Zabbix. Docker. Graphs.
Zabbix. Docker. Workaround.
• Grafana Datasource
• Grafana template
Zabbix. Финал.
• Много ручных действий
• Предопределенные графики
• Тяжело анализировать
• Быстродействие
• Подключение приложений
• Carbon
• Whisper
• Web
Graphite.
Graphite. Системные метрики и сервисы
• Иерархичная структура
• Statsd
• Много компонентов
• Оповещения
Graphite. Неудобства.
• Долговременное хранилище
• Функционал
• Поддержка
Graphite. Преимущества.
• Event based
• Быстрый (200k eps)
• Dashboard
• Много outputs
Riemann.
• Простая конфигурация
• Tags
• SQL-Like Запросы
• Быстрая
Riemann. InfluxDB.
(def influxBatchSender
(batch 100 1/10
(async-queue! :agg {:queue-size 1000
:core-pool-size 1
:max-pool-size 4
:keep-alive-time 60000
}
(influxdb influxdb-creds))))
• Clojure конфигурация
• OOM
• Кластерный InfluxDB
• InfluxDB 0.8/0.9
Riemann. InfluxDB. Проблемы.
[18228436.798056] Out of memory: Kill process 7657 (influxdb)
score 670 or sacrifice child
[18228436.838105] Killed process 7657 (influxdb)
total-vm:35068428kB, anon-rss:33083764kB, file-rss:880kB
(streams
(moving-time-window 600
(smap folds/mean
(where (> metric 1000)
(email "freezhan@mycompany.com")))))
Prometheus. Архитектура.
Prometheus. Разворачиваем. Установка.
- apt_repository: repo=””
- apt_key: url=“” state=present
- apt: name=prometheus state=latest
- apt: name=alertmanager state=latest
- template: src=prometheus.yml.j2
- copy: src=alert.rules
- template: src=alertmanager.yml.j2
• Один бинарник
• Одна конфигурация
• Ansible/Chef/Puppet/Salt
Prometheus. Разворачиваем. Конфигурация.
- job_name: "nginx”
static_configs:
- targets:
- "web.domain.com:9913"
labels:
env: "prod"
group: "web"
• Services
Prometheus. Разворачиваем. Конфигурация.
ALERT WorkerLoadAvg5
IF (node_load5{group="web"}) > 4
FOR 3m
LABELS { severity = "critical" }
ANNOTATIONS {
summary = "High Load Average",
description = "{{ $labels.instance }} LA > 4" }
• Services
• Alerts
Prometheus. Разворачиваем. Конфигурация.
route:
receiver: 'default-receiver’
routes:
- receiver: 'Critical Events’
match:
severity: critical
receivers:
- name: 'default-receiver’
- name: 'Critical Events’
pagerduty_configs:
- service_key: ”88532kgk5463kn5j45HBkf”
description: '{{.CommonAnnotations.description}}'
• Services
• Alerts
• Notifications
Prometheus. Системные метрики.
• VTS Exporter
• Grafana
Prometheus. Nginx.
Prometheus. Docker. Cadvisor.
• > 100 dashboards
• > 100 exporters
• Jmx_exporter
Prometheus. Другие сервисы.
• Go
• Java
• Python
• Ruby
• Bash
Prometheus. Приложения.
1. cpuTemp = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "cpu_temperature_celsius",
Help: "Current temperature of the CPU.”
})
2. prometheus.MustRegister(cpuTemp)
3. cpuTemp.Set(65.3)
4. http.Handle("/metrics", promhttp.Handler())
log.Fatal(http.ListenAndServe(":8080", nil))
• Top5 docker containers by cpu
• topk(3, sum(rate(container_cpu_system_seconds_total[5m])) by (name))
• RPS for site across all nginx nodes
• sum(irate(nginx_server_requests{host="*"}[5m]))
• Predict used space in some time
• predict_linear(node_filesystem_free{}[1h], 3600)
Prometheus. PromQL.
Prometheus. HA & Scaling.
• Быстрый (80k eps, 6m/64gb)
• Nginx vts exporter
• Cadvisor
• Подключение приложений
Prometheus. В заключении.
Вопросы
Facebook: https://www.facebook.com/vasiliy.ozerov
Http: : https://fevlake.com, https://tapcore.com
Phone: +7 967 198 37 88, feel free to ping me

More Related Content

PDF
Prometheus мониторинг микросервисных приложений / Виталий Левченко
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PDF
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
PDF
Как не положить тысячи серверов с помощью системы централизованного управлени...
PPTX
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
PPTX
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как SRE следит за стабильностью и скоростью HeadHunter / Антон Иванов (HeadHu...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...

What's hot (20)

PPTX
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
PDF
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
PDF
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PDF
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
PPTX
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
PPTX
Денис Иванов
PDF
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
PPTX
обзор архитектуры и подсистем деплоя и мониторинга
PDF
How to build solid CI-CD pipeline / Илья Беда (beda.software)
PDF
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
PDF
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
PPTX
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
PPTX
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
PPTX
Опыт построения СХД на базе Windows Server для использования в публичном обла...
PDF
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
PDF
Антон Галицын
PDF
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Docker в работе: взгляд на его использование в Badoo через год / Турецкий Ант...
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Продуктовые проблемы при создании очередной Docker PaaS / Владимир Ярцев (Cas...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Zabbix 3.2 - мониторинг качественно нового уровня / Алексей Владышев (Zabbix)
smart balancing with nginx+lua / Андрей Кононов (IPONWEB)
Денис Иванов
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
обзор архитектуры и подсистем деплоя и мониторинга
How to build solid CI-CD pipeline / Илья Беда (beda.software)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Путь DevOps в «Parallels» / Константин Назаров (Parallels)
Дизайн REST API для высокопроизводительных систем / Александр Лебедев (Новые ...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Мониторинг быстродействия web-проекта / Владимир Буянов (Ultimate Guitar)
Zabbix 3.4 - простая непростая дружба с сообществом / Алексей Владышев (Zabbix)
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
Антон Галицын
Сравнение решений по балансировке высоконагруженных систем / Евгений Пивень (...
Ad

Similar to Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake) (9)

PDF
Alertmanager feat. prometeus
PPTX
Continuous monitoring
PDF
My slides from BMM №3 May 2019
PDF
GitLab, Prometheus и Grafana с Kubernetes
PPTX
PaaS, выделенные сервера, облако и снова PaaS
PDF
Yet Another PaaS
PDF
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
PDF
Чему мы научились разрабатывая микросервисы?
PDF
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Alertmanager feat. prometeus
Continuous monitoring
My slides from BMM №3 May 2019
GitLab, Prometheus и Grafana с Kubernetes
PaaS, выделенные сервера, облако и снова PaaS
Yet Another PaaS
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились разрабатывая микросервисы?
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Ad

More from Ontico (20)

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

Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)