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

Elastic Stackでマイクロサービス運用を
楽にするには? / Monitoring Microservices with Elastic Stack

Jun Ohtani
January 25, 2019

Elastic Stackでマイクロサービス運用を
楽にするには? / Monitoring Microservices with Elastic Stack

OSC 大阪 2019でのセッションで使用した資料です。
「マイクロサービス」とありますが、アプリケーションの監視の話がメインですので、アプリケーションの監視やログ解析などに興味のある方にも読んでいただける内容となっています。

Jun Ohtani

January 25, 2019
Tweet

More Decks by Jun Ohtani

Other Decks in Technology

Transcript

  1. !1
    2019/01/25
    Community Engineer @Elastic

    Jun Ohtani @johtani
    Elastic StackͰϚΠΫϩαʔϏεӡ༻Λ

    ָʹ͢Δʹ͸ʁ - Elastic Stackͷೖ໳ͱ׆༻ -

    View Slide

  2. !2
    about
    • Me, Jun Ohtani / Community Engineer
    ‒ lucene-gosenίϛολʔ
    ‒ σʔλ෼ੳج൫ߏஙೖ໳ ڞஶ
    ‒ http://blog.johtani.info

    • Elastic, founded in 2012
    ‒ Products: Elasticsearch, Logstash, Kibana, Beats 

    Elastic APM, 

    Elastic Cloud, Swiftype 

    Professional services: Support & development subscriptions

    Trainings, Consulting, SaaS

    View Slide

  3. !3
    ΞδΣϯμ
    • ϚΠΫϩαʔϏεͱ͸ʁ
    • Elastic Stackͱ͸ʁ
    • ༷ʑͳ؍఺͔ΒͷΞϓϦέʔγϣϯͷ؂ࢹ
    • ͞Βʹ৭ʑࢼͯ͠ΈΔʹ͸ʁ

    View Slide

  4. !4
    ϚΠΫϩαʔϏεͱ͸

    View Slide

  5. !5
    ϚΠΫϩαʔϏε (Wikipedia)
    https://ja.wikipedia.org/wiki/ϚΠΫϩαʔϏε

    View Slide

  6. !6
    ϞϊϦγοΫ v.s. ϚΠΫϩαʔϏε

    View Slide

  7. !7
    ϚΠΫϩαʔϏεʁʁʁ

    View Slide

  8. !8
    Elastic Stackͱ͸ʁ

    View Slide

  9. Elastic
    Stack
    อଘɺݕࡧɺ෼ੳ
    Elasticsearch
    ՄࢹԽɺ؅ཧ
    Kibana
    Beats ΠϯδΣετ
    Logstash

    View Slide

  10. Metrics
    Logging
    APM
    Site

    Search
    Application
    Search
    Business

    Analytics
    Enterprise

    Search
    Security

    Analytics
    Future ιϦϡʔγϣϯ
    อଘɺݕࡧɺ෼ੳ
    ՄࢹԽɺ؅ཧ
    ΠϯδΣετ
    Kibana
    Elasticsearch
    Beats Logstash
    Elastic
    Stack

    View Slide

  11. Metrics
    Logging
    APM
    Site

    Search
    App

    Search
    Business

    Analytics
    Enterprise

    Search
    Security

    Analytics
    Future ιϦϡʔγϣϯ
    SaaS
    Elastic Cloud
    Self Managed
    Elastic Cloud

    Enterprise Standalone
    σϓϩΠ
    อଘɺݕࡧɺ෼ੳ
    ՄࢹԽɺ؅ཧ
    ΠϯδΣετ
    Kibana
    Elasticsearch
    Beats Logstash
    Elastic
    Stack

    View Slide

  12. อଘɺݕࡧɺ෼ੳ
    Elasticsearch
    ՄࢹԽɺ؅ཧ
    Kibana
    Beats ΠϯδΣετ
    Logstash
    Metrics
    Logging
    APM
    Site

    Search
    Application
    Search
    Business

    Analytics
    Enterprise

    Search
    Security

    Analytics
    Future ιϦϡʔγϣϯ
    SaaS
    Elastic Cloud
    Self Managed
    Elastic Cloud

    Enterprise Standalone
    σϓϩΠ
    Elastic
    Stack

    View Slide

  13. !13

    View Slide

  14. 14
    Beats
    ܰྔσʔλγούʔ
    ιʔε͔ΒσʔλΛసૹ సૹ͠Elasticsearchʹू໿ ม׵ͱύʔεͷͨΊ
    Logstashʹసૹ
    Elastic Cloudʹసૹ
    Libbeat: ΧελϜbeatsͷͨ
    ΊͷAPIϑϨʔϜϫʔΫ
    30Ҏ্ͷίϛϡχςΟbeats

    View Slide

  15. The Beats family
    Heartbeat
    Uptime monitoring
    Filebeat
    Log files
    Winlogbeat
    Windows Event Logs
    Packetbeat
    Network data
    +40
    community
    Beats
    Metricbeat
    Metrics
    Auditbeat
    Audit data

    View Slide

  16. !16

    View Slide

  17. 17
    Logstash
    σʔλՃ޻ύΠϓϥΠϯ
    શͯͷܗࣜɺαΠζͱσʔλιʔ
    εͷ౤ೖ
    ύʔεͱಈతͳ
    σʔλม׵
    ͋ΒΏΔग़ྗʹ
    σʔλసૹ
    ҆શͰ҉߸Խ͞Εͨ

    σʔλೖྗ
    ಠࣗͷύΠϓϥΠϯॲཧ
    ͷ࡞੒
    200Ҏ্ͷϓϥάΠϯ

    View Slide

  18. !18

    View Slide

  19. 19
    Elasticsearch
    Heart of the Elastic Stack
    ෼ࢄܕɺεέʔϥϒϧ ߴՄ༻ੑ Ϛϧνςφϯτ
    ։ൃऀϑϨϯυϦʔ ϦΞϧλΠϜɺશจݕࡧ ΞάϦήʔγϣϯ

    View Slide

  20. Elasticsearchͱ͸ʁ

    View Slide

  21. ϑϦʔϫʔυݕࡧ
    !21

    View Slide

  22. ߜΓࠐΈ
    !22

    View Slide

  23. ϋΠϥΠτ
    !23

    View Slide

  24. ιʔτ
    !24

    View Slide

  25. ϖʔδϯά
    !25

    View Slide

  26. ूܭ
    !26

    View Slide

  27. αδΣετ
    !27

    View Slide

  28. Elasticsearch in 10 seconds
    • εΩʔϚϑϦʔɺ෼ࢄυΩϡϝϯτετΞɺREST & JSON
    • Φʔϓϯιʔε: Apache License 2.0
    • ઃఆͳ͠Ͱ؆୯ʹࢼ͢͜ͱ͕Մೳ
    • JavaͰ࣮૷ɻ֦ு΋༰қ
    !28

    View Slide

  29. ؆୯ͳCRUD

    View Slide

  30. σʔλొ࿥
    30
    curl -XPUT localhost:9200/books/book/1 -d '
    {
    "title" : "Elasticsearch - The definitive guide",
    "authors" : "Clinton Gormley",
    "started" : "2013-02-04",
    "pages" : 230
    }'

    View Slide

  31. σʔλߋ৽
    31
    curl -XPUT localhost:9200/books/book/1 -d '
    {
    "title" : "Elasticsearch - The definitive guide",
    "authors" : [ "Clinton Gormley", "Zachary Tong" ],
    "started" : "2013-02-04",
    "pages" : 230
    }'

    View Slide

  32. σʔλ࡟আ
    !32
    curl -X DELETE localhost:9200/books/book/1
    σʔλͷऔಘ
    curl —X GET localhost:9200/books/book/1
    curl —X GET localhost:9200/books/book/1/_source

    View Slide

  33. ݕࡧ - Query DSL
    !33
    curl -XGET ‘localhost:9200/books/doc/_search' -d '{
    "query": {
    "bool": {
    "must": [
    { "match": { "title": "Search" }},
    { "match": { "content": "Elasticsearch" }}
    ],
    "filter": [
    { "term": { "status": "published" }},
    { "range": { "publish_date": { "gte": "2015-01-01" }}}
    ]
    }
    }
    }'

    View Slide

  34. ෼ࢄߏ੒ɺ

    εέʔϧ

    View Slide

  35. γϟʔυͱϨϓϦΧ
    !35
    node 1
    orders
    products
    1
    4
    1 2
    2
    3
    curl -X PUT localhost:9200/orders -d '{
    "settings.index.number_of_shards" : 4
    "settings.index.number_of_replicas" : 1
    }'
    curl -X PUT localhost:9200/products -d '{
    "settings.index.number_of_shards" : 2
    "settings.index.number_of_replicas" : 0
    }'

    View Slide

  36. γϟʔυͱϨϓϦΧ
    !36
    node 1
    orders
    products
    1
    4
    1
    node 2
    orders
    products
    2
    2
    3 4
    1 2
    3

    View Slide

  37. ࣗಈతͳ෼ࢄ
    !37
    node 1
    orders
    products
    2
    1
    4
    1
    node 2
    orders
    products
    2
    2
    node 3
    orders
    products
    3 4
    1
    3

    View Slide

  38. !38

    View Slide

  39. 39
    Kibana
    Window into the Elastic Stack
    ՄࢹԽͱ෼ੳ ஍ཧۭؒ ΧελϚΠζͱ
    Ϩϙʔτͷڞ༗
    άϥϑ୳ࡧ Elastic Stack΁ͷ
    ηΩϡΞͳΞΫηεͱ؅ཧ
    ΧελϜAppsͷ࡞੒

    View Slide

  40. !40
    Kibana 6

    View Slide

  41. !41
    Elastic Stackͷߏ੒
    Beats
    Log
    Files
    Metrics
    Wire
    Data
    your{beat}
    Kibana
    Instances
    Kafka
    Distributed
    Message
    Queue
    Notification
    Queues Storage Metrics
    Data
    Store
    Web
    APIs
    Social Sensors
    Elasticsearch
    Nodes
    Logstash
    Nodes

    View Slide

  42. !42
    ΞϓϦέʔγϣϯͷ

    ؂ࢹϙΠϯτ

    View Slide

  43. !43
    ؂ࢹϙΠϯτ
    • ֎ܗ؂ࢹ
    • ϝτϦοΫʢϝτϦΫεʣ
    • αʔόʔɺΞϓϦέʔγϣϯ
    • ϩά
    • ΞϓϦέʔγϣϯͷϦϦʔελΠϛϯά
    • ෼ࢄτϨʔγϯά

    View Slide

  44. !44
    ֎ܗ؂ࢹ
    • ࢮ׆؂ࢹ
    • ϓϩηε
    • HTTPαʔόʔ
    • TCP
    • ICMP

    View Slide

  45. Lightweight
    Shipper for
    Uptime
    Monitoring
    Heartbeat

    View Slide

  46. !46
    ϝτϦοΫ
    • αʔόʔ
    • CPUɺϝϞϦɺσΟεΫɺωοτϫʔΫI/Oɺϓϩηε਺
    • ΞϓϦέʔγϣϯ
    • ϦΫΤετ਺ɺίωΫγϣϯ਺ɺॲཧ࣌ؒ
    • ίϯςφʔ
    • ίϯςφ਺

    View Slide

  47. Collect system
    and application
    metrics
    Metricbeat

    View Slide

  48. lots of modules
    Metricbeat

    View Slide

  49. !49
    Metricbeat Ϟδϡʔϧ
    ● Aerospike module
    ● Apache module
    ● Ceph module
    ● Couchbase module
    ● Docker module
    ● Dropwizard module
    ● Elasticsearch module
    ● Etcd module
    ● Golang module
    ● Graphite module
    ● HAProxy module
    ● HTTP module
    ● Jolokia module
    ● Kafka module
    ● Kibana module
    ● Kubernetes module
    ● kvm module
    ● Logstash module
    ● Memcached module
    ● MongoDB module
    ● Munin module
    ● MySQL module
    ● Nginx module

    ● PHP_FPM module
    ● PostgreSQL module
    ● Prometheus module
    ● RabbitMQ module
    ● Redis module
    ● System module
    ● uwsgi module
    ● vSphere module
    ● Windows module
    ● ZooKeeper module


    View Slide

  50. !50
    ϩά
    • ΞΫηεϩά
    • γεςϜϩά
    • ೝূϩά
    • εϩʔϩά
    • ΞϓϦέʔγϣϯϩά

    View Slide

  51. tail log from
    file
    Filebeat

    View Slide

  52. many modules
    Filebeat

    View Slide

  53. Filebeat modules - v6.4.2
    • Apache2 module
    • Auditd module
    • Icinga module
    • IIS module
    • Kafka module
    • Logstash module
    • MongoDB module
    • MySQL module
    • Nginx module
    • Osquery module
    • PostgreSQL module
    • Redis module
    • System module
    • Traefik module

    View Slide

  54. Welcome
    to 1998
    winlogbeat

    View Slide

  55. Now
    winlogbeat

    View Slide

  56. Capture the
    Packet
    Packetbeat

    View Slide

  57. Capture the
    Packet
    Packetbeat

    View Slide

  58. !58
    ΞϓϦέʔγϣϯͷϦϦʔελΠϛϯά
    • όάϑΟοΫεϦϦʔε
    • ৽ػೳϦϦʔε
    • ৽αʔϏε։࢝
    • αʔόʔ૿ڧ

    View Slide

  59. !59
    ෼ࢄτϨʔγϯά
    • ϚΠΫϩαʔϏε
    • 1ͭͷϦΫΤετʹରͯ͠ෳ਺ͷϓϩηε͕ؔ܎
    • ΞϓϦέʔγϣϯύϑΥʔϚϯεϞχλϦϯάͷ1ͭ

    View Slide

  60. !60

    View Slide

  61. !61
    Elastic APM

    View Slide

  62. Distributed Tracing
    Beta | Basic (free)
    શͯͷܭଌ͞ΕͨαʔϏεΛݟΔͨΊͷ
    ౷߹͞ΕͨϏϡʔ
    αϒίϯςΩετ಺ͷτϨʔεʹભҠ
    OpenTracing ޓ׵

    View Slide

  63. !63
    ͦͷ΄͔ͷศརͳػೳ
    • Infra UI
    • Logs UI
    • Machine Learning
    • Alerting

    View Slide

  64. Infrastructure Solution
    Beta | Basic (free)
    ΠϯϑϥΦϖϨʔλʔ޲͚ʹಛԽ
    Λ௒͑ΔΠϯϑϥͷߏ੒Λ၆ᛌ
    ,VCFSOFUFTɺ%PDLFSͷωΠςΟϒαϙʔ
    τ
    ϝτϦοΫɺϩάɺ"1.Ϗϡʔ΁ͷ

    υϦϧɾμ΢ϯ
    ΞυϗοΫ͓Αͼߏ଄Խݕࡧ

    View Slide

  65. Logs Solution
    Beta | Basic (free)
    ϥΠϒͰϩάͷτϥϒϧγϡʔςΟϯά
    Λॿ͚ΔܰྔͳϩάϏϡʔΞʔ
    ίϯιʔϧͷΑ͏ͳදࣔ
    UBJMGͷΑ͏ͳ
    ϥΠϒɾϩάɾετϦʔ
    ϛϯά
    ཤྺϩάͷແݶεΫϩʔϧ
    ΞυϗοΫ͓Αͼߏ଄Խݕࡧ

    View Slide

  66. !66

    View Slide

  67. !67

    View Slide

  68. !68

    View Slide

  69. !69
    ͞Βʹ׆༻͢Δʹ͸ʁ

    View Slide

  70. !70

    View Slide

  71. !71

    View Slide

  72. ͦͷଞͷ࢖͍ํ
    !72

    View Slide

  73. !73
    σʔλͷొ࿥ํ๏
    • Kibanaͷαϯϓϧσʔλʢ6.4͔Βʣ
    • LogstashͰJDBC input
    • LogstashͰCSV
    • FilebeatͰΞΫηεϩά
    • MetricbeatͰϝτϦοΫ
    • PacketbeatͰMySQL/PostgreSQLͷύέοτղੳ

    View Slide

  74. !74
    Kibanaͷαϯϓϧσʔλʢ>= 6.4.0ʣ

    View Slide

  75. !75
    ϫϯΫϦοΫͰσʔλొ࿥

    View Slide

  76. !76
    LogstashͰJDBC Input
    Kibana
    Instances
    Data
    Store
    Elasticsearch
    Nodes
    Logstash
    Nodes

    View Slide

  77. !77
    JDBC Input

    View Slide

  78. !78
    LogstashͰCSV
    Kibana
    Instances
    CSV

    File
    Elasticsearch
    Nodes
    Logstash
    Nodes

    View Slide

  79. !79
    CSV filter

    View Slide

  80. !80
    FilebeatͰΞΫηεϩά
    Beats
    Log
    Files
    Kibana
    Instances
    Elasticsearch
    Nodes

    View Slide

  81. • 2ͭͷElasticsearchϓϥάΠϯΛΠϯετʔϧͯ͠ElasticsearchΛىಈ
    • Filebeatͷapache2ϞδϡʔϧΛ༗ޮԽ
    • modules.d/apache2.ymlʹΞΫηεϩάͷύεΛઃఆ
    • setupίϚϯυΛ࣮ߦ͔ͯ͠ΒFilebeatΛىಈ
    !81
    FilebeatͰΞΫηεϩά

    View Slide

  82. MetricbeatͰϝτϦοΫ
    Beats
    Metrics
    Kibana
    Instances
    Elasticsearch
    Nodes

    View Slide

  83. • MetricbeatͷsystemϞδϡʔϧΛ༗ޮԽ
    • setupίϚϯυΛ࣮ߦ͔ͯ͠ΒFilebeatΛىಈ
    !83
    MetricbeatͰϝτϦοΫ

    View Slide

  84. !84
    PacketbeatͰMySQLɺPostgreSQLͷύέοτղੳ
    Beats
    Wire
    Data
    Kibana
    Instances
    Elasticsearch
    Nodes

    View Slide

  85. !85
    ࢀߟจݙ
    • Elasticsearch - The Definitive guide
    ‒ http://www.elastic.co/guide/en/elasticsearch/guide/current/
    index.html
    • ॻ੶ʢ೔ຊޠʣ
    ‒ σʔλ෼ੳج൫ߏஙೖ໳
    ‒ Elasticsearch࣮ફΨΠυ

    View Slide

  86. !86
    ࢀߟจݙ
    • ೖ໳ ؂ࢹ

    ―ϞμϯͳϞχλϦϯάͷͨΊͷσβΠϯύλʔϯ

    Mike JulianɹஶɺদӜ ൏ਓɹ༁


    https://www.oreilly.co.jp/books/9784873118642/

    View Slide

  87. !87
    ࢀߟαΠτ
    • Ϣʔεέʔε
    • https://www.elastic.co/use-cases
    • DiscussʢWebϑΥʔϥϜʣ
    • https://discuss.elastic.co
    • Elastic{ON}ͷϏσΦͱࢿྉ
    • https://www.elastic.co/elasticon/videos
    • αϙʔτϝχϡʔ
    • https://www.elastic.co/subscriptions

    View Slide

  88. Thank you!
    ● Web : https://www.elastic.co/jp/
    ● Forums : https://discuss.elastic.co/
    ● Twitter : @johtani

    View Slide