Our monitoring past and future tale

Our monitoring past and future tale

TECH Night #1 by DELiGHTWORKS 〜FGO・モンストから学ぶ大規模ゲーム運用のためのサーバ・インフラの話〜
https://techplay.jp/event/717816

で話した内容。モンスターストライクで使っている監視環境の話とそれをアップデートしようとする取り組みについての話です。

4de185b890720b5ff612b319f0c109c9?s=128

Ryosuke SATO

March 07, 2019
Tweet

Transcript

  1. ϞϯελʔετϥΠΫͷ؂ࢹπʔϧࠓੲ෺ޠ Լר ࠤ౻ྑ༞ גࣜձࣾϛΫγΟ ։ൃຊ෦ SREάϧʔϓ

  2. !2 ࣗݾ঺հ

  3. !3 ࣗݾ঺հ • ࠤ౻ ྑ༞ (͞ͱ͏ Γΐ͏͚͢) • גࣜձࣾϛΫγΟ։ൃຊ෦SREάϧʔϓ •

    2017೥৽ଔೖࣾ
  4. !4 ԼרͰ࿩͢͜ͱ • ؂ࢹ؀ڥΛݱ୅Խ͢ΔͨΊͷݱࡏͷऔΓ૊Έ • ݱঢ়ͷ໰୊఺ʹ͍ͭͯͷ੔ཧ • Nagios͔ΒPrometheus΁ͷmigrationʹ͍ͭͯ • In-Progress

    ͳ࿩ • Future work
  5. !5 ͯ͞ɺΈͳ͞Μ
 ؂ࢹ؀ڥ΁ͷෆຬΛ ࣋ͬͯ·ͤΜ͔?


  6. !6 ࢲ͸ͱ͘ʹ ࣋ͬͯ·ͤΜͰͨ͠

  7. !7 ͱ͍͏͔ʮ؂ࢹʯͬͯͳʹ?

  8. !8 ͦΜͳͱ͖ʹʮೖ໳ ؂ࢹʯൃച https://www.oreilly.co.jp/books/9784873118642/

  9. !9 ʮ؂ࢹʯΛงғؾͰ΍͍ͬͯΔ ࣗ෼ʹ͸ݴޠԽ͞ΕΑ͘੔ཧͰ͖ͨ

  10. !10 ͞͞Δɻࢗ͞Δͧʙ 8.3 SNMP ୯౛௚ೖʹݴΘ͍ͤͯͩ͘͞ɻ4/.1Λαʔόʔ؂ࢹʹ࢖͏ͷ͸ ΍Ί·͠ΐ͏ ೖ໳؂ࢹ: 8.3 SNMP P.115

    ˔֤ϝτϦΫεΛ෼͋Δ͍͸ͦΕΑΓ௕ִ͍ؒͰ؂ࢹ͍ͯ͠Δ ˔ϝτϦΫεͷཤྺΛอଘ͍ͯ͠ͳ͍ /BHJPTɺ͓લͷ͜ͱͩ  ೖ໳؂ࢹ: 1.3 Ξϯνύλʔϯ3: νΣοΫϘοΫε؂ࢹ P.11
  11. !11 ݱঢ়ͷ໰୊఺

  12. !12 ݱঢ়ͷ໰୊఺ • ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ • ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ ◦ SNMP ◦ Nagios

    ◦ libmysqlclientͷґଘ໰୊ • ϝτϦΫεͷཤྺ͕ͳ͍ • ϝτϦΫεͷऔಘִ͕ؒ5෼ͱ௕͍
  13. !13 ݱঢ়ͷ໰୊఺ • ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ • ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ ◦ SNMP ◦ Nagios

    ◦ libmysqlͷґଘ໰୊ • ϝτϦΫεͷཤྺ͕ͳ͍ • ϝτϦΫεͷऔಘִ͕ؒ5෼ͱ௕͍ ೴ཪʹͪΒ͍ͭͯ͘Δ͜ͷݴ༿ /BHJPTɺ͓લͷ͜ͱͩ 4/.1Λαʔόʔ؂ࢹʹ ࢖͏ͷ͸΍Ί·͠ΐ͏
  14. !14 ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ σʔληϯλʔ1 σʔληϯλʔ2

  15. !15 ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ σʔληϯλʔ1 σʔληϯλʔ2 σʔληϯλʔ2 ͷ؂ࢹ͕ࢭ·ͬͯ͠·͏ σʔληϯλʔ2 ͷNagios͕DOWN

  16. !16 ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ σʔληϯλʔ1 σʔληϯλʔ2 σʔληϯλʔ3

  17. !17 ؂ࢹαʔόʔ͕εέʔϧ͠ͳ͍ɺՄ༻ੑ͕ͳ͍ σʔληϯλʔ1 σʔληϯλʔ2 σʔληϯλʔ3 σʔληϯλʔ͕૿͑Δͱ ͲΜͲΜ૿͍͑ͯ͘ Nagios

  18. !18 ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ % snmpget -v1 -c public localhost iso.3.6.1.2.1.1.1.0

  19. !19 ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ % snmpget -v1 -c public localhost iso.3.6.1.2.1.1.1.0

  20. !20 ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ % snmpget -v1 -c public localhost iso.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0

    = STRING: "Linux ip-172-31-12-13 4.15.0-1032-aws #34-Ubuntu SMP Thu Jan 17 15:18:09 UTC 2019 x86_64"
  21. !21 ؂ࢹ͢Διϑτ΢ΣΞ͕ݹ͍ɺґଘ౓͕େ͖͍ • ؂ࢹ͢ΔͨΊʹඞཁͳ libmysqlclient • OSΛΞοϓάϨʔυ͢Δͱόʔδϣϯ্͕͕ͬͯ͠·͏… • ࣗ෼ͨͪͷͨΊʹόοΫϙʔτ͢Δ??

  22. !22 ͦ͜Ͱ Prometheus ͷಋೖ

  23. !23 Ͳ͏ͯ͠Prometheusͳͷ? • SaaSαʔϏεͰ͸ ◦ զʑ͕؂ࢹ͍߲ͨ͠໨਺ΑΓରԠ͕গͳ͔ͬͨ ◦ ୆਺͕ଟ͍ͨΊɺίετ͕ߴͭ͘͘... ◦ զʑࣗ਎Ͱ͍Ζ͍Ζϝϯς͍͖͍ͯͨ͠

    • ΦϯϓϨɺΫϥ΢υͱִͨΓͳ͘؂ࢹ͍ͨ͠
  24. !24 Prometheus ͱ͸

  25. !25 Prometheus • Prometheus https://github.com/prometheus/prometheus • SoundCloudʹΑͬͯ։ൃɺOSSԽɺCNCFͷϓϩδΣΫτ • Googleͷ಺෦ͷ؂ࢹγεςϜBorgman͔ΒΠϯεύΠΞ •

    ؂ࢹ͢ΔͨΊͷexporter΋ॆ࣮ • Nagiosͱಉ͘͡Pullܕͷ࢓૊Έ
  26. !26 NagiosΛ໓΅ͨ͢Ίʹ

  27. !27 NagiosΛ໓΅ͨ͢Ίʹ • node-exporter / mysqld-exporter ͸ެࣜΛ࢖͏ • ΧελϜϝτϦΫεܥ͸exporterΛࣗ࡞ •

    ؂ࢹ؀ڥͷߴՄ༻ੑ • AlertmanagerʹΑΔΞϥʔτ؂ࢹͷઃఆ • Grafana DashboardΛ͏·͍͜ͱ࡞Δ • Prometheusͷconfigࣗಈੜ੒ • NagiosͱPrometheusͷซ༻ • NagiosΛ໓΅͢ • snmpdΛ໓΅͢
  28. !28 NagiosΛ໓΅ͨ͢Ίʹ • node-exporter / mysqld-exporter ͸ެࣜΛ࢖͏ • ΧελϜϝτϦΫεܥ͸exporterΛࣗ࡞ •

    ؂ࢹ؀ڥͷߴՄ༻ੑ • AlertmanagerʹΑΔΞϥʔτ؂ࢹͷઃఆ • Grafana DashboardΛ͏·͍͜ͱ࡞Δ • Prometheusͷconfigࣗಈੜ੒ • NagiosͱPrometheusͷซ༻ • NagiosΛ໓΅͢ • snmpdΛ໓΅͢
  29. !29 ؂ࢹߏ੒ͷߴՄ༻ੑ σʔληϯλʔ1 σʔληϯλʔ2

  30. !30 ؂ࢹߏ੒ͷߴՄ༻ੑ σʔληϯλʔ1 σʔληϯλʔ2 ڌ఺͝ͱʹPrometheusΛઃஔ • ڌ఺৑௕ • ઃఆ͸౷Ұ •

    Alertmaneger͕ॏෳഉআͯ͘͠ΕΔ(Β͍͠)
  31. !31 Prometheusͷconfigࣗಈੜ੒ • ݱঢ়ɺࣗಈతͳαʔϏεσΟεΧόϦ͸ͳ͍ • چདྷͷ؂ࢹઃఆ͔ΒPrometheus༻ͷϑΝΠϧΛࣗಈੜ੒ servers:
 - config: application.yaml


    label: Application Servers
 hosts:
 - 192.168.0.1 app-1 app-1
 - 192.168.0.2 app-2 app-2
 - config: mysql.yaml
 label: DB
 hosts:
 - 192.168.0.10 db1 mysql master
 - 192.168.0.11 db2 mysql slave - targets:
 - 192.168.0.1:9100
 labels:
 datacenter: sample
 env: production
 hostname: app-1
 service: application ...
 - targets:
 - 192.168.0.10:9100
 - 192.168.0.10:9104
 labels:
 datacenter: sample
 env: production
 hostname: db1
 service: mysql
 αʔόʔʹԠͯ͡ LISTENઌΛม͍͑ͯ͘
  32. !32 ͜Ε͔Β...

  33. !33 ͜Ε͔Β…. • طଘͷ؂ࢹ߲໨Λચ͍ग़͠؂ࢹઃఆΛ࠶ߏ੒ • ऩूͨ͠σʔλͷؙΊ… • Grafana DashboardΛߏங… •

    Service Discovery ͷͨΊʹControl PlaneΛߏங • etc…
  34. !34 Զͨͪͷઓ͍͸ ͜Ε͔Βͩ ✊✊✊

  35. !35 Զͨͪͷ஥ؒʹͳͬͯ ͘ΕΔਓΛืूதʂʂ https://career.xflag.com/career/engineer/914/

  36. Thank you !36