Upgrade to Pro — share decks privately, control downloads, hide ads and more …

fluentdサーバをchefで構築するの辛かったけどDockerも別に救世主じゃなかった / tokyu ruby kaigi 12

Ba0b2e7a2783ae54f12665086315ed83?s=47 h3poteto
July 29, 2018

fluentdサーバをchefで構築するの辛かったけどDockerも別に救世主じゃなかった / tokyu ruby kaigi 12

fluentdのchefメンテまじで辛い,どうせみんなcookbookとか忘れたでしょ

Ba0b2e7a2783ae54f12665086315ed83?s=128

h3poteto

July 29, 2018
Tweet

Transcript

  1. fluentdαʔόΛchefͰߏங͢Δ ͷਏ͔͚ͬͨͲDocker΋ผʹٹ ੈओ͡Όͳ͔ͬͨ @h3_poteto

  2. ࣗݾ঺հ • Akira Fukushimaʢ෱ౡ ໌ʣ • github: h3poteto • twitter:

    h3_poteto • ࢓ࣄɿterraform৬ਓ@scouty
  3. એ఻

  4. None
  5. None
  6. એ఻ऴΘΓ

  7. fluentdαʔόΛchefͰߏங͢Δͷਏ͔ͬ ͚ͨͲDocker΋ผʹٹੈओ͡Όͳ͔ͬͨ ָԂͰ͢ɼࠓ͙͢Dockerʹ͠·͠ΐ͏ @h3_poteto

  8. ղܾࡦ͕Θ͔Βͳ͍ͬͯ࿩Λ ͠Α͏ͱࢥͬͯͨͷʹɼ ղܾࡦ͕ݟ͔ͭͬͯ͠·ͬͨ

  9. Έͳ͞Μ ϩάͷू໿ʹfluentd ࢖ͬͯ·͢ΑͶʁ

  10. None
  11. ͜Εͷ࿩

  12. aggregatorͷfluentdΛ chefͰߏங͍ͯͨ͠

  13. Έͳ͞Μchefͷ͜ͱ ֮͑ͯ·͔͢ʁ

  14. None
  15. chefͭΒ͍ • immutable infra? • ͨ·ʹࣦഊ͢Δ • ΈΜͳ΋͏cookbookͷϝϯςͯ͠ͳ͍Ͱ ͠ΐʁ

  16. chef-td-agent΋͋Δ

  17. td-agentͷcookbook಺Ͱ͸ yum install͍ͯ͠Δ

  18. ͳͷʹamazon linux ͨ·ʹݹ͍yumϦϙδτϦΛ ফͯ͘͠Δ

  19. ͋Δ೔ಥવ Կ΋ͯ͠ͳ͍ͷʹ ಈ͔ͳ͘ͳΔʂ

  20. fluentd v0.12ܥΛ ӡ༻ͯͨ͠ࠒͷ࿩

  21. td-agentͷґଘʹؒҧ͑ͯ v0.14ܥͷgem͕ࠞೖͨ͠

  22. None
  23. amazon linuxͷyum ฏવͱtd-agent 2.3.5ʹߋ৽ ͞ΕΔ

  24. ͔͠΋2.3.4͕ফ͞ΕΔ

  25. ͜ͷޙ1ϲ݄ۙ͘yum͸ v2.3.5ͷ·· ߋ৽͞Εͳ͔ͬͨ

  26. ͢΂ͯͷΠϯελϯεͰchef ͷprovision͕ࣦഊ͢Δ

  27. ͭΒ͍

  28. chefࣗମͷόʔδϣϯΞοϓ Λ΍ͬͨͱ͖

  29. ࠓ·Ͱrhelͱ൑ఆ͞Ε͍ͯͨ amazon linuxɼ৽ͨʹ amazonͱ͍͏ࣝผࢠΛ৽ઃ ͞ΕΔ

  30. platformͷ൑ఆΛ͍ͯͨ͠ cookbook͕΄ͱΜͲ࢖͍෺ ʹͳΒͳ͍

  31. None
  32. ࢓ํͳ͍ͷͰҰͭͣͭमਖ਼ͷ Pull Request

  33. ͚ͩͲະͩʹϦϦʔε͞Εͯ ͍ͳ͍΋ͷ΋͋Δ

  34. None
  35. None
  36. Ͳ͏ͤ΋͏ΈΜͳcookbook ͷϝϯςͯ͠ͳ͍Ͱ͠ΐ……

  37. ͭΒ͍

  38. ࣮͸΋͏ΈΜͳDockerͰ ӡ༻ͯ͠Δͷʁ ͔ͩΒchefϝϯς ͯ͠ͳ͍ͷʁ

  39. গͳ͘ͱ΋Ξοϓσʔτ͸ chefΑΓසൟ

  40. σϓϩΠ࣌ͷBuffer Ͳ͏͢Μͷʁ ؾʹͳΔͱ͜Ζ……

  41. None
  42. Memory or File ?

  43. Ͳͬͪ΋ίϯςφࡴͨ͠Β ফ͑Δ͡ΌΜʂ ͯࢥͬͯͨΜ͚ͩͲ……

  44. flush_at_shutdown

  45. flush_at_shutdown • SIGTERMΛड͚औͬͨͱ͖ʹBufferΛflush • flush׬ྃ·Ͱtd-agent͕଴͔ͬͯΒऴྃ • buf_memoryͰ͸σϑΥϧτͰ༗ޮ • SIGKILLͷͱ͖͸ޮ͔ͳ͍

  46. ߟ͑ͯͨ͜ͱ • k8sͷPersistentVolumesͰNFSʢ΋͘͠͸ EBSʣΛvolumeϚ΢ϯτ͢Δ • k8sͷPreStopͰbufferΛS3ʹΞοϓϩʔυ͢ Δ • fluentdΫϥελ2ܥ౷࡞Δʁ

  47. શ෦͍Βͳ͔ͬͨʂ flush_at_shutdownͰk8sʹ ͦͷ··৐ͤΕ͹ྑ͍ʂ

  48. SIGKILLΛ΋Β͏ͱ͖΋͋Δ • td-agentɼtimeoutҎ಺ʹflush࢓੾Βͳ͍ͱऴ ྃ͠ͳ͍ • k8sͷGracePeriodSecondsҎ಺ʹίϯςφ͕ ऴྃ͠ͳ͍ͱSIGKILL

  49. ͜Ε͸ྲྀྔͱͷ݉Ͷ߹͍

  50. ৗʹਖ਼ৗऴྃͰ͖ͳ͍ͷͰ͋ Ε͹ɼbufferͷઃఆ΍output ͷεϨου౳Λௐઅͨ͠ํ͕ ͍͍͔΋

  51. fluentd on Docker͸ ָԂͰ͋Δ

  52. chefΛࣺͯͯDockerʹߦ͜͏