Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 32 Ad

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

Download to read offline

РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 6 июня, 11:00

Тезисы:
http://rootconf.ru/2017/abstracts/2507

- Почему prometheus?
- быстрый (golang)
- time series database
- простота развертывания через scm (ansible/chef/puppet/salt)
- готовые exports & dashboars for grafana

- Внедряем
- переносим базовый мониторинг систем в prometheus (cpu/disk/net/mem)
- настраиваем discovery новых хостов и сервисов
- подключаем визуализацию
- настраиваем алертинг

- Дополнительно
- резервируем prometheus (alertmanager + prometheus instance)
- получаем информацию из собственных приложений
- получаем статистику из логов

- Заключение
- возможности масштабирования
- какую нагрузку держим

РИТ++ 2017, Root Conf
Зал Пекин + Шанхай, 6 июня, 11:00

Тезисы:
http://rootconf.ru/2017/abstracts/2507

- Почему prometheus?
- быстрый (golang)
- time series database
- простота развертывания через scm (ansible/chef/puppet/salt)
- готовые exports & dashboars for grafana

- Внедряем
- переносим базовый мониторинг систем в prometheus (cpu/disk/net/mem)
- настраиваем discovery новых хостов и сервисов
- подключаем визуализацию
- настраиваем алертинг

- Дополнительно
- резервируем prometheus (alertmanager + prometheus instance)
- получаем информацию из собственных приложений
- получаем статистику из логов

- Заключение
- возможности масштабирования
- какую нагрузку держим

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

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

Advertisement

More from Ontico (20)

Recently uploaded (20)

Advertisement

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

  1. 1. Переезжаем с Zabbix на Prometheus Озеров Василий
  2. 2. •2004 •DevOps (tapcore.com) •Founder • fevlake.com • checkops.com Немного о себе
  3. 3. Что случилось? • Быстро росли • Пропускали проблемы • Не могли анализировать
  4. 4. • Используем Zabbix Agent • Поддержка windows / linux • Встроенные шаблоны Zabbix. Системные метрики.
  5. 5. • Status Page • Скрипт парсинга • Zabbix Agent • Template Zabbix. Nginx.
  6. 6. Zabbix. Docker. LLD. • Template • Скрипт Discovery • Docker API
  7. 7. Zabbix. Docker. Забираем метрики. • Скрипт метрик • Docker API
  8. 8. Zabbix. Docker. Zabbix Agent XXL. • Zabbix Agent • Template • Profit!
  9. 9. Zabbix. Docker. Graphs.
  10. 10. Zabbix. Docker. Workaround. • Grafana Datasource • Grafana template
  11. 11. Zabbix. Финал. • Много ручных действий • Предопределенные графики • Тяжело анализировать • Быстродействие • Подключение приложений
  12. 12. • Carbon • Whisper • Web Graphite.
  13. 13. Graphite. Системные метрики и сервисы
  14. 14. • Иерархичная структура • Statsd • Много компонентов • Оповещения Graphite. Неудобства.
  15. 15. • Долговременное хранилище • Функционал • Поддержка Graphite. Преимущества.
  16. 16. • Event based • Быстрый (200k eps) • Dashboard • Много outputs Riemann.
  17. 17. • Простая конфигурация • 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))))
  18. 18. • 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")))))
  19. 19. Prometheus. Архитектура.
  20. 20. 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
  21. 21. Prometheus. Разворачиваем. Конфигурация. - job_name: "nginx” static_configs: - targets: - "web.domain.com:9913" labels: env: "prod" group: "web" • Services
  22. 22. 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
  23. 23. 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
  24. 24. Prometheus. Системные метрики.
  25. 25. • VTS Exporter • Grafana Prometheus. Nginx.
  26. 26. Prometheus. Docker. Cadvisor.
  27. 27. • > 100 dashboards • > 100 exporters • Jmx_exporter Prometheus. Другие сервисы.
  28. 28. • 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))
  29. 29. • 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.
  30. 30. Prometheus. HA & Scaling.
  31. 31. • Быстрый (80k eps, 6m/64gb) • Nginx vts exporter • Cadvisor • Подключение приложений Prometheus. В заключении.
  32. 32. Вопросы 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

×