KibanaではじめるDashboard

124da56a613b15fa980427533e4e3839?s=47 Harukasan
September 10, 2014

 KibanaではじめるDashboard

KibanaではじめるDashboard
サーバ/インフラ養成読本 ログ収集可視化編 / 2014-09-08

124da56a613b15fa980427533e4e3839?s=128

Harukasan

September 10, 2014
Tweet

Transcript

  1. KibanaͰ͸͡ΊΔDashboard Harukasan / MICHII Shunsuke 2014-09-08
 サーバ/インフラエンジニア養成読本 ログ収集〜可視化編
 出版記念!執筆者が語る大講演会!

  2. Harukasan / MICHII Shunsuke Infrastructure team in pixiv Inc. since

    2012 ! Works
 Contents Delivery / Monitoring / Server Management Server side infrastructure
 nginx / Apache TrafficServer / PHP / Ruby Data Analytics
 Fluentd / Kibana / Google BigQuery @harukasan shunsuke.michii
  3. Agenda • pixivʹ͓͚Δσʔλ෼ੳ • DashboardΛͭ͘Ζ͏ • ͔ͭͬͯ͘Βͷ͜ͱ

  4. None
  5. pixiv ͜͜ʹpixivͷઆ໌͕ೖΔ ʮ͓ֆ͔͖͕΋ͬͱָ͘͠ͳΔ৔ॴʯΛ໨ࢦ͍ͯ͠Δ ΠϥετίϛϡχέʔγϣϯαʔϏε

  6. pixivʹ͓͚Δσʔλ෼ੳ

  7. pixivͷ։ൃαΠΫϧ • σϓϩΠճ਺: ฏۉ17ճ/೔ • ຖिͳʹ͔͠Β৽͍͠ػೳ͕ϦϦʔε͞ΕΔ • ৽͍͠ػೳͷޮՌΛݕূ͍ͨ͠ • ࢥ͍͕͚ͳ͍มԽ͕ͳ͍͔

  8. pixivʹ͓͚Δσʔλ෼ੳ • άϩʔενʔϜ • αʔϏεͷάϩʔεͷͨΊʹͳΜͰ΋΍Δ • ༷ʑͳࢪࡦͷݕূͷͨΊʹϩάΛ࢖༻͍ͯ͠Δ ! • pixivͰ࣮ࡍʹى͍ͬͯ͜Δ͜ͱΛௐ΂Δ

    • ͲͷΑ͏ͳΠϥετ͕Ӿཡ͞Ε͍ͯΔ͔ • ͲͷΑ͏ͳݕࡧ͕ߦΘΕ͍ͯΔ͔
  9. pixivʹ͓͚Δσʔλ෼ੳ • ։ൃνʔϜ • σʔλ෼ੳ͸ܧଓతσϦόϦʔͷखஈ • ػೳΛϦϦʔεͨ͠ͱ͖ʹςετ͢Δ • ਖ਼͍࣮͠૷͕ߦ͑ͨͷ͔ •

    ༧૝֎ͷޮՌ͕ͳ͍ͷ͔
  10. pixivʹ͓͚Δσʔλ෼ੳ • ͳͥՄࢹԽΛ͸͡Ίͨͷ͔ • ࣾ಺ͰFluentd/MongoͰՄࢹԽπʔϧΛͭͬͨ͘ • ܾ·ͬͨ஋Λه࿥͚ͭͮ͠Δ • ͦΕͳΓʹ࢖ΘΕ͍ͯͨ

  11. pixivʹ͓͚Δσʔλ෼ੳ • ;ͱKibanaΛ஌Δ • ͳΜ͔͓΋͠Ζͦ͏ • σʔλΛྲྀ͠ࠐΜͰΈΔͱ݁ߏ͓΋͠Ζ͍ • ͦͷ͏ͪଞͷਓ͕࢖͍࢝Ίͨ •

    ো֐͕ى͜ΔͱౖΒΕΔΑ͏ʹͳͬͨ
  12. pixivʹ͓͚Δσʔλ෼ੳ • fluent-plugin-elasticsearch͔Βlogstash-*Ҏ֎ͷ
 ΠϯσοΫεʹग़ྗग़དྷΔΑ͏ʹͨ͠ • ͳͥlogstash_prefixͱ͍͏໊લʹͯ͠͠·ͬͨͷ͔……

  13. Kibana

  14. Query/Filter and Panels • Query: ϩάΛݕࡧ • Filter: ͢΂ͯͷΫΤϦʹద༻͞ΕΔ •

    Panel: ΫΤϦͷݕࡧ݁ՌΛ༷ʑͳํ๏Ͱදࣔ͢Δ
  15. • ຊͰͨ͘͞Μઆ໌ͨ͠ Panels

  16. Dashboard

  17. Dashboard • ݟ͍ͨ਺஋͕1ը໘ʹऩ·͍ͬͯΔ • 1ͭͷσʔλʹରͯ͠ෳ਺ͷ໘͔Β෼ੳ͢Δ • ຖ೔/ຖिܧଓͯ͠มԽΛݟΔ͜ͱ͕ग़དྷΔ • ͜ͷσʔλʹ͍ͭͯݟΔʹ͸͜ͷը໘ΛݟΕ͹ྑ͍ !

    • ΠϯϑϥΤϯδχΞ΍։ൃऀ͕࢖༻͍ͯͨ͠
 ϩάσʔλʹ୭Ͱ΋ΞΫηεͰ͖ΔΑ͏ʹ͢Δ
  18. ྫ͑͹

  19. ྫ͑͹ • ελϯϓػೳ௥Ճͷࡍʹͭ͘ΒΕͨ • ͲͷΑ͏ͳ༻్Ͱ࢖ΘΕ͍ͯΔ͔ • ίϝϯτ਺ʹ͸ͲͷΑ͏ͳมԽ͕͔͋ͬͨ • ຖिϛʔςΟϯά࣌ʹ֬ೝ͢Δ

  20. DashboardΛͭ͘Ζ͏

  21. ༻ҙ͢Δ΋ͷ • ద౰ͳαʔό: SSD 256GBx3/ϝϞϦ32GB • 5,000,000 records/day ·Ͱ͸༨༟ •

    EFKελοΫ • Elasticsearch • Fluentd • Kibana • ϩάϑΝΠϧ • ۭ͖࣌ؒ
  22. ͭ͘Γ͔ͨ 1. ElasticsearchΛηοτΞοϓ 2. FluentdͰϩάΛૹΓ࢝ΊΔ 3. μογϡϘʔυΛͭ͘Δ  Elasticsearch Fluentd

    Application Load Balancer Database ΞΫηεϩά Πϕϯτϩά  ੜσʔλ  Τϥʔϩά
  23. Ͳ͏͍͏ϩάΛ࢖͏͔ • αʔόʹอଘ͞Ε͍ͯΔΠϕϯτϩά • ूܭࡁΈͷσʔλ͸೉͍͠ • ΠϯϑϥνʔϜͱ͕ه࿥͍ͯͨ͠ϩάΛଞͷ༻్ʹ΋࢖͑ΔΑ͏ʹ ΞΫηεϩά • ϦΫΤετͨ͠URL

    • ૹ৴ݩIPΞυϨε • ϨεϙϯελΠϜ/ϦΫΤετॲཧ࣌ؒ ! Πϕϯτϩά • Ϣʔβ͕ߦͬͨΠϕϯτ(ϩάΠϯ/౤ߘ/ϒοΫϚʔΫ)ͷৄࡉ৘ใ • Πϕϯτͷछྨຖʹߏ଄Խ͞Ε͍ͯΔ • ࠷ॳʹՄࢹԽը໘Λͭͬͨ͘ͱ͖ʹ༻ҙͨ͠
  24. Πϕϯτϩά • ༧Ίߏ଄Խσʔλ͕͋Δͱศར • ΋ͱ΋ͱ෼ੳπʔϧ༻ͷϩά͕͋ͬͨ ! • type • ϦΫΤετ৘ใ

    • ϦϞʔτΞυϨε • UA • ϦϑΝϥ • ࠃ৘ใ • Πϕϯτͷৄࡉ • ର৅ίϯςϯτͷID
  25. ม׵ॲཧ • FluentdͰ࠷௿ݶͷม׵ॲཧΛߦ͓ͬͯ͘ • ूܭॲཧ͸ߦΘͳ͍ ! fluent-plugin-geoip • IPΞυϨεΛࠃ৘ใʹม׵͢Δ fluent-plugin-rewrite-tag-filter

    • ϩάͷग़ྗઌΠϯσοΫεΛৼΓ෼͚Δ • ෆඞཁͳϩάΛল͘
  26. DashboardΛͭ͘Δ ͖ͬ͞ͷίϝϯτμογϡϘʔυΛྫʹߟ͑Δ ! 1. جຊ͸HistogramͱTable 2. ϩάΛϑΟϧλϦϯά 3. ͱΓ͋͑ͣద౰ʹ͍ΖΜͳύωϧΛฒ΂Δ 4.

    Share͢Δ
  27. Histogram / Table • ώετάϥϜͱςʔϒϧΛஔ͍͚ͨͩ • ·ͣ͸ϑΟϧλϦϯάͯ͠ίϝϯτؔ࿈ͷσʔλΛநग़

  28. σϓϩΠΛه࿥͢Δ • σϓϩΠεΫϦϓτʹ1ߦ௥Ճ͢Δ͚ͩ • σϓϩΠޙʹͲͷΑ͏ͳมԽ͕͔͋ͬͨΘ͔Γ΍͍͢ curl -XPOST -H 'Content-type: text/json'

    http://localhost:9200/deploy/deploy/
 -d "{'project':'pixiv', '@timestamp':'$(date +"%Y-%m-%dT%H:%I:%S%z")', 'message':'tag'}"
  29. Terms • ؾʹͳ͍ͬͯΔ஋Λूܭ্ͯ͠ҐN݅Λදࣔ • ๮άϥϑɾԁάϥϑͰදࣔͰ͖Δ • TableܗࣜͩͱϘλϯͰϑΟϧλϦϯάͰ͖Δ

  30. Text • MarkdownͰςΩετΛॻ͚Δ • ஫ҙࣄ߲ͱ͔ɺຌྫͱ͔Λද͓ࣔͯ͘͠ • Ͳ͏͍͏σʔλ͔ɺͲ͏͍͏࢖͍ํΛ͢Δ͔

  31. ׬੒

  32. ͔ͭͬͯ͘Βͷ͜ͱ

  33. Share͢Δ • ShareϘλϯͰҰ࣌URLΛੜ੒ͯ͠νϟοτͱ͔ʹషΔ • ͪΌΜͱग़དྷͨΒอଘͯٞ͠ࣄ࿥ͱ͔ʹష͓ͬͯ͘

  34. ͔ͭͬͯ͘Βͷ͜ͱ • ຖ೔/ຖि࣌ؒΛͱͬͯมԽΛ؍࡯͢Δ • ͨͩϦϯΫΛ͸Δ͚ͩͩͱ୭΋ݟͯ͘Εͳ͍ • ΈΜͳͰมԽʹ͍ͭͯٞ࿦͢Δ࣌ؒΛͭ͘Δ • ৽͍͠վળํ๏΍ΞΠσΞʹͭͳ͕Δ •

    ՄࢹԽج൫ʹର͍ͯ͠ΖΜͳจ͕۟Ͱͯ͘Δ
  35. ࢖ͬͯΔͱग़ͯ͘Δ໰୊ • PVΛͦͷ··ಥͬࠐΉͱܭࢉϦιʔε͕଍Γͳ͘ͳΔ • TermsɺTrendsͷύωϧΛฒ΂Δͱ͔ͳΓॏ͍ • ௕ظؒʹ౉ΔσʔλΛ࢖͍͍ͨ • ෳࡶͳूܭॲཧ΍ϑΟϧλϦϯάΛ࢖͍͍ͨ

  36. Kibana with BigQuery • BigQueryͰूܭ/ϑΟϧλϦϯάΛߦ͏ • σʔλΛBulk APIͰElasticsearchʹग़ྗ • JenkinsΛ࢖ͬͯఆظతʹ࣮ߦ͢Δ

     Elasticsearch Fluentd  Google BigQuery Jenkins
  37. ଞͷ෼ੳπʔϧΛ࢖͏ • ·ͣ͸KibanaͰ͸͡ΊͯΈΔ • ਺िؒ෼ͷσʔλͰ͋Ε͹؆୯ʹՄࢹԽͰ͖Δ • Kibana͕ۤखͳ͜ͱ΋Θ͔ͬͯ͘Δ • ͨ͘͞Μͷ࣠ʹ౉Δ౷ܭ৘ใ •

    ௕ظؒʹ౉Δσʔλ • େྔͷσʔλͷूܭॲཧ • KibanaͷͨΊʹͭͬͨ͘ΠϯϑϥΛଞͷπʔϧʹల։
  38. ଞͷ෼ੳπʔϧʹల։  Elasticsearch Fluentd  Google BigQuery Jenkins Tableau HRForecast

  39. ·ͱΊ • ͱΓ͋͑ͣKibanaΛ࢖͍࢝ΊͯΈΔ • ՄࢹԽΛ͸͡ΊΔͱ͍ΖΜͳ໰୊఺͕ग़ͯ͘Δ • αʔϏεʹ͓͚Δ໰୊఺ʹ͋Θͤͯ෼ੳπʔϧΛల։