Successfully reported this slideshow.
Your SlideShare is downloading. ×

Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 41 Ad

Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)

Download to read offline

Доклад с Zabbix Meetup.
Рассказали про:
• Сколько инстансов используем, зачем, какая конфигурация и нагрузка, какие дополнительные тулзы используем.
• Деплой скриптов/конфигов/обновлении.
• Флоу появления новых сущностей в мониторинге: хостов, проверок, графиков в заббикс. Самописный дискавери (серверов, сервисов): почему свой и что он умеет.
• Штуки для удобства: нотификации на рабочий стол, быстрая навигация по графикам.

Доклад с Zabbix Meetup.
Рассказали про:
• Сколько инстансов используем, зачем, какая конфигурация и нагрузка, какие дополнительные тулзы используем.
• Деплой скриптов/конфигов/обновлении.
• Флоу появления новых сущностей в мониторинге: хостов, проверок, графиков в заббикс. Самописный дискавери (серверов, сервисов): почему свой и что он умеет.
• Штуки для удобства: нотификации на рабочий стол, быстрая навигация по графикам.

Advertisement
Advertisement

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

Similar to Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo) (20)

More from Badoo Development (20)

Advertisement

Recently uploaded (20)

Zabbix в Badoo или о чем не пишут в мануале, Илья Аблеев (Badoo)

  1. 1. или о чем не пишут в мануале. Илья Аблеев) в.
  2. 2. Инфраструктура: ~3K Linux хостов; ~3 датацентра: Европа, Америка, Азия; 2 девел-площадки: Москва, Лондон) Отдел мониторинга: реакция на проблемы введение нового и поддержание старого добра; автоматизация.) Badoo.
  3. 3. 1.  Zabbix для триггеров – Zabbix1 2. Zabbix для статистики – Zabbix2 Разделены на два, по “типам” стораджей. 3. Zabbix proxy для девела – разгрузить основной сервер 4. Zabbix External – для доступности наших сервисов снаружи) Чем мониторим?.
  4. 4. Zabbix Servers. New values/sec: Hosts: Items: Triggers:) Zabbix2: ~ 4.5 K ~ 3 K ~ 440 K 0. Zabbix1: ~ 2 K ~ 4 K ~ 370 K ~ 590 K)
  5. 5. Zabbix1. История – 1 день Тренды – 0 дней Частые проверки – от 30 до 300 секунд Housekeeper включён. Мастер-мастер база на горячую замену Бэкапим только конфигурацию, без истории)
  6. 6. Zabbix2. История – 1 день Тренды – 365 дней Редкие проверки – в среднем 300-600 секунд Housekeeper включён. Бэкапим всё: конфигурацию и историю.
  7. 7. Zabbix2. Массовые шаблоны/скрины: Hardware, MySQL, Nginx, PHP-FPM. Гостевой доступ для всех сотрудников. “Удобная” навигация: http://zabbix2/%hostname%&%screen% )контроллер ловит все запросы http://zabbix2/www1.mlan&nginx www1.mlan => { hostid: 11931, groupid: 35 } nginx => { elementid: 55 } http://zabbix2/screens.php?hostid=11931&groupid=35&elementid=55)
  8. 8. Zabbix2
  9. 9. Zabbix2
  10. 10. MySQL Performance monitor. http://www.fromdual.com/mysql-performance-monitor готовое решение шлёт данные пачкой, используя Zabbix Sender хранит данные локально при недоступности Zabbix Server)
  11. 11. Zabbix2
  12. 12. Zabbix2
  13. 13. Формат DNS записей переносим в Zabbix. Группа: “CLUSTER (dc)”, например “WWW (mlan)” Шаблон отвечает за роль или сервис: TLinux_WWW TService_Nginx, TService_Postfix_mlan, TService_Postfix_ulan) Как не сойти с ума?.
  14. 14. ~ $ dig +short cppbig46.mlan! 10.10.147.47! ! ~ $ dig +short TXT cppbig46.mlan! "contact2" pinbaqueue" “pinbaqueue1"! ! ~ $ dig +short pinbaqueue.mlan! cppbig46.mlan.! 10.10.147.47! Как не сойти с ума?.
  15. 15. Проблема: нужно добавлять новые хосты в Zabbix. Руками? Долго. Готовое решение: “Discovery Rules”. Подходит, если кроме реальных хостов добавлять ничего не нужно.) Zabbix Discovery Rules.
  16. 16. Zabbix Discovery
  17. 17. Что нужно нам: – консистентность двух Zabbix Server’ов – динамическое раскидывание по группам/шаблонам – исключения / включения – удаление лишнего) Badoo Discovery.
  18. 18. dig axfr @dns1 mlan | grep -Ew 'IN.*A'! ! wwwbma95.mlan.! wwwbma96.mlan.! + wwwbma97.mlan.! + wwwbma98.mlan.! GROUP: “%cluster% (%platform%)” –> “WWWBMA (mlan)” TEMPLATE: “TLinux_%cluster%” –> “TLinux_WWWBMA”) Badoo Discovery
  19. 19. dig axfr @dns1 mlan | grep -E ‘tarantool.*IN.*CNAME'! ! tarantool-20.mlan.! tarantool-21.mlan.! + tarantool-22.mlan.! + tarantool-23.mlan.! + tarantool-24.mlan.! GROUP: “%cluster% (%platform%)” –> “TARANTOOL (mlan)” TEMPLATE: “TService_%cluster%” –> “TService_TARANTOOL”) Badoo Discovery.
  20. 20. Несколько дата-центров. Как не сойти с ума?) Тысячи хостов.
  21. 21. www1.msk www1.lnd www2.lndwww2.msk Zabbix2Zabbix1 www1.prodwww2.prod
  22. 22. Zabbix Proxy. Поллеры Zabbix Server’а висят, ожидая сети. Proxy помогает разгрузить Server.)
  23. 23. www1.prod www1.msk www1.lnd www2.prod www2.lndwww2.msk Zabbix.MSK Zabbix.LND Zabbix2Zabbix1
  24. 24. Zabbix Proxy. Лёгкий Zabbix Server. Backend – SQLite, не ресурсоёмко. Переносим хосты на Proxy автоматом по названию ДЦ. Возникают сложности с Zabbix Sender для Zabbix Proxy.)
  25. 25. Zabbix Proxy Map. Доступна локально на каждом сервере { ! "www1.d3": "zbx.msk", ! "www1.d4": "zbx.lnd",! …! "db1.d3": “zbx.msk"! }! Используется Zabbix Sender’ом, отправляя данные куда нужно.)
  26. 26. А как не уронить Zabbix Server?. При отправке данных по крону есть шанс положить базу Zabbix в один момент. Что делать? sleep перед отправкой! На сколько слипаться? random() – плохо, нужно присылать данные через равные временные промежутки. Высчитываем время из названия хоста.)
  27. 27. Три способа запуска самописных скриптов: •  external scripts •  user parameters •  system.run[ ]) Run, Zabbix, Run.
  28. 28. zabbix_server.conf ExternalScripts=/local/zabbix/scripts $ ls -l /local/zabbix/scripts/! drwxr-xr-x 3 zabbix users 4096 Jun 5 13:51 mysql_query.sh! External Scripts.
  29. 29. Плюсы: скрипты хранятся на Zabbix Server’е или Proxy проверки выполняются непосредственно с Zabbix Server’a мониторится доступность “снаружи” Минусы: много серверов –> Zabbix Server загнётся нельзя получить доступ к локальным данным) External Scripts.
  30. 30. zabbix_agentd.conf UserParameter=routes,/local/zabbix/scripts/helpers/routes.sh! UserParameter=raid[*],/local/zabbix/scripts/helpers/raid.sh $1! User Parameters.
  31. 31. Плюсы: проверки выполняются на агентах можно получить доступ к локальным данным Минусы: постоянно нужно добавлять новые строчки в конфиги обязателен рестарт агента нужно рассказывать коллегам, как запустить проверку нужно самим вспоминать, как она выполняется) User Parameters.
  32. 32. External Scripts UserParameter system.run[ ] Привет безопасникам!) Run, Zabbix, Run.
  33. 33. $ sudo -u zabbix /local/zabbix/scripts/helpers/dbstatus.sh Zabbix_Flush_Data_history 53 $ /local/zabbix/scripts/helpers/dbstatus.sh Zabbix_Flush_Data_history 53 ++ QUERY: SELECT UNIX_TIMESTAMP(NOW())-hi.clock FROM zabbix.history hi … system.run[ ].
  34. 34. Сплошные профиты: 👍 не нужно каждый раз обновлять конфиги везде 👍 сразу видно, как вызывается 👍 можно показать проверку админу/девелоперу 👎 открытый shell на проверяющем хосте system.run[ ].
  35. 35. Deploy.
  36. 36. Проблема: нужно доставить скрипты и конфиги на 3 тысячи клиентов Решение: 1. пушим в Git 2. автоматом собираем архив 3. скачиваем с каждого клиента.) Deploy.
  37. 37. if (($version_scripts < $version_scripts_remote)) then update_scripts fi if (($version_config < $version_config_remote)) then update_config && sudo /etc/init.d/zabbix_agentd restart fi Deploy. */5 * * * * root /local/zabbix/autoupdate.zabbix.sh ————————
  38. 38. Итоги.
  39. 39. Итоги. ✔  Можно разделить Zabbix’ы по функциональному признаку ✔  Discovery – если у вас часто добавляются серверы. Желательно заранее подумать об удобном именовании серверов и сервисов. ✔  Proxy спасает жизнь при плохом канале ✔  Деплой zabbix agentd и скриптов – как минимальная
  40. 40. Вопросы?. http://habrahabr.ru/company/Badoo/ Илья Аблеев) @ableev ableev@corp.badoo.com)

×