91
āļĢāļ°āļšāļšāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļīāļ§āđ€āļ•āļ­āļĢāđŒ Log Management System āļ—āļąāļāļžāļ‡āļĻāđŒ āļšāļļāļāļ—āļąāđˆāļ‡ Takpong Boontung āļŠāļēāļĢāļ™āļīāļžāļ™āļ˜āđŒāļ™āļĩ āđ‰āđ€āļ›āđ‡āļ™āļŠāđˆāļ§āļ™āļŦāļ™āļķ āđˆāļ‡āļ‚āļ­āļ‡āļāļēāļĢāļĻāļķāļāļĐāļē āļŦāļĨāļąāļāļŠāļđāļ•āļĢāļ§āļīāļ—āļĒāļēāļĻāļēāļŠāļ•āļĢāļĄāļŦāļēāļšāļąāļ“āļ‘āļīāļ• āļŠāļēāļ‚āļēāļ§āļīāļŠāļēāļ§āļīāļĻāļ§āļāļĢāļĢāļĄāđ€āļ„āļĢāļ·āļ­āļ‚āđˆāļēāļĒāđāļĨāļ°āļ„āļ§āļēāļĄāļĄāļą āđˆāļ™āļ„āļ‡ āļ›āļĨāļ­āļ”āļ āļąāļĒāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ āļ„āļ“āļ°āļ§āļīāļ—āļĒāļēāļāļēāļĢāđāļĨāļ°āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ āļĄāļŦāļēāļ§āļīāļ—āļĒāļēāļĨāļąāļĒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļĄāļŦāļēāļ™āļ„āļĢ āļ›āļĩāļāļēāļĢāļĻāļķāļāļĐāļē 2562

Takpong Boontung - msit.mut.ac.th

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Takpong Boontung - msit.mut.ac.th

āļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

Log Management System

āļ—āļāļžāļ‡āļĻ āļšāļāļ—āļ‡

Takpong Boontung

āļŠāļēāļĢāļ™āļžāļ™āļ˜āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļŦāļ™āļ‡āļ‚āļ­āļ‡āļāļēāļĢāļĻāļāļĐāļē

āļŦāļĨāļāļŠāļ•āļĢāļ§āļ—āļĒāļēāļĻāļēāļŠāļ•āļĢāļĄāļŦāļēāļšāļ“āļ‘āļ• āļŠāļēāļ‚āļēāļ§āļŠāļēāļ§āļĻāļ§āļāļĢāļĢāļĄāđ€āļ„āļĢāļ­āļ‚āļēāļĒāđāļĨāļ°āļ„āļ§āļēāļĄāļĄāļ™āļ„āļ‡

āļ›āļĨāļ­āļ”āļ āļĒāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ

āļ„āļ“āļ°āļ§āļ—āļĒāļēāļāļēāļĢāđāļĨāļ°āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ

āļĄāļŦāļēāļ§āļ—āļĒāļēāļĨāļĒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĄāļŦāļēāļ™āļ„āļĢ

āļ›āļāļēāļĢāļĻāļāļĐāļē 2562

Page 2: Takpong Boontung - msit.mut.ac.th

I

āļŦāļ§āļ‚āļ­āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

Log Management System

āļ™āļāļĻāļāļĐāļē āļ—āļāļžāļ‡āļĻ āļšāļāļ—āļ‡

āļĢāļŦāļŠāļ™āļāļĻāļāļĐāļē 6127810001

āļŦāļĨāļāļŠāļ•āļĢ āļŦāļĨāļāļŠāļ•āļĢāļ§āļ—āļĒāļēāļĻāļēāļŠāļ•āļĢāļĄāļŦāļēāļšāļ“āļ‘āļ• āļŠāļēāļ‚āļēāļ§āļŠāļēāļ§āļĻāļ§āļāļĢāļĢāļĄāđ€āļ„āļĢāļ­āļ‚āļēāļĒāđāļĨāļ°āļ„āļ§āļēāļĄāļĄāļ™āļ„āļ‡

āļ›āļĨāļ­āļ”āļ āļĒāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ

āļ›āļāļēāļĢāļĻāļāļĐāļē 2562

āļ­āļēāļˆāļēāļĢāļĒāļ—āļ›āļĢāļāļĐāļē āļœāļĻ.āļ”āļĢ.āļŠāļĢāļ“āļžāļĢ āļ āļĄāļ§āļ’āļŠāļēāļĢ

āļšāļ—āļ„āļ”āļĒāļ­

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āđ€āļĢāļ­āļ‡āļĢāļ°āļšāļšāļ„āļ™āļŦāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļžāļ­āđƒāļŦāļāļēāļĢāļ„āļ™āļŦāļē

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļ›āļ™āđ„āļ›āđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĒāļāļ”

āļŦāļĢāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļĒāļ­āļ™āļŦāļĨāļ‡āđ„āļ”āļ‡āļēāļĒ āļĢāļ§āļĄāļ–āļ‡āļ‚āļ­āļĄāļĨāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ•āļēāļ‡ āđ† āđ€āļžāļ­āđ€āļ›āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨ

āļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļ”āļ­āļĒāļēāļ‡āļ–āļāļ•āļ­āļ‡

āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđāļˆāļ‡āđ€āļ•āļ­āļ™āļ›āļāļŦāļēāļ āļĒāļ„āļāļ„āļēāļĄāļ—āļ­āļēāļˆāļˆāļ°āđ€āļāļ”āļ‚āļ™āļāļšāļĢāļ°āļšāļšāļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ āđ‚āļ”āļĒāļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢ

āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļĄāļ­āļĒāđƒāļ™āļĢāļ°āļšāļšāļĄāļēāđƒāļŠāļ‡āļēāļ™āđ€āļžāļ­āđƒāļŦāđ€āļāļ”āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļĄāļēāļāļĒāļ‡āļ‚āļ™ āļ‹āļ‡āļ āļĒāļ„āļāļ„āļēāļĄāļ­āļēāļˆāļˆāļ°āļĄāļēāļˆāļēāļ

āļšāļ„āļ„āļĨāļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āļāļĢ āļŦāļĢāļ­āļšāļ„āļ„āļĨāļ āļēāļĒāļ™āļ­āļāļ—āđ„āļĄāļ›āļĢāļ°āļŠāļ‡āļ„āļ”āļāļšāļ­āļ‡āļ„āļāļĢ āđ€āļĄāļ­āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ āļĒ

āļ„āļāļ„āļēāļĄāđ„āļ”āļ—āļ™āļ—āļ§āļ‡āļ— āļāļˆāļ°āļ— āļēāđƒāļŦāļĨāļ”āļˆ āļēāļ™āļ§āļ™āļ āļĒāļ„āļāļ„āļēāļĄāđ„āļ” āļ­āļāļ—āļ‡āļĒāļ‡āļĨāļ”āļ āļēāļĢāļ°āļœāļ”āđāļĨāļĢāļ°āļšāļšāđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš

āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđāļĨāļ°āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ” āļēāđ€āļ™āļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āļ§āđ€āļ„āļĢāļēāļ°āļŦ āđāļāđ„āļ‚āļ›āļāļŦāļēāļ‚āļ­āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“

āļ•āļēāļ‡ āđ† āļ—āđ€āļāļ”āļ‚āļ™āđ„āļ” āļ‹āļ‡āļ§āļ˜āļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļāļēāļĢāļ™ āļēāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļĄāļēāļˆāļēāļ Open Source āļĄāļēāļžāļ’āļ™āļē

āđ€āļžāļĄāđ€āļ•āļĄ āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļšāđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž āđāļĨāļ°āđ„āļĄāđ€āļŠāļĒāļ„āļēāđƒāļŠāļˆāļēāļĒ

Page 3: Takpong Boontung - msit.mut.ac.th

II

āļāļ•āļ•āļāļĢāļĢāļĄāļ›āļĢāļ°āļāļēāļĻ

āļŠāļēāļĢāļ™āļžāļ™āļ˜āļ‰āļšāļšāļ™āļŠāļēāļĄāļēāļĢāļ–āļŠ āļēāđ€āļĢāļˆāđ„āļ”āļ•āļēāļĄāļ„āļ§āļēāļĄāļĄāļ‡āļŦāļĄāļēāļĒāļ‹āļ‡āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļāļĢāļ“āļēāļˆāļēāļāļ­āļēāļˆāļēāļĢāļĒāļ—āļ›āļĢāļāļĐāļē

āļŠāļēāļĢāļ™āļžāļ™āļ˜ āļœāļĻ.āļ”āļĢ.āļŠāļĢāļ“āļžāļĢ āļ āļĄāļ§āļ’āļŠāļēāļĢ āđāļĨāļ° āļ­āļēāļˆāļēāļĢāļĒāļŠāļĢāļāļēāļĢ āļ”āļ§āļ‡āļœāļēāļŠāļ‚ āļ—āđ„āļ”āđ€āļŠāļ™āļ­āđāļ™āļ°āđāļ™āļ§āļ—āļēāļ‡āđƒāļ™āļāļēāļĢāļ— āļē

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āļĢāļ§āļĄāļ–āļ‡āđ„āļ”āļŠāļĨāļ°āđ€āļ§āļĨāļēāđƒāļŦāļ„ āļēāļ›āļĢāļāļĐāļēāđāļ™āļ°āļ™ āļēāđ€āļžāļ­āļ›āļĢāļšāļ›āļĢāļ‡āđāļāđ„āļ‚āļ‚āļ­āļšāļāļžāļĢāļ­āļ‡āļ”āļēāļ™āļ•āļēāļ‡ āđ† āļˆāļ™āļŠāļēāļĄāļēāļĢāļ–

āļ™ āļēāļ„āļ§āļēāļĄāļĢāļ—āđ„āļ”āļĄāļēāļžāļ’āļ™āļēāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āđ„āļ”āđ€āļŠāļĢāļˆāļŠāļ™

āļŠāļ”āļ—āļēāļĒāļ™āļ‚āļ­āļ‚āļ­āļšāļ„āļ“āļœāļĄāļžāļĢāļ°āļ„āļ“āļ—āļāļ—āļēāļ™āļ—āļ„āļ­āļĒāđƒāļŦāļ„ āļēāļ›āļĢāļāļĐāļēāđāļĨāļ°āļ āļēāļĨāļ‡āđƒāļˆ āđāļĨāļ°āļŦāļēāļāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ‰āļšāļšāļ™

āļĄāļ‚āļ­āļœāļ”āļžāļĨāļēāļ”āļ›āļĢāļ°āļāļēāļĢāđƒāļ” āļ‚āļēāļžāđ€āļˆāļēāļœāļˆāļ”āļ— āļēāļ•āļ­āļ‡āļ‚āļ­āļ­āļ āļĒāļĄāļē āļ“ āļ—āļ™āļ”āļ§āļĒ

āļ—āļāļžāļ‡āļĻ āļšāļāļ—āļ‡

āļĄāļ™āļēāļ„āļĄ 2563

Page 4: Takpong Boontung - msit.mut.ac.th

III

āļŠāļēāļĢāļšāļ

āļšāļ—āļ„āļ”āļĒāļ­ ............................................................................................................................................. I

āļāļ•āļ•āļāļĢāļĢāļĄāļ›āļĢāļ°āļāļēāļĻ ............................................................................................................................... II

āļŠāļēāļĢāļšāļ ................................................................................................................................................ III

āļŠāļēāļĢāļšāļāļ āļēāļž ......................................................................................................................................... V

āļŠāļēāļĢāļšāļāļ•āļēāļĢāļēāļ‡ ...................................................................................................................................... VIII

āļšāļ—āļ— 1 ................................................................................................................................................. 1

1.1 āļ„āļ§āļēāļĄāđ€āļ›āļ™āļĄāļēāđāļĨāļ°āļ„āļ§āļēāļĄāļŠ āļēāļ„āļāļ‚āļ­āļ‡āļ›āļāļŦāļē .......................................................................................... 1

1.2 āļ›āļāļŦāļēāđāļĨāļ°āđāļĢāļ‡āļˆāļ‡āđƒāļˆ ........................................................................................................................ 1

1.3 āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđāļāļ›āļāļŦāļē .................................................................................................................... 2

1.4 āļ§āļ•āļ–āļ›āļĢāļ°āļŠāļ‡āļ„āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ .............................................................................................................. 2

1.5 āļ‚āļ­āļšāđ€āļ‚āļ•āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™..................................................................................................................... 3

1.6 āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļŠāļēāļĢāļ™āļžāļ™āļ˜ ................................................................................................................ 4

āļšāļ—āļ— 2 ................................................................................................................................................. 5

2.1 āļĢāļ°āļšāļš Log Management System .................................................................................................. 5

2.2 āļĢāļ°āļšāļš Messaging System ............................................................................................................ 6

2.3 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļ—āļ™ āļēāļĄāļēāđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļš ......................................................................................... 10

2.3.1 Elastic Stack ............................................................................................................................. 10

2.3.1 Logstash ................................................................................................................................ 13

2.3.2 Kibana .................................................................................................................................... 13

2.3.4 Beats ...................................................................................................................................... 14

2.3.5 Apache Kafka ........................................................................................................................ 15

2.4 āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ .............................................................. 19

2.4.1 āļ„āļ§āļēāļĄāļ—āļēāļ—āļēāļĒāļ‚āļ­āļ‡āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ .................................................................... 19

2.4.2 āļ›āļāļŦāļēāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ ................................................................................ 20

2.4.3 āļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļēāđƒāļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ ..................................................... 21

Page 5: Takpong Boontung - msit.mut.ac.th

IV

āļŠāļēāļĢāļšāļ (āļ•āļ­)

āļšāļ—āļ— 3 ................................................................................................................................................. 32

3.1 āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļĢāļ°āļšāļš ......................................................................................................................... 32

3.2 āļāļēāļĢāļ­āļ­āļāđāļšāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļĢāļ°āļšāļš ................................................................................................... 33

3.3 āļāļēāļĢāļ­āļ­āļāđāļšāļšāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļš ........................................................................................................ 34

3.3.1 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ CentOS Linux ................................................................................... 34

3.3.2 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš Elasticsearch, Logstash āđāļĨāļ° Kibana ............................................................... 34

3.3.3 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš NGINX .............................................................................................................. 35

3.3.4 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš Apache Kafka ................................................................................................... 36

3.3.5 āļ­āļ­āļāđāļšāļšāļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ (Parser Logs) .................................................................................. 36

āļšāļ—āļ— 4 ................................................................................................................................................. 41

4.1 āļ§āļ˜āļāļēāļĢāđāļĨāļ°āļŠāļ āļēāļžāđāļ§āļ”āļĨāļ­āļĄāļ‚āļ­āļ‡āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡ ....................................................................................... 41

4.1.1 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ .................................... 42

4.1.2 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ• ............................................................................... 43

4.1.3 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāļˆāļ”āļ— āļēāļĢāļēāļĒāļ‡āļēāļ™ ...................................................................................................... 43

4.2 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡ ................................................................................................................................ 43

4.2.1 āļœāļĨāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļĢāļ°āļšāļš āđāļĨāļ°āļ—āļ”āļŠāļ­āļšāļŠāļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡ ............................................................... 43

4.2.2 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ• .......................................................................... 50

4.2.3 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāļˆāļ”āļ— āļēāļĢāļēāļĒāļ‡āļēāļ™ .................................................................................................. 55

āļšāļ—āļ— 5 ................................................................................................................................................. 57

5.1 āļŠāļĢāļ›āļœāļĨāļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™ .................................................................................................................... 57

5.2 āļ›āļāļŦāļēāđāļĨāļ°āļ­āļ›āļŠāļĢāļĢāļ„āļ‚āļ­āļ‡āļāļēāļĢāļ” āļēāđ€āļ™āļ™āļāļēāļĢ............................................................................................ 57

5.3 āļ‚āļ­āļˆ āļēāļāļ”āđāļĨāļ°āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđāļāđ„āļ‚āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ ................................................................................... 57

5.4 āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ•āļ­āđ„āļ›āđƒāļ™āļ­āļ™āļēāļ„āļ• ................................................................................... 58

āđ€āļ­āļāļŠāļēāļĢāļ­āļēāļ‡āļ­āļ‡ ...................................................................................................................................... 59

āļ­āļāļĐāļĢāļĒāļ­āđāļĨāļ°āļ„ āļēāļˆ āļēāļāļ”āļ„āļ§āļēāļĄ .................................................................................................................. 60

āļ āļēāļ„āļœāļ™āļ§āļ āļ ........................................................................................................................................ - 1 -

Page 6: Takpong Boontung - msit.mut.ac.th

V

āļŠāļēāļĢāļšāļāļ āļēāļž

āļ āļēāļžāļ— 1 āļĢāļ°āļšāļš Messaging System āđƒāļ™āđāļšāļš PTP .............................................................................. 7

āļ āļēāļžāļ— 2 āļĢāļ°āļšāļš Messaging System āđƒāļ™āđāļšāļš Pub-Sub ....................................................................... 8

āļ āļēāļžāļ— 3 Messaging System āđƒāļ™āđāļšāļš AQMP .................................................................................... 8

āļ āļēāļžāļ— 4 āļĢāļ›āđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Broker āđāļšāļšāļ•āļēāļ‡ āđ† ........................................................................... 9

āļ āļēāļžāļ— 5 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļš ELK āļ—āđƒāļŠāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ ......................................................................... 14

āļ āļēāļžāļ— 6 āļŠāļ–āļēāļ›āļ•āļĒāļāļĢāļĢāļĄāļ‚āļ­āļ‡ Kafka ................................................................................................... 15

āļ āļēāļžāļ— 7 āļ‚āļ­āļĄāļĨāļ—āļˆāļ”āđ€āļāļšāđƒāļ™ Partitions āļ‚āļ­āļ‡ Kafka ............................................................................. 16

āļ āļēāļžāļ— 8 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļĢāļ°āļŦāļ§āļēāļ‡ Producer -> Broker -> Consumer ...................................................... 17

āļ āļēāļžāļ— 9 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Kafka Cluster ........................................................................................... 17

āļ āļēāļžāļ— 10 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Kafka āđ‚āļ”āļĒāđāļĒāļ Topic .............................................................................. 18

āļ āļēāļžāļ— 11 āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ‚āļ­āļ‡ Offset āđƒāļ™ Kafka ..................................................................................... 18

āļ āļēāļžāļ— 12 āļāļĨāļĄāļ‚āļ­āļ‡ Consumer āļ—āļ— āļēāļŦāļ™āļēāļ—āđ€āļ”āļĒāļ§āļāļ™āđƒāļ™ Kafka ........................................................... 18

āļ āļēāļžāļ— 13 āļ•āļ§āļ­āļĒāļēāļ‡ Logs āļ—āđ„āļĄāļĄāļĢāļ›āđāļšāļšāļ•āļēāļĒāļ•āļ§āļŦāļĢāļ­āļ„āļ§āļēāļĄāļŠāļ­āļ”āļ„āļĨāļ­āļ‡āļāļ™ .............................................. 20

āļ āļēāļžāļ— 14 Logstash Pipeline .......................................................................................................... 22

āļ āļēāļžāļ— 15 āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡ Filter Logstash Pipeline ............................................................................. 27

āļ āļēāļžāļ— 16 āļ•āļ§āļāļĢāļ­āļ‡ GeoIP ............................................................................................................... 31

āļ āļēāļžāļ— 17 āļ āļēāļžāļĢāļ§āļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ ......................................................................... 32

āļ āļēāļžāļ— 18 āđāļœāļ™āļœāļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ­āļ­āļāđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ .............................................. 33

āļ āļēāļžāļ— 19 āļŦāļ™āļēāļˆāļ­āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ CentOS Version 7 ...................................................... 34

āļ āļēāļžāļ— 20 āļŦāļ™āļēāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‹āļ­āļŸāļ—āđāļ§āļĢ Kibana .............................................................................. 35

āļ āļēāļžāļ— 21 āļāļēāļĢāļ•āļ‡āļ„āļē NGINX ............................................................................................................ 35

āļ āļēāļžāļ— 22 āļ āļēāļž Kafka āļĢāļ›āđāļšāļš Single Node.................................................................................... 36

āļ āļēāļžāļ— 23 āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger āđƒāļ™ Kibana ............................................ 37

āļ āļēāļžāļ— 24 āļ āļēāļžāļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger .......................................... 38

āļ āļēāļžāļ— 25 Field Data āļ—āđ„āļ”āļˆāļēāļāļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern .................................................................... 38

āļ āļēāļžāļ— 26 āļāļēāļĢāļ™ āļē Grok Pattern āđ„āļ›āđƒāļŠāđƒāļ™ Logstash .......................................................................... 38

āļ āļēāļžāļ— 27 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļˆāļēāļ Beats .......................................................................... 39

āļ āļēāļžāļ— 28 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ Syslog ............................................................................... 39

āļ āļēāļžāļ— 29 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļˆāļēāļ Kafka .......................................................................... 39

āļ āļēāļžāļ— 30 āļāļēāļĢāđ€āļ‚āļĒāļ™ Tags Filter āđ€āļžāļ­āļĢāļ°āļšāļ­āļ›āļāļĢāļ“ ............................................................................. 40

Page 7: Takpong Boontung - msit.mut.ac.th

VI

āļŠāļēāļĢāļšāļāļ āļēāļž (āļ•āļ­)

āļ āļēāļžāļ— 31 āļāļēāļĢāđ€āļ‚āļĒāļ™ Output Filter āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Elasticsearch ...................................................... 40

āļ āļēāļžāļ— 32 āđāļœāļ™āļœāļ‡āļ āļēāļžāļ§āļ˜āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ ..................................................................... 41

āļ āļēāļžāļ— 33 āļŦāļ™āļēāļĨāļ­āļāļ­āļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ ................. 42

āļ āļēāļžāļ— 34 āļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāļ­āļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ ........... 43

āļ āļēāļžāļ— 35 āļ āļēāļžāļŦāļ™āļēāļˆāļ­ Remote Gateway āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ€āļžāļ­āļ—āļ”āļŠāļ­āļš ........................................ 44

āļ āļēāļžāļ— 36 āļ āļēāļžāļŦāļ™āļēāļˆāļ­āļāļēāļĢ remote āļœāļēāļ™ Remote Gateway āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ€āļžāļ­āļ—āļ”āļŠāļ­āļš .............. 44

āļ āļēāļžāļ— 37 āļ— āļēāļāļēāļĢ run script āļšāļ™ Attacker (Kali Linux) .................................................................... 45

āļ āļēāļžāļ— 38 āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļŦāļ•āļāļēāļĢāļ“āļšāļ™āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ SNORT-NIDS ........................ 45

āļ āļēāļžāļ— 39 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ Gateway Firewall .............................. 46

āļ āļēāļžāļ— 40 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS ................................... 46

āļ āļēāļžāļ— 41 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS ................................................................. 47

āļ āļēāļžāļ— 42 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļ— āļēāļāļēāļĢāđāļĒāļāļŸāļĨāļ”āđāļĨāļ§āļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS ................................ 47

āļ āļēāļžāļ— 43 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļ–āļāđ‚āļˆāļĄāļ•āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux ......................... 47

āļ āļēāļžāļ— 44 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļ— āļēāļāļēāļĢāđāļĒāļāļŸāļĨāļ”āļ—āļŠāļ‡āļĄāļēāļˆāļēāļāđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux ................................ 48

āļ āļēāļžāļ— 45 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļ”āļ§āļĒ Brute Force ................... 48

āļ āļēāļžāļ— 46 āļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļāđ€āļžāļ­āļ‚āļ­ API āļ— openweathermap.org āđ€āļžāļ­āļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡ .................. 49

āļ āļēāļžāļ— 47 āļŠāļĢāļēāļ‡ Python Script āđƒāļ™āļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Apache Kafka ............... 49

āļ āļēāļžāļ— 48 āļ‚āļ­āļĄāļĨāļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļ Apache Kafka āđ€āļ‚āļēāļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļšāļ™āļĢāļ°āļšāļš ......................................... 50

āļ āļēāļžāļ— 49 āļŠāļĢāļēāļ‡ Output Filter āđ€āļžāļ­āļ™ āļēāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļĄāļēāđ€āļāļšāđ€āļ›āļ™āļ‚āļ­āļĄāļĨāļ”āļš........................................ 50

āļ āļēāļžāļ— 50 āļ‚āļ­āļĄāļĨāļ”āļšāļ—āđ„āļ”āļˆāļēāļāļāļēāļĢāļ— āļē Output Filter āļ–āļāđ€āļāļšāđ„āļ§āļšāļ™āļĢāļ°āļšāļš ............................................... 51

āļ āļēāļžāļ— 51 āđ€āļ‚āļēāļŠāđ€āļ§āļšāđ„āļ‹āļ— Line Notify āđ€āļžāļ­āļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļ ..................................................................... 51

āļ āļēāļžāļ— 52 āļŦāļĨāļ‡āļˆāļēāļāļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļāđƒāļŦāđ€āļĨāļ­āļāļ— My Page ........................................................................ 51

āļ āļēāļžāļ— 53 āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Token āđ‚āļ”āļĒāļāļēāļĢāļāļ”āļ— Generate Token .......................................................... 52

āļ āļēāļžāļ— 54 āļāļēāļĢ Generate Token āļ‚āļ­āļ‡ Line Notify ........................................................................... 52

āļ āļēāļžāļ— 55 āļāļēāļĢ Generate Token āļ‚āļ­āļ‡ Line Notify āļˆāļ°āđ„āļ” Token āļĄāļēāđƒāļŠāļ‡āļēāļ™ ........................................ 52

āļ āļēāļžāļ— 56 āļˆāļ°āđ„āļ” Token āļ—āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡āļ‚āļ™āđāļĨāļ°āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āđ„āļ›āļĒāļ‡āļāļĨāļĄāļŦāļĢāļ­āļšāļ„āļ„āļĨāđƒāļ™ Line Account ....... 53

āļ āļēāļžāļ— 57 āļŠāļĢāļēāļ‡ PHP Script āđ€āļžāļ­āļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify API Token .......................... 53

āļ āļēāļžāļ— 58 āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļˆāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify āđ„āļ›āļĒāļ‡ Line Account ................ 54

āļ āļēāļžāļ— 59 āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļˆāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify āđ„āļ›āļĒāļ‡ Line Account ................ 54

āļ āļēāļžāļ— 60 āļāļēāļĢāļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF ................................................................................... 55

Page 8: Takpong Boontung - msit.mut.ac.th

VII

āļŠāļēāļĢāļšāļāļ āļēāļž (āļ•āļ­)

āļ āļēāļžāļ— 61 āļāļēāļĢāļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF āđ€āļŠāļĢāļˆāļŠāļ™ āļŠāļēāļĄāļēāļĢāļ– Download āđ„āļ” .................................. 55

āļ āļēāļžāļ— 62 āļŦāļ™āļēāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF ....................................................................... 56

Page 9: Takpong Boontung - msit.mut.ac.th

VIII

āļŠāļēāļĢāļšāļāļ•āļēāļĢāļēāļ‡

āļ•āļēāļĢāļēāļ‡āļ— 1 Input Plugins āļ‚āļ­āļ‡ Logstash .......................................................................................... 24

āļ•āļēāļĢāļēāļ‡āļ— 2 Output Plugins āļ‚āļ­āļ‡ Logstash ...................................................................................... 25

āļ•āļēāļĢāļēāļ‡āļ— 3 Filter Plugins āļ‚āļ­āļ‡ Logstash ......................................................................................... 25

āļ•āļēāļĢāļēāļ‡āļ— 4 Codec Plugins āļ‚āļ­āļ‡ Logstash ...................................................................................... 26

āļ•āļēāļĢāļēāļ‡āļ— 5 āļāļēāļĢāļ āļēāļŦāļ™āļ”āļŸāļĨāļ”āļ‚āļ­āļĄāļĨ (Field Data) āļ‚āļ­āļ‡ NIDS-Snort āļ—āđƒāļŠāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ ........................... 36

Page 10: Takpong Boontung - msit.mut.ac.th

1

āļšāļ—āļ— 1

āļšāļ—āļ™ āļē

1.1 āļ„āļ§āļēāļĄāđ€āļ›āļ™āļĄāļēāđāļĨāļ°āļ„āļ§āļēāļĄāļŠ āļēāļ„āļāļ‚āļ­āļ‡āļ›āļāļŦāļē

āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļŦāļĄāļēāļĒāļ–āļ‡āļ‚āļ­āļĄāļĨāđ€āļāļĒāļ§āļāļšāļāļēāļĢāļ•āļ”āļ•āļ­āļŠāļ­āļŠāļēāļĢāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āļ‹āļ‡āđāļŠāļ”āļ‡āļ–āļ‡āđāļŦāļĨāļ‡āļ āļēāđ€āļ™āļ”āļ•āļ™āļ—āļēāļ‡ āļ›āļĨāļēāļĒāļ—āļēāļ‡ āđ€āļŠāļ™āļ—āļēāļ‡ āđ€āļ§āļĨāļē āļ§āļ™āļ— āļ›āļĢāļĄāļēāļ“ āļĢāļ°āļĒāļ°āđ€āļ§āļĨāļē āļŠāļ™āļ”āļ‚āļ­āļ‡āļšāļĢāļāļēāļĢ āļŦāļĢāļ­

āļ­āļ™ āđ† āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļāļēāļĢāļ•āļ”āļ•āļ­āļŠāļ­āļŠāļēāļĢāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļāļēāļĢāđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđāļĨāļ°

āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļāļēāļĢāđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ€āļĢāļēāļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļāļšāļ‚āļ­āļĄāļĨāđƒāļ™āļŠāļ§āļ™āļ­āļ™ āđ† āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļš

āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļŠāļ™ āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļĢāļ°āļšāļšāđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒ āļ­āļ›āļāļĢāļ“āđ€āļ„āļĢāļ­āļ‚āļēāļĒ āļŦāļĢāļ­āļ‚āļ­āļĄāļĨāļāļēāļĢ

āđ€āļ‚āļēāļ–āļ‡āļĢāļ°āļšāļšāđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒ āđ€āļ‚āļēāļ–āļ‡āļ­āļ›āļāļĢāļ“āđ€āļ„āļĢāļ­āļ‚āļēāļĒ āđ€āļ›āļ™āļ•āļ™

āđƒāļ™āļ›āļˆāļˆāļšāļ™āļĄāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļĢāļ°āļšāļšāđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĨāļ°āđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ­āļ™āđ€āļ•āļ­āļĢāđ€āļ™āļ•āđ€āļ›āļ™āļŦāļĨāļāđƒāļ™āļāļēāļĢ

āļ•āļ”āļ•āļ­āļŠāļ­āļŠāļēāļĢāļāļ™ āļ‚āļ­āļĄāļĨāļ—āļ§āļ‡āđ€āļ‚āļēāļ­āļ­āļāļˆāļ‡āļœāļēāļ™āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļ­āļ›āļāļĢāļ“āļ—āļĄāļ āļēāļĒāđƒāļ™āļ­āļ‡āļ„āļāļĢ āļĢāļ§āļĄāļ–āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āļŠāļ§āļ™āļšāļ„āļ„āļĨ āļ”āļ‡āļ™āļ™āļ‚āļ­āļĄāļĨāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļˆāļ‡āļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļĨāļ°āļĄāļˆ āļēāļ™āļ§āļ™āļĄāļēāļ āđƒāļ™āļāļēāļĢāļ—āļˆāļ°āļ„āļ™āļŦāļēāđāļĨāļ°āļ§āđ€āļ„āļĢāļēāļ°āļŦ

āļ‚āļ­āļĄāļĨāļˆāļ‡āđ€āļ›āļ™āđ„āļ›āđ„āļ”āļĒāļēāļ āļĢāļ§āļĄāļ–āļ‡āļ‚āļ­āļĄāļĨāļˆāļēāļāļ āļēāļĒāļ™āļ­āļāļ—āļ•āļ­āļ‡āļāļēāļĢāļ™ āļēāļĄāļēāđƒāļŠāļ›āļĢāļ°āđ‚āļĒāļŠāļ™ āļŦāļĢāļ­āđāļĄāļāļĢāļ°āļ—āļ‡āļ āļĒāļ„āļāļ„āļēāļĄ

āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđāļĨāļ°āļāļēāļĢāđ€āļ‚āļēāđƒāļŠāļ‡āļēāļ™āļ—āļœāļ”āļ§āļ•āļ–āļ›āļĢāļ°āļŠāļ‡āļ„ āđ€āļŠāļ™ āļĄāļāļēāļĢāđ€āļ‚āļēāļŠāļĢāļ°āļšāļšāļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒāļ—āđ„āļĄāđ„āļ”āļĢāļšāļ­āļ™āļāļēāļ• āļ”āļ‡āļ™āļ™āļŦāļēāļāđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļŦāļĢāļ­

āļ‚āļ­āļĄāļĨāļ—āļ–āļāļˆāļ”āđ€āļāļšāļĄāļēāļ— āļēāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ–āļ‡āļ āļĒāļ„āļāļ„āļēāļĄāļāļˆāļ°āļ— āļēāđƒāļŦāđ€āļāļ”āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļāļšāļœāđƒāļŠāļ‡āļēāļ™āļĄāļēāļāļĒāļ‡āļ‚āļ™

1.2 āļ›āļāļŦāļēāđāļĨāļ°āđāļĢāļ‡āļˆāļ‡āđƒāļˆ

āļˆāļēāļāļ›āļāļŦāļēāļ‚āļēāļ‡āļ•āļ™āļˆāļ‡āļĄāļĢāļ°āļšāļšāļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ€āļāļ”āļ‚āļ™āļ‹āļ‡āļŠāļ§āļ™āđƒāļŦāļāđ€āļ›āļ™

āļĢāļ›āđāļšāļšāļ—āđ€āļŠāļĒāļ„āļēāđƒāļŠāļˆāļēāļĒ (Commercial) āļŦāļĢāļ­āđƒāļ™āļĢāļ›āđāļšāļšāđ„āļĄāđ€āļŠāļĒāļ„āļēāđƒāļŠāļˆāļēāļĒ (Open Source) āļ—āļ§āđ„āļ›āļ™āļ™ āļ

āļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāđ„āļ”āļ„āļ­āļ™āļ‚āļēāļ‡āļĒāļ‡āļĒāļēāļ āļāļēāļĢāļ—āļˆāļ°āļ§āđ€āļ„āļĢāļēāļ°āļŦāđ€āļŦāļ•āļāļēāļĢāļ“āđ€āļĄāļ­āđ€āļāļ”āļ›āļāļŦāļēāļŦāļĢāļ­āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•āļ—

āđ€āļāļ”āļ‚āļ™āļāļšāļ­āļ‡āļ„āļāļĢ āđ‚āļ”āļĒāļāļēāļĢāļ—āļˆāļ°āđ€āļ‚āļēāđ„āļ›āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āđāļ•āļĨāļ°āļ­āļ›āļāļĢāļ“ āļāļ•āļ­āļ‡āđƒāļŠ

āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļāļ›āļāļŦāļēāļ„āļ­āļ™āļ‚āļēāļ‡āļĄāļēāļ āļ–āļēāđƒāļ™āļ­āļ‡āļ„āļāļĢāļ™āļ™āļĄāļ­āļ›āļāļĢāļ“āļˆ āļēāļ™āļ§āļ™āļĄāļēāļ āļ‹āļ‡āđ„āļ”āđ€āļ›āļ™āđ„āļ›āđ„āļ”āļĒāļēāļ

āđāļĨāļ°āđ€āļŠāļĒāđ€āļ§āļĨāļē āļˆāļ‡āđ„āļ”āđ€āļāļ”āđāļ™āļ§āļ„āļ”āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ™āđ€āļžāļ­āļžāļ’āļ™āļēāļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļžāļ­āđƒāļŦ

āļ•āļ­āļšāđ‚āļˆāļ—āļĒāļ•āļ­āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ āđāļĨāļ°āļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđƒāļŦāļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļšāļĢāļāļēāļĢāļˆāļ”āļāļēāļĢāđāļĨāļ°

āļ›āļĢāļ°āļŦāļĒāļ”āļ„āļēāđƒāļŠāļˆāļēāļĒ

Page 11: Takpong Boontung - msit.mut.ac.th

2

1.3 āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđāļāļ›āļāļŦāļē

āļˆāļēāļāļ›āļāļŦāļēāđāļĨāļ°āđāļĢāļ‡āļˆāļ‡āđƒāļˆ āļˆāļ‡āđ„āļ”āļĻāļāļĐāļēāļ§āļ˜āļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļē āđ‚āļ”āļĒāļ™ āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢ Apache Kafka āđāļĨāļ°

ELK (Elasticsearch, Logstash, Kibana) āļ‹āļ‡āđ€āļ›āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢāđāļšāļš Open Source āļĄāļēāđƒāļŠāļ‡āļēāļ™ āļ‹āļ‡ Apache

Kafka āđ€āļ›āļ™āļĢāļ°āļšāļš Messaging System āļ‹āļ‡āļ— āļēāļ‡āļēāļ™āđƒāļ™āđāļšāļš distributed message queue āļŦāļĄāļēāļĒāļ–āļ‡ āđ€āļ›āļ™

āļĢāļ°āļšāļšāļāļĢāļ°āļˆāļēāļĒāļ‚āļ­āļ„āļ§āļēāļĄāļ—āļ–āļāļ­āļ­āļāđāļšāļšāđƒāļŦāđ€āļ›āļ™āļĻāļ™āļĒāļāļĨāļēāļ‡āđƒāļ™āļāļēāļĢāļĢāļ­āļ‡āļĢāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļĄ

āļ„āļ§āļēāļĄāđ€āļĢāļ§ āđāļĨāļ°āļ›āļĢāļĄāļēāļ“āļĄāļēāļāđ„āļ” āļŠāļ§āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢ ELK Stack āļ™ āļēāļĄāļēāđƒāļŠāđƒāļ™āļāļēāļĢāļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢ

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļ”āļ‡āļēāļĒāļ‚āļ™ āļĄāļēāđƒāļŠāđ€āļžāļ­āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āđ€āļāļš āļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨ āđ„āļ”āļ‡āļēāļĒāđāļĨāļ°

āļŠāļ°āļ”āļ§āļāļĄāļēāļāļ‚āļ™

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļˆāļ”āļ— āļēāđ€āļžāļ­āđƒāļŦāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđāļĨāļ°āļāļēāļĢ

āļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļˆāļēāļāļŦāļĨāļēāļĒ āđ† āđāļŦāļĨāļ‡āļĄāļēāļĢāļ§āļĄāļāļ™āļ—āļĻāļ™āļĒāļāļĨāļēāļ‡ āļ— āļē

āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāđƒāļŦāļ„āļ™āļŦāļē āđāļĒāļāđāļĒāļ° āđāļĨāļ°āļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđ€āļ›āļ™āđ„āļ›āđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđāļĨāļ°

āļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļŦāļēāļ āļĒāļ„āļāļ„āļēāļĄāļ—āļēāļ‡āđ„āļ‹āđ€āļšāļ­āļĢ āđāļĨāļ°āļ‚āļ­āļĄāļĨāļ—āļˆ āļēāđ€āļ›āļ™āđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđāļĨāļ°āđƒāļāļĨāđ€āļ§āļĨāļēāļˆāļĢāļ‡āļ—āļŠāļ” āļŦāļĢāļ­

āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļĒāļ­āļ™āļŦāļĨāļ‡āđ„āļ” āđ‚āļ”āļĒāļ§āļ˜āļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļāļēāļĢāļ™ āļēāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļˆāļēāļ Open Source

āļ—āļ‡āļŦāļĄāļ” āļĄāļēāļ— āļēāļāļēāļĢāļžāļ’āļ™āļē āđ€āļžāļ­āđƒāļŦāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļĄāļēāļāļ‚āļ™ āđāļĨāļ°āđ„āļĄāđ€āļŠāļĒāļ„āļēāđƒāļŠāļˆāļēāļĒ

1.4 āļ§āļ•āļ–āļ›āļĢāļ°āļŠāļ‡āļ„āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

1.4.1 āđ€āļžāļ­āļ™ āļēāļ„āļ§āļēāļĄāļĢāļ”āļēāļ™āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĄāļēāļžāļ’āļ™āļēāļĢāļ°āļšāļš āļāļēāļĢāļ„āļ™āļŦāļēāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļ—āļēāļ‡

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

1.4.2 āđ€āļžāļ­āļ™ āļēāļĢāļ°āļšāļšāļĄāļēāđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž āļ›āļĢāļ°āļŦāļĒāļ”āļ„āļēāđƒāļŠāļˆāļēāļĒ āđāļĨāļ°āļ›āļāļŦāļēāļĨāļ‚āļŠāļ—āļ˜

āđ€āļ™āļ­āļ‡āļˆāļēāļāļ‹āļ­āļŸāđāļ§āļĢāļ—āļ‡āļŦāļĄāļ”āđ€āļ›āļ™ Open Source āđāļĨāļ°āļ•āļ”āļ•āļ‡āļšāļ™āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ Linux

1.4.3 āđ€āļžāļ­āļ™ āļēāļĢāļ°āļšāļšāļĄāļēāđ€āļ›āļ™āļĻāļ™āļĒāļāļĨāļēāļ‡āđƒāļ™āļāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļĄāļ‚āļ™āļēāļ”āđƒāļŦāļ

āđāļĨāļ°āļ­āļ›āļāļĢāļ“āļˆ āļēāļ™āļ§āļ™āļĄāļēāļāđ„āļ” āđ€āļŠāļ™ Firewall, IDS, Linux āļŦāļĢāļ­ Windows

1.4.4 āđ€āļžāļ­āļˆāļ”āļāļēāļĢāļĢāļ°āļšāļšāļœāļēāļ™āļ—āļēāļ‡āļŦāļ™āļēāđ€āļ§āļšāļ­āļ™āđ€āļ•āļ­āļĢāđ€āļŸāļŠāđ„āļ”āđāļĨāļ°āļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāļˆāļēāļāļĻāļ™āļĒāļāļĨāļēāļ‡āđ„āļ”

(Centralized Log Management)

Page 12: Takpong Boontung - msit.mut.ac.th

3

1.5 āļ‚āļ­āļšāđ€āļ‚āļ•āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

1.5.1 āļĻāļāļĐāļēāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āđāļĨāļ°āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‹āļ­āļŸāđāļ§āļĢ ELK āđāļĨāļ° Apache Kafka

1.5.2 āļĻāļāļĐāļēāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡ āđ† āļ—āļˆāļ°āļŠāļ‡āđ€āļ‚āļēāļĄāļēāļ—āļĢāļ°āļšāļš

1.5.3 āļ­āļ­āļāđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļ—āđƒāļŠāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āđ‚āļ”āļĒāļ­āļ­āļāđāļšāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ§āļ˜āļāļēāļĢāļŠāļ‡āđāļĨāļ°āļĢāļš

āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

1.5.4 āļžāļ’āļ™āļēāđāļĨāļ°āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‹āļ­āļŸāđāļ§āļĢ ELK āđāļĨāļ° Apache Kafka āđ‚āļ”āļĒāļ—āļ”āļŠāļ­āļšāļāļēāļĢ

āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ āđāļĨāļ°āļāļēāļĢāļŠāļ‡āđāļĨāļ°āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļĄāļēāļ—āļĢāļ°āļšāļš

1.5.5 āļžāļ’āļ™āļēāļĢāļ›āđāļšāļšāļāļēāļĢāļˆāļ”āđ€āļāļšāđāļĨāļ°āļ—āļ”āļŠāļ­āļšāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡

āđ† āļĄāļēāļ—āļĢāļ°āļšāļš āđ‚āļ”āļĒāļ—āļ”āļŠāļ­āļšāļˆāļēāļāđ€āļ„āļĢāļ­āļ‡āļ•āļ™āļ—āļēāļ‡āļŠāļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļ—āļĢāļ°āļšāļšāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļšāđāļĒāļāļŸāļĨāļ”

āļ‚āļ­āļĄāļĨ (Field)

1.5.6 āļĢāļ°āļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļĨāļ°āđ€āļ§āļšāļ­āļ™āđ€āļ•āļ­āļĢāđ€āļŸāļŠāļŠ āļēāļŦāļĢāļšāļˆāļ”āļāļēāļĢāļĢāļ°āļšāļšāļĄāļāļēāļĢāļžāļŠāļˆāļ™āļ•āļ§āļ•āļ™āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™

āļĢāļ°āļšāļš (Log In) āđāļĨāļ°āļĒāļāđ€āļĨāļāļāļēāļĢāđ€āļ‚āļēāđƒāļŠāļ‡āļēāļ™āļĢāļ°āļšāļš (Log Out)

1.5.7 āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļāļēāļĢāļˆāļ°āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļŠāļ™ Firewall, Net-

work Intrusion Detection System (IDS) āļˆāļēāļ Snort āđāļĨāļ° āļāļēāļĢ Authentication āļšāļ™ Linux āđāļĨāļ° Win-

dows System

1.5.8 āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļŠāļšāļ„āļ™āļ‚āļ­āļĄāļĨāļœāļēāļ™āļŦāļ™āļēāđ€āļ§āļšāļˆāļēāļāļ‚āļ­āļĄāļĨāļ—āļˆāļ”āđ€āļāļšāđ„āļ” āđ€āļŠāļ™ āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢ

āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆāļēāļāļ­āļ›āļāļĢāļ“āđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡ āđ† āđ€āļŠāļ™ āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•āļ”āļ§āļĒāđ€āļ—āļ„āļ™āļ„ Scan Activity,

Brute Force Attack, āđ‚āļ”āļĒāđāļĒāļāđ€āļ›āļ™āļŸāļĨāļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ āđ€āļŠāļ™ Source IP, Destination IP, Rule Name,

Source/Destination Port, Protocol āđāļĨāļ° Priority āđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļĢāļēāļ‡āļ‚āļ­āļĄāļĨāđ„āļ”

1.5.9 āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āļ— āļēāļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāļˆāļēāļāļāļĢāļēāļŸāđƒāļ™āļĢāļ›āđāļšāļšāđāļŠāļ”āļ‡āļŠāļ–āļ•āļ‚āļ­āļĄāļĨ, āļ‚āļ­āļĄāļĨāļŠāļ‡āļŠāļ” 10

āļ­āļ™āļ”āļš āļŦāļĢāļ­āđāļœāļ™āļ āļĄāļ§āļ‡āļāļĨāļĄ

1.5.10 āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“ āđ€āļŠāļ™ Scan Activity, Brute Force Attack āđ„āļ”āļœāļēāļ™āļ—āļēāļ‡

Line Application (Line Notify) āđāļĨāļ°āļĢāļēāļĒāļ‡āļēāļ™āļŠāļĢāļ›āļ‚āļ­āļĄāļĨāđ„āļ”

Page 13: Takpong Boontung - msit.mut.ac.th

4

1.6 āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļŠāļēāļĢāļ™āļžāļ™āļ˜

āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļŠāļēāļĢāļ™āļžāļ™āļ˜āļ‰āļšāļšāļ™āļĄāļ—āļ‡āļŦāļĄāļ” 5 āļšāļ—āļ”āļ§āļĒāļāļ™ āļāļĨāļēāļ§āļ–āļ‡āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āđāļ•āļĨāļ°āļšāļ—āļ”āļ‡āļ™

āļšāļ—āļ— 2 āļāļĨāļēāļ§āļ–āļ‡ āļžāļ™āļāļēāļ™āđāļĨāļ°āļ—āļĪāļĐāļŽāļ•āļēāļ‡ āđ† āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡

āļšāļ—āļ— 3 āļāļĨāļēāļ§āļ–āļ‡ āļĢāļ°āļšāļšāļ—āļ™ āļēāđ€āļŠāļ™āļ­ āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļĢāļ°āļšāļšāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ—āļ­āļ­āļāđāļšāļšāđāļĨāļ°āļžāļ’āļ™āļē āđ€āļžāļ­āđ€āļžāļĄ

āļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļāļš āđāļĨāļ°āļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āļšāļ—āļ— 4 āļāļĨāļēāļ§āļ–āļ‡ āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡ āļ—āđ„āļ”āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āđƒāļ™āļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡

āļšāļ—āļ— 5 āļāļĨāļēāļ§āļ–āļ‡ āļŠāļĢāļ›āļœāļĨāļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™ āđƒāļ™āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āđāļĨāļ°āļ›āļĢāļ°āđ€āļĄāļ™āļœāļĨāđƒāļŠāļ‡āļēāļ™āđƒāļ™āļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡āđāļĨāļ°

āđāļ™āļ§āļ—āļēāļ‡āđƒāļ™āļāļēāļĢāļĻāļāļĐāļēāđāļĨāļ°āļžāļ’āļ™āļēāļĢāļ°āļšāļšāļ•āļ­āđ„āļ›

Page 14: Takpong Boontung - msit.mut.ac.th

5

āļšāļ—āļ— 2

āļ—āļĪāļĐāļŽāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡

āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļžāļ­āđƒāļŦāļ—āļĢāļēāļšāļ–āļ‡āļ›āļāļŦāļēāļŦāļĢāļ­āļ āļĒāļ„āļāļ„āļēāļĄāļ—āļ­āļēāļˆāļˆāļ°

āđ€āļāļ”āļ‚āļ™āđƒāļ™āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĨāļ°āļāļēāļĢāļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļĄāļ­āļĒāļ™āļ™āļĄāļēāđƒāļŠāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđƒāļ™āļāļēāļĢāđ€āļāļē

āļĢāļ°āļ§āļ‡ āļ•āļĢāļ§āļˆāļŠāļ­āļš āđāļāđ„āļ‚āļ›āļāļŦāļē āđāļĨāļ°āļ— āļēāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđƒāļŦāļœāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļ—āļĢāļēāļš āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļĻāļāļĐāļēāļ‚āļ™āļ•āļ­āļ™

āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ•āļēāļ‡ āđ† āļ•āļ‡āđāļ•āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ—āļ— āļēāļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢ

āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ (Logs Server) āļāļēāļĢāļĻāļāļĐāļēāļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāļ–āļ‡āļ‚āļ­āļĄāļĨ (Logs File) āļ—āđ€āļāļ”āļ‚āļ™āļāļšāļĢāļ°āļšāļšāļŦāļĢāļ­

āļ­āļ›āļāļĢāļ“āļ—āļēāļ‡āđ€āļ„āļĢāļ­āļ‚āļēāļĒāđāļĨāļ°āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļĒāļ—āļēāļ‡āļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ āđ€āļžāļ­āđƒāļŦāđ„āļ”āļĄāļēāļ‹āļ‡āļ‚āļ­āļĄāļĨāļ—āļˆāļ°āļ— āļēāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™ āđāļĨāļ°

āđƒāļ™āđ€āļĢāļ­āļ‡āļāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļĄāļ„āļ§āļēāļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļĨāļ°āļĄāļˆ āļēāļ™āļ§āļ™āļĄāļēāļāļ—āļˆ āļēāđ€āļ›āļ™āļˆāļ°āļ•āļ­āļ‡āļŠāļ‡

āļĄāļēāđ€āļāļšāđ„āļ§āđƒāļ™āļĻāļ™āļĒāļāļĨāļēāļ‡ āđ€āļĄāļ­āļĄāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆ āļēāļ™āļ§āļ™āļĄāļēāļāļŠāļ‡āļĄāļēāļ—āļĻāļ™āļĒāļāļĨāļēāļ‡āđƒāļ™āđ€āļ§āļĨāļēāļžāļĢāļ­āļĄ āđ†

āļāļ™āļ­āļēāļˆāļ— āļēāđƒāļŦāđ€āļāļ”āļ›āļāļŦāļēāļ—āļĻāļ™āļĒāļāļĨāļēāļ‡āļĢāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļĄāļ—āļ™ āļŦāļĢāļ­āļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļ‚āļēāļ”āļŦāļēāļĒ

āđ„āļ” āļˆāļ‡āļĄāļĢāļ°āļšāļšāļāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļ„āļ§āļēāļĄāļŦāļĢāļ­āļ‚āļ­āļĄāļĨāļˆ āļēāļ™āļ§āļ™āļĄāļēāļāđ„āļ” āđ‚āļ”āļĒāļĄāļ—āļĪāļĐāļŽāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

2.1 āļĢāļ°āļšāļš Log Management System

āļŦāļĄāļēāļĒāļ–āļ‡ āļĢāļ°āļšāļšāļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāļĨāļ­āļ (Logs) āļŦāļĢāļ­āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ‚āļ”āļĒāļāļēāļĢāđ€āļāļšāđāļĒāļ

āļ­āļ­āļāļˆāļēāļāļāļēāļĢāđ€āļāļšāļĨāļ­āļāđ„āļŸāļĨāļ āļēāļĒāđƒāļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢ āļŦāļĢāļ­āļ­āļ›āļāļĢāļ“āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ•āļēāļ‡ āđ† āđ€āļŠāļ™

Web Server, Mail Server, Firewall, Switch, IPS, Server āđāļĄāļāļĢāļ°āļ—āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļŠāļ§āļ™āļšāļ„āļ„āļĨ āđ€āļ›āļ™āļ•āļ™

āđ€āļ™āļ­āļ‡āļˆāļēāļāļāļēāļĢāđ€āļāļšāļĨāļ­āļāđ„āļŸāļĨāđƒāļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļŦāļĢāļ­āļ­āļ›āļāļĢāļ“āļ™āļ™ āļ–āļ­āļ§āļēāđ„āļĄāļĢāļ­āļ‡āļĢāļšāļ•āļēāļĄ āļžāļĢāļš. āļ§āļēāļ”āļ§āļĒāļāļēāļĢ

āļāļĢāļ°āļ— āļēāļœāļ”āđ€āļāļĒāļ§āļāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļž.āļĻ. 2550 āđ€āļ™āļ­āļ‡āļˆāļēāļāļœāļ”āđāļĨāļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāļ–āļ‡āđ€āļ„āļĢāļ­āļ‡āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāļŦāļĢāļ­

āļ­āļ›āļāļĢāļ“āđ€āļŦāļĨāļēāļ™āļ™ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļēāļ–āļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļāđ„āļŸāļĨ (Logs File) āđ„āļ” āļ™āļ­āļāļˆāļēāļāļ™ āđāļŪāļāđ€āļāļ­āļĢ (Hacker)

āļŦāļĢāļ­āļĄāļĨāđāļ§āļĢ (Malware) āļ­āļēāļˆāđ€āļ‚āļēāļĄāļēāļĨāļšāļĨāļ­āļāđ„āļŸāļĨāđƒāļ™āđ€āļ„āļĢāļ­āļ‡āđ„āļ”āļ—āļāđ€āļĄāļ­āļ–āļēāđāļŪāļāđ€āļāļ­āļĢāļŠāļēāļĄāļēāļĢāļ–āđ€āļˆāļēāļ°āđ€āļ‚āļēāđ€āļ„āļĢāļ­āļ‡āđāļĄ

āļ‚āļēāļĒāđāļĨāļ°āļĒāļ”āđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒāđ„āļ”āļŠ āļēāđ€āļĢāļˆ āļ‹āļ‡āļ­āļēāļˆāđ€āļŠāļĒāļ‡āļ•āļ­āļāļēāļĢāļ–āļāļ”āļ”āđāļ›āļĨāļ‡āđāļāđ„āļ‚ āļŦāļĢāļ­āļ— āļēāļĨāļēāļĒ āļ— āļēāđƒāļŦāļ‚āļ­āļĄāļĨāļ—āļ­āļĒāļšāļ™

āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļŦāļĢāļ­āļ­āļ›āļāļĢāļ“āļ™āļ™ āđ† āļ‚āļēāļ”āļ„āļ§āļēāļĄāļ™āļēāđ€āļŠāļ­āļ–āļ­ āđāļĨāļ°āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāđƒāļŠāđ€āļ›āļ™āļŦāļĨāļāļāļēāļ™āđƒāļ™āļāļēāļĢ

āļ” āļēāđ€āļ™āļ™āļ„āļ”āđƒāļ™āļŠāļ™āļĻāļēāļĨāđ„āļ” āđ‚āļ”āļĒāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āđāļĨāļ°āļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ‚āļ­āļ‡āļĢāļ°āļšāļšāđ€āļāļšāļ‚āļ­āļĄāļĨāļĨāļ­āļāļ”āļ‡āļ™

2.1.1 Log Source āļŦāļĢāļ­ Log Generator āđ€āļ›āļ™āđāļŦāļĨāļ‡āļ āļēāđ€āļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ (Logs) āļˆāļēāļ

āļ­āļ›āļāļĢāļ“āļŠāļēāļĢāļŠāļ™āđ€āļ—āļĻ āđ€āļŠāļ™ āļ­āļ›āļāļĢāļ“āđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ­āļ›āļāļĢāļ“āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢ āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ āļŦāļĢāļ­āļˆāļēāļāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ—āļĄ

āļāļēāļĢāļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļ­āļ āđ‚āļ”āļĒāđƒāļ™āļšāļēāļ‡āļ­āļ›āļāļĢāļ“āļŦāļĢāļ­āđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™ āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨ āļĨāļ­āļāđ„āļ›āļĒāļ‡āļĨāļ­āļ

āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢ (Log Server) āđ„āļ”āđ‚āļ”āļĒāļ•āļĢāļ‡āļŦāļĢāļ­āļ­āļēāļˆāļˆāļ°āļ•āļ­āļ‡āļ­āļēāļĻāļĒ Log Transmission āļŦāļĢāļ­ Log Agent āđƒāļ™āļāļēāļĢ

āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨ

Page 15: Takpong Boontung - msit.mut.ac.th

6

2.1.2 Log Transmission āļŦāļĢāļ­ Log Agent āļĢāļ°āļšāļšāļŠ āļēāļŦāļĢāļšāđƒāļŠāļŠ āļēāļŦāļĢāļšāļŠāļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ āļˆāļēāļ

āđāļŦāļĨāļ‡āļ āļēāđ€āļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ (Log Source) āđ„āļ›āļĒāļ‡āļĨāļ­āļāđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāđ‚āļ”āļĒ Log Agent āļšāļēāļ‡āļ•āļ§āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļ‡

āļ‚āļ­āļĄāļĨ āļšāļēāļ‡āļ­āļĒāļēāļ‡āđƒāļŦāļāļšāļĨāļ­āļāđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāđ„āļ” āđ€āļŠāļ™ āļŠāļ–āļēāļ™āļāļēāļĢāļ“āļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Log Agent āļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āđ„āļŸāļĨāļ‚āļ­āļĄāļĨ

āļ—āļ­āļĒāđƒāļ™āđ‚āļŸāļĨāđ€āļ”āļ­āļĢ āļ‚āļ­āļĄāļĨāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļšāļĢāļāļēāļĢāļ—āļ— āļēāļ‡āļēāļ™āļ­āļĒāļšāļ™ Log Source

2.1.3 Log Parser āļĢāļ°āļšāļšāļŠ āļēāļŦāļĢāļšāļˆāļ”āļĢāļ›āđāļšāļš āļŦāļĢāļ­āđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ āļāļ­āļ™āļ—āļˆāļ°āļŠāļ‡āđ„āļ›āļ— āļēāļāļēāļĢ

āļˆāļ”āđ€āļāļš āđ€āļžāļ­āđƒāļŦāļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļ—āļˆāļ”āđ€āļāļšāđ„āļ”āļ‡āļēāļĒāļ‚āļ™ āđ€āļāļšāđ„āļ§āđ€āļ›āļ™āļŠāļ™āļ”āđ€āļ”āļĒāļ§āļāļ™ āđ€āļŠāļ™ āļāļēāļĢāļ•āļ”āļ‚āļ­āļĄāļĨāļĨāļ­āļāļ­āļ­āļāđ€āļ›āļ™

āļŠāļ” āđ† āļ•āļēāļĄāđāļšāļšāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ āđ€āļžāļ­āđƒāļŦāļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļˆāļ”āđ€āļāļšāđāļĨāļ°āļ„āļ™āļŦāļē āđƒāļ™āļšāļēāļ‡āļŠāļ™āļ”āļŠāļēāļĄāļēāļĢāļ–āđ€āļ‚āļĒāļ™āļ„ āļēāļŠāļ‡āļ•āļēāļ‡ āđ†

āđ€āļŠāļ™ Regular Expression (REGEX), GROK Pattern āđ€āļžāļ­āļ— āļēāļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āļ‚āļ­āļĄāļĨāļ•āļēāļĄāđ€āļ‡āļ­āļ™āđ„āļ‚āļ—āļ•āļ­āļ‡āļāļēāļĢ

2.1.4 Log Server āļŦāļĢāļ­ Log Storage āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāļŠ āļēāļŦāļĢāļšāļĢāļšāđāļĨāļ°āļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļĨāļ­āļ āļˆāļēāļ

āđāļŦāļĨāļ‡āļ āļēāđ€āļ™āļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ (Log Source) āđ€āļžāļ­āļˆāļ”āđ€āļāļšāđāļĨāļ°āđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļāđƒāļŦāļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļ—āļ āļēāļŦāļ™āļ”

āđ€āļžāļ­āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļŦāļēāļŦāļĢāļ­āļ™ āļēāđ„āļ›āļ§āđ€āļ„āļĢāļēāļ°āļŦāđ„āļ”āļ•āļ­āđ„āļ›

2.1.5 Log Management āļĢāļ°āļšāļšāļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāļĨāļ­āļ āđāļŠāļ”āļ‡āļœāļĨ

āļĢāļ§āļĄāļ—āļ‡āļĢāļ°āļšāļšāļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ€āļžāļ­āđƒāļŦāļœāļ”āđāļĨāļĢāļ°āļšāļšāļŦāļĢāļ­āļœāļ—āļĄāļŦāļ™āļēāļ—āļĢāļšāļœāļ”āļŠāļ­āļšāļŠāļēāļĄāļēāļĢāļ–āļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļĨāļ­āļ āđ„āļ”

āļ­āļĒāļēāļ‡āļŠāļ°āļ”āļ§āļ āļĢāļ§āļ”āđ€āļĢāļ§ āļĢāļ§āļĄāļ–āļ‡āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļŠ āļēāļĢāļ­āļ‡āļ‚āļ­āļĄāļĨ āļ™āļ­āļāļˆāļēāļāļ™āļšāļēāļ‡āļĢāļ°āļšāļšāļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļŦāļ™āļēāļ—

āđ€āļ›āļ™ Log Analyzer āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļāļēāļĢāļ°āļ§āļ‡ āđāļĨāļ°āđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļ•āļēāļ‡ āđ† āļ—āđ€āļāļ”āļ‚āļ™āļšāļ™āļĢāļ°āļšāļš āļˆāļēāļāļ‚āļ­āļĄāļĨāļĨ

āļ­āļāđ„āļŸāļĨ āļ—āđ„āļ”āļĢāļšāļĄāļē

2.2 āļĢāļ°āļšāļš Messaging System

2.2.1 āļĢāļ°āļšāļš Messaging Systemāļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ

2.2.1.1 Message queue āļ„āļ­āļ•āļ§āđ€āļŠ āļ­āļĄāļ•āļ­āļĢāļ°āļŦāļ§āļēāļ‡ Producer āđāļĨāļ° Consumer āļŦāļĢāļ­

āđ€āļĢāļĒāļāļ§āļē Queue āļŦāļĢāļ­ Channel āļĄāļŦāļ™āļēāļ—āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ āļŦāļĢāļ­ message āļ—āļŠāļ‡āļĄāļēāļˆāļēāļ Producer āđāļĨāļ°āļŠāļ‡

āļ•āļ­āđ„āļ›āđƒāļŦāļ—āļēāļ‡ Consumer āļ•āļ­āđ„āļ›

2.2.1.2 Message āļŦāļĢāļ­ Data Package āļ„āļ­āļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļœāļēāļ™āļĢāļ°āļšāļšāđ€āļ„āļĢāļ­āļ‚āļēāļĒ Network

āđ‚āļ”āļĒāļ‚āļ­āļĄāļĨāļˆāļ°āļ–āļāļŦāļ­āļŦāļĄāļ•āļēāļĄ Protocol āļ—āđƒāļŠāļ‡āļēāļ™

2.2.1.3 Sender āļŦāļĢāļ­ Producer āļ— āļēāļāļēāļĢāļŠ āļ‡āļ‚āļ­āļĄ āļĨāļŦāļĢāļ­ Message āđ„āļ›āļĒāļ‡ Message

Queue

Page 16: Takpong Boontung - msit.mut.ac.th

7

2.2.1.4 Receiver āļŦāļĢāļ­ Consumer āļœāļĢ āļš Message āļˆāļēāļ Message Queue āđ„āļ›āđ„āļ”āļ—āļ‡

āđāļšāļš Pushing āđāļĨāļ° Polling

2.2.1.5 Data Transmit Protocol āđ€āļ›āļ™ protocol āļŦāļĢāļ­āļ āļēāļĐāļēāđƒāļ™āļāļēāļĢāļŠāļ­āļŠāļēāļĢāļāļ™ āļĄāļ„āļ§āļēāļĄ

āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļ•āļēāļĄ Implementation āļ‚āļ­āļ‡āļĢāļ°āļšāļš Queue āļ—āđƒāļŠ āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ AMQP (Advance Message

Queuing Protocol), MQTT (Message Queue Telemetry Protocol) āđāļĨāļ° HTTP āđ€āļ›āļ™āļ•āļ™

2.2.1.6 Transfer Mode āđ€āļŠāļ™ Synchronous, Asynchronous āđāļĨāļ° Batching āđ€āļ›āļ™āļ•āļ™

2.2.2 āļĢāļ›āđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Messaging system āļĄāļ”āļ‡āļ™

2.2.2.1 Point-to-Point (PTP) āļ„āļ­āđāļ•āļĨāļ° message āļˆāļ°āļ–āļ consume āļˆāļēāļ consumer

āđ€āļ”āļĒāļ§āđ€āļ—āļēāļ™āļ™ āļ–āļ‡āđāļĄāļˆāļ°āļĄ consumer āļĄāļēāļāļāļ§āļē 1 āļ•āļ§āļāļ•āļēāļĄ āļ— āļēāđƒāļŦāļĄāļ™āđƒāļˆāđ„āļ”āļ§āļē āļˆāļ°āđ„āļĄāļĄ consumer āļĄāļēāļĢāļš

message āđ„āļ›āļ— āļēāļ‡āļēāļ™āļ‹ āļēāđāļ™āļ™āļ­āļ™ āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļˆāļ°āļ•āļ§āļāļĨāļēāļ‡āļ‹āļ‡āđ€āļĢāļēāļˆāļ°āđ€āļĢāļĒāļāļ§āļē queue (FIFO – First In First

Out) āđƒāļ™āļāļēāļĢ implement āļ™āļ™ Producer āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡āļŠāļ­āļ‚āļ­āļ‡ queue āļ—āļ āļēāļŦāļ™āļ”āļˆāļēāļāļ™āļ™āđƒāļ™āļŠāļ§āļ™

āļ‚āļ­āļ‡ consumer āļˆāļ°āļ„āļ­āļĒ monitoring āļ§āļēāļĄāļ‚āļ­āļĄāļĨāđ€āļ‚āļēāļĄāļēāļĒāļ‡ queue āļ™āļ™ āđ† āļŦāļĢāļ­āđ„āļĄ āļ–āļēāļĄāļ‚āļ­āļĄāļĨāđ€āļ‚āļēāļĄāļēāļāļˆāļ°āļ™ āļē

āļ­āļ­āļāļĄāļēāļ— āļēāļ‡āļēāļ™āļŦāļĢāļ­ processing āļ•āļ­āđ„āļ› āļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļĄāļˆ āļēāļ™āļ§āļ™āļ‚āļ­āļ‡ producer āđāļĨāļ° consumer āđƒāļ™āļ‚āļ“āļ°

runtime āđ„āļ”āļ•āļēāļĄāļ—āļ•āļ­āļ‡āļāļēāļĢ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›

āļ āļēāļžāļ— 1 āļĢāļ°āļšāļš Messaging System āđƒāļ™āđāļšāļš PTP

Point-to-Point āđāļšāļ‡āđ„āļ” 2 āđāļšāļšāļ•āļēāļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™ āļ„āļ­

1. Fire-and-Forget model āļ„āļ­āđ€āļĄāļ­āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļ‚āļē queue āđāļĨāļ§āđ€āļ›āļ™āļ­āļ™āļˆāļš āļ‹āļ‡āļĄāļāļˆāļ°āđ€āļĢāļĒāļāļ§āļē āļāļēāļĢ

āļ— āļēāļ‡āļēāļ™āđāļšāļš Asynchronous

2. Request/Reply model āļ„āļ­āđ€āļĄāļ­āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļ‚āļē queue āđāļĨāļ§āļˆāļ°āļ•āļ­āļ‡āļĢāļ­āļāļēāļĢāļ•āļ­āļšāļāļĨāļšāļˆāļēāļ con-

sumer āļ”āļ§āļĒāļ§āļēāđ€āļ›āļ™āļ­āļĒāļēāļ‡āđ„āļĢ āļ™āļ™āļ— āļēāđƒāļŦ producer āđāļĨāļ° consumer āļœāļāļĄāļ”āļāļ™ āļŦāļĢāļ­āļ­āļēāļˆāļˆāļ°

āđ€āļĢāļĒāļāđ„āļ”āļ§āļē āļ— āļēāļ‡āļēāļ™āđāļšāļš Synchronous

Page 17: Takpong Boontung - msit.mut.ac.th

8

2.2.2.2 Publish-Subscribe (Pub-Sub) āļĢāļ›āđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ™ āđƒāļŠāļ‡āļēāļ™āđ€āļĄāļ­āļ•āļ­āļ‡āļāļēāļĢāļŠāļ‡

āļ‚āļ­āļĄāļĨāļŦāļ™āļ‡ āđ† āđ„āļ›āļĒāļ‡ consumer āļĄāļēāļāļāļ§āļē 1 āļ•āļ§āđ‚āļ”āļĒ consumer āļ™āļ™āļˆāļ°āļ–āļāđ€āļĢāļĒāļāļ§āļē Subscriber āļŠāļ§āļ™ pro-

ducer āļˆāļ°āđ€āļĢāļĒāļāļ§āļē Publisher āļŠāļ§āļ™ message queue āļˆāļ°āđ€āļĢāļĒāļāļ§āļē Topic āļ‚āļ­āļĄāļĨāļˆāļ°āļ–āļāļˆāļ”āđ€āļāļšāđƒāļ™ Topic āđ„āļ›

āļˆāļ™āļāļ§āļēāļ‚āļ­āļĄāļĨ āļˆāļ°āļ–āļāļŠāļ‡āđ„āļ›āļ–āļ‡ subscriber/consumer āļ— active āļ­āļĒāļ—āļ‡āļŦāļĄāļ” āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ producer āđāļĨāļ°

consumer āļ™āļ™āļˆāļ°āđ„āļĄāļœāļāļĄāļ”āļāļ™ āļ™āļ™āļŦāļĄāļēāļĒāļ„āļ§āļēāļĄāļ§āļē producer āļˆāļ°āđ„āļĄāļŠāļ™āđƒāļˆāđ€āļĨāļĒāļ§āļēāđƒāļ„āļĢāļ„āļ­ consumer āļ— āļē

āļŦāļ™āļēāļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļ‚āļē topic āđ„āļ›āļ•āļēāļĄāļ—āļ•āļ­āļ‡āļāļēāļĢ āļŠāļ§āļ™ consumer āļāđ€āļŠāļ™āļāļ™āđ„āļĄāļŠāļ™āđƒāļˆ producer āļŠāļ™āđƒāļˆāđ€āļžāļĒāļ‡āļ§āļēāļˆāļ°

āļ— āļēāļāļēāļĢāđ„āļ› subscribe āļ— Topic āļ­āļ°āđ„āļĢāļāļžāļ­ āļŦāļĢāļ­āļ–āļēāđ„āļĄāļ•āļ­āļ‡āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļēāļ Topic āļāļ— āļēāļāļēāļĢ unsubscribe āđ„āļ”

āđ€āļĨāļĒ āđ€āļŦāļĄāļ­āļ™āļāļšāļāļēāļĢāļ•āļ”āļ•āļēāļĄāļ‚āļ­āļĄāļĨāļ‚āļēāļ§āļŠāļēāļĢāļ•āļēāļĄ website āļ™āļ™āđ€āļ­āļ‡ āđāļŠāļ”āļ‡āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ”āļ‡āļĢāļ›

āļ āļēāļžāļ— 2 āļĢāļ°āļšāļš Messaging System āđƒāļ™āđāļšāļš Pub-Sub

2.2.2.3 Advance Queuing Messaging Protocol (AQMP) āđ€āļ›āļ™ open protocol

āļŠ āļēāļŦāļĢāļšāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļœāļēāļ™ queue āđāļšāļš asynchronous āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ”āļ‡āļĢāļ›

āļ āļēāļžāļ— 3 Messaging System āđƒāļ™āđāļšāļš AQMP

Page 18: Takpong Boontung - msit.mut.ac.th

9

āļˆāļēāļāļĢāļ›āļ™āļ™ Producer āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Broker āļˆāļēāļāļ™āļ™ Broker āļˆāļ°āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ con-

sumer āļ•āļ­āđ„āļ› āđāļ•āđƒāļ™ Broker āļ™āļ™āļˆāļ°āļĄ component āļŠāļ­āļ§āļē Exchange āđ‚āļ”āļĒ Exchange āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ—āđ„āļ”

āļĢāļšāđ€āļ‚āļēāļĄāļēāđ„āļ›āļĒāļ‡ (routing) queue āļ•āļēāļĄāļ—āļ āļēāļŦāļ™āļ”āđƒāļ™āļ‚āļ­āļĄāļĨ āļ”āļ‡āļ™āļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļˆāļ°āļ•āļ­āļ‡āļ— āļēāļāļēāļĢāļ āļēāļŦāļ™āļ”āļ„āļēāļ•āļēāļ‡

āđ† āļĄāļēāļ•āļēāļĄāļ—āļ•āļ­āļ‡āļāļēāļĢ (Smart Producer) āļŠāļ§āļ™ Consumer āļāļ— āļēāļ•āļēāļĄāļ‚āļ­āļĄāļĨāļ—āļŠāļ‡āđ€āļ‚āļēāļĄāļē (Dumb consumer)

2.2.3 āđ‚āļ”āļĒāļĢāļ›āđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ broker āļĄāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļšāļ”āļ‡āļ™

2.2.3.1 Direct exchange āļ— āļēāļāļēāļĢāļŠāļ‡āđ„āļ›āļĒāļ‡ queue āļ•āļēāļĄāļ—āļ āļēāļŦāļ™āļ”āđ„āļ§āđƒāļ™ routing key āđƒāļ™

āļ‚āļ­āļĄāļĨ

2.2.3.2 Fan-out exchange āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡āļ—āļ āđ† queue āļ—āļ āļēāļŦāļ™āļ”āđ„āļ§ āļ™āļ™āļ„āļ­āļāļēāļĢ

copy āļ‚āļ­āļĄāļĨāļ™āļ™āđ€āļ­āļ‡ āđ€āļŦāļĄāļ­āļ™āļāļšāļāļēāļĢ broadcast

2.2.3.3 Topic exchange āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ queue āļ—āđ€āļŠāļ­āļĄāļ•āļ­ āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āļŠāļ­āđƒāļ™

āļĢāļ›āđāļšāļš wildcard āđ„āļ”āđ€āļĨāļĒ āļĢāļ›āđāļšāļšāļ„āļĨāļēāļĒ āđ† Pub/Sub āļŦāļĢāļ­āļ— āļēāļ‡āļēāļ™āđāļšāļš multicast routing

āļ āļēāļžāļ— 4 āļĢāļ›āđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Broker āđāļšāļšāļ•āļēāļ‡ āđ†

Page 19: Takpong Boontung - msit.mut.ac.th

10

2.3 āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļ—āļ™ āļēāļĄāļēāđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļš

2.3.1 Elastic Stack

Elastic Stack āļ™āļ™āđ€āļ›āļ™āļĢāļ°āļšāļšāļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāļ­āļĒāļēāļ‡āđ€āļ•āļĄāļĢāļ›āđāļšāļšāļĢāļ§āļĄāļ—āļ‡āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ āđ‚āļ”āļĒ

āļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļĨāļāļ‚āļ­āļ‡ Elastic Stack āļˆāļ°āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ Kibana, Logstash, Beats āđāļĨāļ° Elasticsearch

āļ‹āļ‡ Elasticsearch āļ™āļ™āļ–āļ­āļ§āļēāđ€āļ›āļ™āļŦāļ§āđƒāļˆāļŦāļĨāļāļ‚āļ­āļ‡ Elastic Stack āđ€āļĨāļĒāļ—āđ€āļ”āļĒāļ§ āļ‹āļ‡āļ„āļ­āļĒāļ— āļēāļŦāļ™āļēāļ—āļˆāļ”āđ€āļ•āļĢāļĒāļĄ

āļžāļ™āļ—āļˆāļ”āđ€āļāļš, āļ„āļ™āļŦāļēāđāļĨāļ°āļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļŠāļ§āļ™ Kibana āļ‹āļ‡āđ€āļ›āļĢāļĒāļšāđ€āļŠāļĄāļ­āļ™āļŦāļ™āļēāļ•āļēāļ‡āļ—

āļˆāļ°āđ€āļ‚āļēāđ„āļ›āļŠ Elastic Stack āļ— āļēāļŦāļ™āļēāļ—āđāļŠāļ”āļ‡āļœāļĨāđāļĨāļ°āđ€āļŠāļ­āļĄāļ•āļ­āļāļšāļœāđƒāļŠāļ‡āļēāļ™āļāļš Elastic Stack āļŠāļ§āļ™ Logstash

āđāļĨāļ° Beats āļˆāļ°āļ„āļ­āļĒāļŠāļ§āļĒāđƒāļ™āđ€āļĢāļ­āļ‡āļĨ āļēāđ€āļĨāļĒāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļŠ Elastic Stack āļŠāļ§āļ™āļĢāļ›āđāļšāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ—āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž

āļ—āļ‡āļ”āļēāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨ āđ‚āļ”āļĒāđ€āļ›āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢāđāļšāļš Open Source āļ—āļĄāļĨāļ‚āļŠāļ—āļ˜āđāļšāļš Apache License 2.0 āļ— āļē

āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļŸāļĢ āļ–āļāļžāļ’āļ™āļēāđ‚āļ”āļĒāļšāļĢāļĐāļ— Elasticsearch NV āļ‹āļ‡ ELK (Elasticsearch, Logstash,

Kibana) āđ€āļ›āļ™āļŠāļ”āļ‹āļ­āļŸāļ•āđāļ§āļĢ āļ—āļ–āļāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļ™āđ€āļ›āļ™āļĢāļ°āļšāļšāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨ āļĢāļ°āļšāļš

āļˆāļ”āđ€āļĢāļĒāļ‡āļ‚āļ­āļĄāļĨ āđāļĨāļ°āļĢāļ°āļšāļšāđāļŠāļ”āļ‡āļœāļĨ āļ•āļēāļĄāļĨ āļēāļ”āļš āļŠāļ§āļ™ Filebeat, Winlogbeat āđ€āļ›āļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™

Log Agent āđƒāļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļĨāļ­āļ āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāļ— āļēāđ€āļ›āļ™āļĢāļ°āļšāļšāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļ”āđ€āļ›āļ™

āļ­āļĒāļēāļ‡āļ” āđ‚āļ”āļĒāļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ” āļ”āļ‡āļ™

2.3.1.1 Elasticsearch

āļĢāļ°āļšāļšāļāļēāļ™āļ‚āļ­āļĄāļĨāđāļšāļš NoSQL āđāļšāļšāļŦāļ™āļ‡ āļ—āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđ„āļ”āđāļšāļš Distributed

Search āđ‚āļ”āļĒāļĢāļ°āļšāļšāļˆāļ°āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Index āļ‚āļ­āļĄāļĨāļ—āđ€āļāļšāđ„āļ§ āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§

āļ–āļāļžāļ’āļ™āļēāļ•āļ­āļĒāļ­āļ”āļĄāļēāļˆāļēāļ Apache Lucene āđ€āļ›āļ™āļāļēāļĢāļ„āļ™āļŦāļēāđāļšāļš Realtime, Distributed āļ—āļ‡āļ§āđ€āļ„āļĢāļēāļ°āļŦ

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨāļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ§āļ”āđāļĨāļ°āļšāļ‡āļŠāļāļēāļĢāđāļāļ›āļāļŦāļēāđ„āļ”āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļš āļ‹āļ‡āđāļāļ™āđāļ—āļ‚āļ­āļ‡ Elastic

Stack āļˆāļĢāļ‡āđāļĨāļ§āļ™āļ™āļ„āļ­āđ€āļ›āļ™āļĻāļ™āļĒāļāļĨāļēāļ‡āđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨ

Elasticsearch āļ‹āļ‡āđ€āļ›āļ™āđāļāļ™āļŦāļĨāļāļ‚āļ­āļ‡ Elastic Stack āđ‚āļ”āļĒāļˆāļ°āļ— āļēāļŦāļ™āļēāļ—āļŦāļĨāļāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāđāļĨāļ°

āļ§āđ€āļ„āļĢāļēāļ°āļŦ āđ‚āļ”āļĒ Elasticsearch āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļĄāļēāļˆāļēāļāļžāļ™āļāļēāļ™āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļ—āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļ­āļĒāļēāļ‡ Apache Lucene

āļ‹āļ‡āđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļ•āļēāļ‡ āđ† āđ€āļŦāļĨāļēāļ™āđƒāļ™ Elasticsearch āđ‚āļ”āļĒāļžāļ™āļāļēāļ™āđāļĨāļ§āļˆāļ°āļ–āļāļ™ āļēāļĄāļēāļˆāļēāļ Database āđāļĨāļ° NoSQL

āļ”āļ‡āļ™āļ™āđ€āļĢāļēāļĄāļēāļ”āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļŦāļĨāļ āđ† āļ‚āļ­āļ‡āļāļēāļĢāđƒāļŠ Elasticsearch āđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļāļšāļŠ āļēāļĢāļ­āļ‡āļ‚āļ­āļĄāļĨāļ§āļēāļĄāļ­āļ°āđ„āļĢāļšāļēāļ‡

â€Ē Schema less, Document-oriented

â€Ē āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļē (Searching)

â€Ē āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ (Analytics)

â€Ē Rich client library support āđāļĨāļ° REST API

â€Ē āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļ›āļāļšāļ•āđāļĨāļ° Scale

Page 20: Takpong Boontung - msit.mut.ac.th

11

â€Ē Near Real Time

āļĄāļēāļ”āļāļ™āļ—āļĨāļ°āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđƒāļ™āđāļ•āļĨāļ°āļ‚āļ­ āļ§āļēāļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āđ€āļ›āļ™āļ­āļĒāļēāļ‡āđ„āļĢ

2.3.1.1.1 Schema less and Document-oriented

Elasticsearch āđ„āļĄāļˆ āļēāđ€āļ›āļ™āļ—āļˆāļ°āļ•āļ­āļ‡āļĢāļ°āļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļĄāļĨ āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āđ€āļāļšāļĢāļēāļĒāļāļēāļĢāđ€āļ­āļāļŠāļēāļĢ

āđƒāļ™āļĢāļ›āđāļšāļš JSON āđ„āļ§āđ„āļ” āļ‹āļ‡ JSON Document āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļŠ āļēāļ„āļāļ‚āļ­āļ‡ Elasticsearch āđ‚āļ”āļĒāđ€āļ™āļ­āļŦāļēāļŠāļ§āļ™āđƒāļŦāļ

āļˆāļ°āļ–āļāļšāļ™āļ—āļāđƒāļ™āļ„āļ­āļĨāļĄāļ™āļ‚āļ­āļ‡ Database āđ‚āļ”āļĒ Traditional Relational Database āļ™āļ™āļˆ āļēāđ€āļ›āļ™āļ—āļˆāļ°āļ•āļ­āļ‡āđƒāļŠ

Schema āđƒāļ™āļāļēāļĢāļĢāļ°āļšāđ€āļ‹āļ•āļ‚āļ­āļ‡āļ„āļ­āļĨāļĄāļ™āļĢāļ§āļĄāđ„āļ›āļ–āļ‡ Datatypes āđāļĨāļ°āļ‚āļ™āļēāļ”āļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāļ›āļāļ•āļ—āļ§āđ„āļ›āļ™āļ™ Data āļĄ

āļ„āļ§āļēāļĄāđ„āļ”āļ™āļēāļĄāļ„āđ€āļ›āļ™āļ­āļĒāļēāļ‡āļĄāļēāļ āļ”āļ‡āļ™āļ™āļ„āļ­āļĨāļĄāļ™āļ—āļĄāļ„āļ§āļēāļĄāđƒāļŦāļĄāđāļĨāļ°āđ„āļ”āļ™āļēāļĄāļ„āļˆāļ‡āļˆ āļēāđ€āļ›āļ™āļ—āļˆāļ°āļ•āļ­āļ‡āđ„āļ”āļĢāļšāļāļēāļĢāļ”āđāļĨ

āļŠāļ§āļĒāđ€āļŦāļĨāļ­ āļ‹āļ‡ JSON Document āļ™āļ™āļ›āļāļ•āđāļĨāļ§āļˆāļ°āļ„āļ­āļĒāļŠāļ™āļšāļŠāļ™āļ™ Data āļˆ āļēāļžāļ§āļāļ™ āļ•āļ§āļ­āļĒāļēāļ‡āļ”āļ‡āļ™

āđ‚āļ”āļĒ Document āļ™āļˆāļ°āđāļ—āļ™āļ„āļēāļšāļ™āļ—āļāļ‚āļ­āļ‡āļĨāļāļ„āļē āđāļĨāļ°āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āđ€āļ›āļ™āļšāļ™āļ—āļāļŠāļ­, āļ—āļ­āļĒāđāļĨāļ°āļ­āļēāļĒāļ‚āļ­āļ‡āļĨāļāļ„āļē āļ‹āļ‡āļˆāļ°āļĄāļŦāļ™āļēāļ•āļēāļ›āļĢāļ°āļĄāļēāļ“āļ™

āđ‚āļ”āļĒāļāļēāļĢāļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļāļ„āļēāļĢāļēāļĒāļ— 2 āļˆāļ°āđ„āļĄāļĄāļŠāļ­āļ‡āļ—āļ­āļĒāđƒāļŦāļĢāļ°āļš āđāļ•āļˆāļ°āđ€āļ›āļ™āļ—āļ­āļĒāļ­āđ€āļĄāļĨāđāļ—āļ™ āļ‹āļ‡āļˆāļĢāļ‡ āđ† āđāļĨāļ§ Document āļ•āļēāļ‡ āđ† āļ‚āļ­āļ‡āļĨāļāļ„āļēāļˆāļ°āļ›āļĢāļ°āđ€āļ āļ—āļ—āđāļ•āļāļ•āļēāļ‡āļāļ™āđ„āļ›āļ­āļĒāļēāļ‡āļŠāļ™āđ€āļŠāļ‡ āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦāđ€āļĢāļēāļ•āļ­āļ‡āļˆāļ”āļāļēāļĢāļāļšāļ‚āļ­āļĄāļĨāļ—āļ•āļ­āļ‡āļˆāļ”āđ€āļāļšāļ‹āļ‡āļĄāļ›āļĢāļĄāļēāļ“āđ€āļ›āļ™āļˆ āļēāļ™āļ§āļ™āļĄāļēāļ

{

"name": "Takpong Boontung",

"address": "123 Liverpool, England, 10000",

"age": 25

}

{

"name": " Takpong Boontung ",

"age": 25,

"email": "[email protected]"

}

Page 21: Takpong Boontung - msit.mut.ac.th

12

2.3.1.1.2 āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļē (Searching)

āđ‚āļ”āļĒāļˆāļ”āđāļ‚āļ‡āļ‚āļ­āļ‡ Elasticsearch āļˆāļ°āđ€āļ›āļ™āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āđ€āļ™āļ­āļŦāļēāļ‚āļ­āļĄāļĨ āđ‚āļ”āļĒ

Elasticsearch āļ™āļ™āļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ—āļĒāļ­āļ”āđ€āļĒāļĒāļĄāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļē āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āđāļšāļš Full-Text āļ”āļ‡āļ™āļ™āđ€āļĢāļēāļˆāļ°āļĄāļēāļ— āļē

āļ„āļ§āļēāļĄāļĢāļˆāļāļāļšāļāļēāļĢāļ„āļ™āļŦāļēāđāļšāļš Full-Text āļ§āļēāđ€āļ›āļ™āļ­āļĒāļēāļ‡āđ„āļĢ

â€Ē āļāļēāļĢāļ„āļ™āļŦāļēāđāļšāļš Full-Text Search

āļˆāļ°āđ€āļ›āļ™āļāļēāļĢāļ„āļ™āļŦāļēāđāļšāļšāļ„āļĢāļ­āļšāļ„āļĨāļĄāđ€āļ­āļāļŠāļēāļĢāļ—āļ‡āļŦāļĄāļ”āļ—āļĄāļ­āļĒāđƒāļ™ Database āļ‹āļ‡āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āđƒāļŠ

āļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āđ€āļ­āļāļŠāļēāļĢāļ—āļ‡āļŦāļĄāļ”āđƒāļ™āļāļēāļĢāļˆāļ”āđāļˆāļ‡āļŠāļ§āļ™āđāļĨāļ°āļˆāļ”āđ€āļāļšāļ•āļ‡āđāļ•āļĨāļ§āļ‡āļŦāļ™āļē āđ‚āļ”āļĒāļ„āļ”āđāļšāļšāļ‡āļēāļĒ āđ† āļāļ„āļ­āđ€āļĄāļ­āļžāļ”āļ–āļ‡

Full-Text Search āđƒāļŦāļ™āļāļ–āļ‡āļāļēāļĢāļ„āļ™āļŦāļēāļœāļēāļ™ Google āļ„āļ“āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļŠāļ‡āđƒāļ”āļāđ„āļ”āđāļĨāļ°āļ—āļēāļ‡ Google

āļāļˆāļ°āđ€āļ›āļ™āļœāļ„āļ™āļŦāļēāļœāļēāļ™āđ€āļ§āļšāđ€āļžāļˆāļ•āļēāļ‡ āđ† āļ—āļ‡āļŦāļĄāļ”āđāļĨāļ°āđ€āļĨāļ­āļāļ§āļēāđ€āļ§āļšāđ€āļžāļˆāđ„āļŦāļ™āļ—āđ€āļŦāļĄāļēāļ°āļāļšāļ‚āļ­āļĄāļĨāļ—āđ€āļĢāļēāļ„āļ™āļŦāļēāļĄāļēāļ

āļ—āļŠāļ” āļ‹āļ‡āļˆāļ°āļĄāļĨāļāļĐāļ“āļ°āļ—āđāļ•āļāļ•āļēāļ‡āđ„āļ›āļˆāļēāļ SQL Queries āđ‚āļ”āļĒāļ— Normal Queries āļžāļĢāļ­āļĄāļāļš WHERE

clause āđāļĨāļ° Equals (=) āļŦāļĢāļ­ LIKE clause āļ™ āļ™āļˆāļ°āļžāļĒāļēāļĒāļēāļĄāļ›āļĢāļšāđƒāļŦāđ€āļ‚āļēāļŦāļēāļāļš Underlying Data āđāļĨāļ°

āļ™āļ­āļāļˆāļēāļāļ™ SQL Queries āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāđ„āļ”āļ”āļ—āļŠāļ”āđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ›āļĢāļ°āđ€āļ āļ— Sub-String āđƒāļ™ Text

2.3.1.1.3 āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ (Analytics)

āļ™āļ­āļāļˆāļēāļāļāļēāļĢāļ„āļ™āļŦāļēāļ—āļ§āđ„āļ›āđāļĨāļ§ āļŸāļ‡āļāļŠāļ™āļ—āļŠ āļēāļ„āļāļĢāļ­āļ‡āļĨāļ‡āļĄāļēāļ‚āļ­āļ‡ Elasticsearch āļāļˆāļ°āđ€āļ›āļ™āļāļēāļĢ

āļ§āđ€āļ„āļĢāļēāļ°āļŦ (Analytics) āļ‹āļ‡āđ‚āļ”āļĒāļžāļ™āļāļēāļ™āļ—āļ§āđ„āļ›āđāļĨāļ§ āļ„āļ™āļ—āļ§āđ„āļ›āļˆāļ°āļĢāļˆāļ Full-Text Search āļŠ āļēāļŦāļĢāļšāđƒāļ™āļāļēāļĢ

āļ§āđ€āļ„āļĢāļēāļ°āļŦāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļāļĢāļ“ āđ‚āļ”āļĒāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ•āļēāļ‡ āđ† āļāđ„āļ”āđƒāļŠāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ™āđƒāļ™āļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™ āļ‹āļ‡āļ„āļ™āļŦāļēāļ™āļ™

āđ€āļ›āļĢāļĒāļšāđ€āļŠāļĄāļ­āļ™āļāļēāļĢāļ‹āļĄāđ€āļ‚āļēāđ„āļ›āđāļĨāļ°āļ„āļ™āļŦāļēāđ€āļ‚āļĄāđƒāļ™āļāļ­āļ‡āļŦāļāļē āđ‚āļ”āļĒāļāļēāļĢāļ„āļ™āļŦāļēāļ™āļ™āļ— āļēāđƒāļŦāđ€āļĢāļēāđ„āļ”āđƒāļ™āļŠāļ‡āļ—āļ•āļ­āļ‡āļāļēāļĢāļˆāļēāļ

āļāļēāļ™āļ‚āļ­āļĄāļĨāļˆ āļēāļ™āļ§āļ™āļĄāļŦāļēāļĻāļēāļĨ āļ‹āļ‡āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ™āļ™āđāļ™āļ™āļ­āļ™āļ§āļēāļˆāļ°āđ€āļ›āļ™āļŠāļ‡āļ—āļ•āļĢāļ‡āļ‚āļēāļĄāļāļšāļāļēāļĢāļ„āļ™āļŦāļē āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ

āđ€āļ›āļĢāļĒāļšāđ€āļŠāļĄāļ­āļ™āđ€āļĢāļēāļ‹āļĄāļ­āļ­āļāđāļĨāļ°āļĄāļ­āļ‡āđ€āļ‚āļēāđ„āļ›āļ—āļ āļēāļžāđƒāļ™āļĄāļĄāļĄāļ­āļ‡āļ—āđƒāļŦāļāļ‚āļ™ Elasticsearch āļ™āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļ—āļ„āļ­āļĒ

āļŠāļ§āļĒāđ€āļŦāļĨāļ­āđƒāļ™āļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāļ—āļŦāļĨāļēāļāļŦāļĨāļēāļĒāđƒāļŦāļāļšāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ āļ‹āļ‡āļāļēāļĢāļĢāļ§āļĄāļāļĨāļĄāļ‚āļ­āļ‡ Elasticsearch āļ™āļ™āļĄ

āļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļ—āļ”āļ­āļāļ—āļ‡āļĒāļ‡āļ™ āļēāđ„āļ›āļ›āļĢāļ°āļĒāļāļ•āđƒāļŠāđ„āļ”āļāļš Datatypes āļ—āļŦāļĨāļēāļāļŦāļĨāļēāļĒ

2.3.1.1.4 Rich client library support āđāļĨāļ° REST API

āđ‚āļ”āļĒ Elasticsearch āļ™āļ™āļĄāļāļēāļĢāļŠāļ§āļĒāđ€āļŦāļĨāļ­āļŠāļ™āļšāļŠāļ™āļ™āļˆāļēāļ Rich Client Library āđ€āļžāļ­āļ—āļˆāļ°āļ— āļē

āđƒāļŦāđ€āļ‚āļēāđ„āļ›āđ„āļ”āļ–āļ‡āļŦāļĨāļēāļāļŦāļĨāļēāļĒ Programming Language āđ‚āļ”āļĒ Client Library āđ€āļŠāļ™ Java, C#, Python,

JavaScript, PHP, Ruby āđāļĨāļ°āļ­āļ™ āđ† āđ‚āļ”āļĒāļ™āļ­āļāļˆāļēāļ Client Libraries āļ—āđ€āļ›āļ™āļ—āļēāļ‡āļāļēāļĢāđāļĨāļ§ āļĒāļ‡āļĄ Community

Libraries āļ­āļāļĄāļēāļāļāļ§āļē 20 Programming Languages āļ™āļ­āļāļˆāļēāļāļ™ āļĒāļ‡āļĄ REST (Representational State

Transfer) API āļ­āļāļˆ āļēāļ™āļ§āļ™āļĄāļēāļ āļ‹āļ‡āļ— āļēāļ‡āļēāļ™āļ­āļĒāļšāļ™ HTTP protocol āļ‹āļ‡āļ—āļ‡āļŦāļĄāļ”āļ™āļ— āļēāđƒāļŦāđ€āļŦāļ™āļ§āļē āļŠāļ§āļĒāļ— āļēāđƒāļŦ

āļœāļŠāļĄāļœāļŠāļēāļ™āđ„āļ”āļ­āļĒāļēāļ‡āļ‡āļēāļĒāļ”āļēāļĒāđƒāļ™āļ—āļāđāļ­āļžāļžāļĨāđ€āļ„āļŠāļ™āļ•āļēāļĄāļ—āļāļēāļĢāļ„āļ™āļŦāļēāđāļĨāļ°āļ§āđ€āļ„āļĢāļēāļ°āļŦāļ•āļ­āļ‡āļāļēāļĢ

Page 22: Takpong Boontung - msit.mut.ac.th

13

2.3.1.1.5 Near Real Time

āļ‚āļ­āļĄāļĨāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āļŠ āļēāļŦāļĢāļšāļāļēāļĢāļŠāļšāļ„āļ™āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āļ āļēāļĒāđƒāļ™āļ§āļ™āļēāļ—āđ€āļ”āļĒāļ§āļŦāļĨāļ‡āļˆāļēāļāđ„āļ”āļĢāļšāļāļēāļĢ

āļˆāļ”āļ— āļē Index (āļšāļ™āļ—āļ) āđ‚āļ”āļĒāļĢāļ°āļšāļšāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāļ™āļ™āđ„āļĄāđƒāļŠāļ—āļāļĢāļ°āļšāļšāļ—āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļ‡āļēāļ™āđ„āļ”āđƒāļ™āđ€āļ§āļĨāļē

āļˆāļĢāļ‡ Elasticsearch āļŠāļ§āļĒāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āļ— āļē Index āđ€āļ­āļāļŠāļēāļĢāļŦāļĨāļēāļĒāļžāļ™āļ–āļ‡āļŦāļĨāļēāļĒāđāļŠāļ™āļĢāļēāļĒāļāļēāļĢāļ•āļ­āļŦāļ™āļ‡āļ§āļ™āļēāļ—

āđāļĨāļ°āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļŦāļēāđ„āļ”āļ—āļ™āļ—

2.3.1 Logstash

Logstash āļ„āļ­āļĢāļ°āļšāļš Log Receiver āļŠāļ™āļ”āļŦāļ™āļ‡ āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļˆ āļēāđāļ™āļāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆāļēāļ

āđāļŦāļĨāļ‡āļ•āļēāļ‡ āđ† āļ— āļēāļāļēāļĢāđāļĒāļāđāļĒāļ° āļāļĢāļ­āļ‡āļ‚āļ­āļĄāļĨ āđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨ āļāļ­āļ™āļˆāļ°āļ— āļēāļāļēāļĢāļˆāļ”āđ€āļāļšāļŠāļĢāļ°āļšāļšāļāļēāļ™āļ‚āļ­āļĄāļĨ āļŦāļĢāļ­āļŠ

Syslog Server āļŦāļĢāļ­āļĢāļ°āļšāļšāļ­āļ™ āđ† āđ„āļ”āļ­āļĒāļēāļ‡āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļŠāļ™āļ” āđ‚āļ”āļĒ Logstash āļˆāļ°āļĄāļŦāļ™āļēāļ—āđƒāļ™āļāļēāļĢāļĢāļ§āļĄāļĻāļ™āļĒ

āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“ āđ€āļŠāļ™ Logs āļŦāļĢāļ­āļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļšāļ­āļ™ āđ† āđƒāļ™āļ—āļāļĢāļ›āđāļšāļš āđ‚āļ”āļĒāļˆāļ°āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™āļ•āļ§āļ—āđāļ›āļĨāļ‡

āļ‚āļ­āļĄāļĨāļˆ āļēāļ™āļ§āļ™āļĄāļēāļāļāļ­āļ™āļ—āļˆāļ°āļŠāļ‡āđ€āļ‚āļēāđ„āļ›āļĒāļ‡ Elasticsearch āļ‹āļ‡āļ–āļ­āļ§āļēāđ€āļ›āļ™āļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļŠ āļēāļ„āļāļ‚āļ­āļ‡ Elastic

Stack āđ€āļĨāļĒāļāļ§āļēāđ„āļ” āļ­āļāļ—āļ‡āļĒāļ‡āđ€āļ›āļ™āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļšāļ—āđ€āļ›āļ™āļĻāļ™āļĒāļāļĨāļēāļ‡ āļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ— āļē Data Pipeline āđ‚āļ”āļĒ

Logstash āļ— āļēāļŦāļ™āļēāļ—āđƒāļ™āļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄāļĢāļ›āđāļšāļšāļ‚āļ­āļĄāļĨāļˆāļēāļāļŦāļĨāļēāļĒ āđ† āđāļŦāļĨāļ‡ Input āļ­āļāļ—āļ‡āļĒāļ‡āđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāđāļĨāļ°āļ— āļē

āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ•āļ­āļĒāļ‡āđāļŦāļĨāļ‡ Output āđ‚āļ”āļĒ Output āļ™āļ™āļˆāļ°āļ–āļāļŠāļ‡āđ„āļ›āļĒāļ‡ Elasticsearch āļ‹āļ‡ Logstash āļ™āļ™āļĄ

Plugin-based āļĢāļ­āļ‡āļĢāļš Plugin āļ–āļ‡ 3 āļ›āļĢāļ°āđ€āļ āļ— āđ„āļ”āđāļ Input Plugin, Filter Plugin āđāļĨāļ° Output Plugin āļ‹āļ‡

Logstash āļ™āļ™āļĢāļ­āļ‡āļĢāļšāļĢāļ›āđāļšāļš Plugin āļ–āļ‡ 200 āđāļšāļšāđāļĨāļ°āļĒāļ‡āđ€āļžāļĄāļ‚āļ™āļ­āļāđ€āļĢāļ­āļĒ āđ†

2.3.2 Kibana

Kibana āļ„āļ­āļĢāļ°āļšāļšāđāļŠāļ”āļ‡āļœāļĨāđāļĨāļ°āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđāļšāļšāđ€āļ§āļšāđ„āļ‹āļ• āļ—āļ–āļāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦāļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļš

Elasticsearch āđāļĨāļ° Logstash āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļŦāļēāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨ āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāđāļšāļš

Dashboard āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āļœāļĨāđ„āļ”āļ­āļĒāļēāļ‡āļŦāļĨāļēāļāļŦāļĨāļēāļĒ Kibana āļ„āļ­āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļŠ āļēāļŦāļĢāļšāļ— āļē Visualization

āļ‚āļ­āļ‡ Elastic Stack āļ‹āļ‡āļˆāļ°āļ„āļ­āļĒāļŠāļ§āļĒāđ€āļžāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđƒāļ™āđ€āļšāļ­āļ‡āļĨāļāļĄāļēāļāļ‚āļ™āđ€āļāļĒāļ§āļāļšāļ‚āļ­āļĄāļĨāļ”āļēāļ™ Elasticsearch

āđ‚āļ”āļĒāļāļēāļĢāļ— āļē Visualization āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāđ„āļ”āļ­āļĒāļēāļ‡āļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļ—āļ‡ Histograms, Maps, Line Charts, Time

Series āđāļĨāļ°āļ­āļ™ āđ† āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡ Visualization āļ”āļ§āļĒāļāļēāļĢāļ„āļĨāļāđ€āļĄāļēāļŠāđ€āļžāļĒāļ‡āđ„āļĄāļāļ„āļĢāļ‡āđāļĨāļ°āļŠ āļēāļĢāļ§āļˆāļ‚āļ­āļĄāļĨāđāļšāļš

āđ‚āļ•āļ•āļ­āļš (Interactively) āļ‹āļ‡āļˆāļ°āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡ Dashboard āļ—āļŠāļ§āļĒāļ‡āļēāļĄāđ„āļ”āļˆāļēāļāļāļēāļĢāļĢāļ§āļšāļĢāļ§āļĄ Visualiza-

tion āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļš, āđāļšāļ‡āļ›āļ™ āđāļĨāļ°āļĢāļ§āļĄāļ–āļ‡āļāļēāļĢāļŠāļ‡āļĢāļēāļĒāļ‡āļēāļ™āļœāļĨāļ—āļĄāļ„āļ“āļ āļēāļžāļŠāļ‡ āđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļˆāļ°āđƒāļŠāđ€āļ›āļ™āļŠāļ§āļ™

āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļŦāļ™āļē Web Interface

Page 23: Takpong Boontung - msit.mut.ac.th

14

2.3.4 Beats

āļ„āļ­ Log Agent āļŠāļ™āļ”āļŦāļ™āļ‡ āļ—āļ–āļāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦāļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļš Elasticsearch āđāļĨāļ° Logstash

āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° āļ‹āļ‡ Beats āļ™āļ™āđ€āļ›āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāļĄāļ‚āļ­āļ‡ Open Source Lightweight Data Shipper āđ‚āļ”āļĒāļ— āļēāļŦāļ™āļēāļ—

āđ€āļ›āļ™āļŠāļ§āļ™āđ€āļ•āļĄāđ€āļ•āļĄāđƒāļ™ Logstash āļ‹āļ‡ Logstash āļ™āļ™āđ€āļ›āļ™āļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ‚āļ­āļ‡ Server-Side āđƒāļ™āļ‚āļ“āļ°āļ— Beats āļˆāļ°

āļ— āļēāļŦāļ™āļēāļ—āļ”āļēāļ™ Client Side āđ‚āļ”āļĒ Beats āļ™āļ™āļˆāļ°āļĄāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļĨāļēāļĒāļŠāļ§āļ™ āđ„āļ”āđāļ Core Library, Libbeat āļ‹āļ‡

āļĄāļŦāļ™āļēāļ—āđƒāļ™āļāļēāļĢāļˆāļ”āļŦāļē API āđƒāļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļˆāļēāļāđāļ•āļĨāļ°āđāļŦāļĨāļ‡āļ‚āļ­āļĄāļĨ, āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡ Input Options āđāļĨāļ° Im-

plementing Logging āļ‹āļ‡ Beats āļ™āļ™āļˆāļ°āļ–āļāļ•āļ”āļ•āļ‡āđƒāļ™āđ€āļ„āļĢāļ­āļ‡ Client āļ—āđ„āļĄāđ„āļ”āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļēāļ™

Server-Side āđ€āļŠāļ™ Elasticsearch, Logstash āļŦāļĢāļ­ Kibana āđ‚āļ”āļĒāļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđƒāļ™āļĢāļ°āļšāļš Elastic

Stack āļˆāļ°āđ€āļ›āļ™āļ”āļ‡āļ āļēāļž

āļ āļēāļžāļ— 5 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļš ELK āļ—āđƒāļŠāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

2.3.4.1 Filebeat

āđ€āļ›āļ™ agent āļāļēāļĢāļˆāļ”āļŠāļ‡āļ‚āļ­āļĄāļĨāļāļēāļĢāļšāļ™āļ—āļāļ—āļĄāļ‚āļ™āļēāļ”āđ€āļĨāļāļˆāļēāļāđ„āļŸāļĨāđ‚āļĨāļ„āļĨ (Local) Filebeat āļˆāļ°āļ— āļēāļ‡āļēāļ™āđƒāļ™āļĢāļ›āđāļšāļšāđ„āļšāļ™āļēāļĢ (Binary) āđāļĨāļ°āđ„āļĄāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āđƒāļŠāļĢāļ™āđ„āļ—āļĄ (Runtime) āđ€āļŠāļ™ JVM āļ”āļ‡āļ™āļ™āļˆāļ‡āđƒāļŠāļ—āļĢāļžāļĒāļēāļāļĢāļ™āļ­āļĒ āđāļĨāļ°āļ–āļāļ•āļ”āļ• āļ‡āļšāļ™āđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒ (Server) āļ‹ āļ‡āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ”āđ€āļĢāļāļ—āļ­āļĢāļŦāļĢāļ­āđ„āļŸāļĨāđāļĨāļ°āļŠāļ‡āļ•āļ­āđ„āļ›āļĒāļ‡ Elasticsearch, Logstash āļŦāļĢāļ­ Kafka āļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢāļˆāļ”āļŠāļ‡āļšāļ™āļ—āļāļˆāļēāļāļŦāļĨāļēāļĒāļĢāļ°āļšāļšāđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļŠāļ§āļ™āļāļĨāļēāļ‡/āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ

2.3.4.2 Winlogbeat

āđ€āļ›āļ™āđāļžāļĨāļ•āļŸāļ­āļĢāļĄāļšāļ™ Windows XP āļŦāļĢāļ­āđƒāļŦāļĄāļāļ§āļēāđ€āļžāļ­āļ­āļēāļ™āļšāļ™āļ—āļāđ€āļŦāļ•āļāļēāļĢāļ“āļ­āļĒāļēāļ‡āļ™āļ­āļĒāļŦāļ™āļ‡āļĢāļēāļĒāļāļēāļĢ āđ‚āļ”āļĒāđƒāļŠ Windows APIs āļāļĢāļ­āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“āļ•āļēāļĄāđ€āļāļ“āļ‘āļ—āļ āļēāļŦāļ™āļ”āđ‚āļ”āļĒāļœāđƒāļŠāđāļĨāļ°āļˆāļēāļāļ™āļ™āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āđ„āļ›āļĒāļ‡āđ€āļ­āļēāļ•āļžāļ•āļ—āļ āļēāļŦāļ™āļ”āļ„āļēāđ€āļŠāļ™ Elasticsearch, Logstash āļŦāļĢāļ­ Apache Kafka āđ‚āļ”āļĒ Winlogbeat āļŠāļēāļĄāļēāļĢāļ–āđ€āļāļšāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“ āđ€āļŠāļ™āđ€āļŦāļ•āļāļēāļĢāļ“āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™, āđ€āļŦāļ•āļāļēāļĢāļ“āļŪāļēāļĢāļ”āđāļ§āļĢ, āđ€āļŦāļ•āļāļēāļĢāļ“āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļĒāđāļĨāļ°āđ€āļŦāļ•āļāļēāļĢāļ“āļĢāļ°āļšāļš

Page 24: Takpong Boontung - msit.mut.ac.th

15

2.3.5 Apache Kafka

Apache Kafka āļ„āļ­ distributed message queue āđ‚āļ”āļĒāđ€āļĢāļĄāđāļĢāļ Kafka āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āđ‚āļ”āļĒ LinkedIn

āđ€āļ›āļ™ open sourced āđƒāļ™āļŠāļ§āļ‡āļ•āļ™āļ› 2011 āđāļĨāļ°āļ–āļāđ€āļœāļĒāđāļžāļĢāļ•āļ­āļ­āļĒāļēāļ‡āļŠāļē āđ† āļœāļēāļ™āļ—āļēāļ‡ Apache Incubator

āļ•āļ‡āđāļ•āļ› 2012 āļˆāļēāļāļ™āļ™āļˆāļ‡āđ„āļ”āđāļĒāļāļšāļĢāļĐāļ—āļ­āļ­āļāļĄāļēāļˆāļēāļ LinkedIn āļāļ­āļ•āļ‡āđ€āļ›āļ™ āļšāļĢāļĐāļ— Confluent āđ€āļžāļ­āļžāļ’āļ™āļē

Kafka āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° Kafka āđ€āļ›āļ™ platform āļ—āđƒāļŠāļāļĢāļ°āļˆāļēāļĒāļ‚āļ­āļ„āļ§āļēāļĄ (message) āđ‚āļ”āļĒāļĄāļŦāļĨāļāļāļēāļĢāļ”āļ‡āļ™

â€Ē āļ— āļēāļāļēāļĢāđ€āļœāļĒāđāļžāļĢāļ‚āļ­āļĄāļĨāļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āļ—āļĨāļ° records āđƒāļ™āļĢāļ›āđāļšāļš message queue āļŦāļĢāļ­ āļĢāļ°āļšāļš mes-saging

â€Ē āļ—āļ”āļ—āļēāļ™āļ•āļ­āļ„āļ§āļēāļĄāļœāļ”āļ›āļāļ•āļ‚āļ­āļ‡ environment āļĢāļ­āļšāļ‚āļēāļ‡ āļ”āļ§āļĒāļĢāļ°āļšāļš cluster â€Ē āļ— āļēāļ‡āļēāļ™āļ•āļēāļĄāļāļēāļĢāļĢāļ­āļ‡āļ‚āļ­āļ‚āļ­āļ‡āļāļ‡ Client â€Ē āļ— āļēāļ‡āļēāļ™āđāļšāļšāļāļĢāļ°āļˆāļēāļĒ (Distributed system) â€Ē āđ€āļ›āļ™āļĢāļ°āļšāļšāļ—āļ„āļ‡āļ—āļ™āļ•āļ­āļ„āļ§āļēāļĄāđ€āļŠāļĒāļŦāļēāļĒ āļ™āļ™āļ„āļ­āļ— āļēāļ‡āļēāļ™āđ„āļ”āđāļĄāļĢāļ°āļšāļšāļšāļēāļ‡āļŠāļ§āļ™āļˆāļ°āđ€āļŠāļĒāļŦāļēāļĒ â€Ē āļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļšāļš Publish-Subscribe â€Ē āļ— āļēāļāļēāļĢāļšāļ™āļ—āļāļŦāļĢāļ­āļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļ•āļēāļ‡ āđ† āđƒāļ™ Topic āđ€āļ—āļĒāļšāđ„āļ”āļāļš Table āđƒāļ™ RDBMS â€Ē āļœāļŠāļĢāļēāļ‡āļ‚āļ­āļĄāļĨāđāļĨāļ°āļŠāļ‡āđ„āļ›āļĒāļ‡ topic āđ€āļĢāļĒāļāļ§āļē Producer â€Ē āļœāļ™ āļēāļ‚āļ­āļĄāļĨāđ„āļ›āđƒāļŠāļ‡āļēāļ™āļˆāļēāļ topic āđ€āļĢāļĒāļāļ§āļē Consumer â€Ē āļ‚āļ­āļĄāļĨāļ—āļŠāļ‡āđ€āļ‚āļēāđ„āļ›āđƒāļ™ topic āļˆāļ°āļ–āļāļˆāļ”āđ€āļāļšāđāļšāļšāļ–āļēāļ§āļĢāļĨāļ‡ file system āđ€āļŠāļĄāļ­ â€Ē āļ‚āļ­āļĄāļĨāļ—āļ–āļāļˆāļ”āđ€āļāļšāļˆāļ°āļĄāļ­āļēāļĒ 168 āļŠāļ§āđ‚āļĄāļ‡ āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āđāļāđ„āļ‚āđ„āļ”āļ•āļēāļĄ use case â€Ē āļˆāļ°āļ— āļēāļāļēāļĢāļšāļ™āļ—āļāļ‚āļ­āļĄāļĨāļĨāļ‡āđ„āļŸāļĨāļŦāļĢāļ­ log āļāļ­āļ™āļ— consumer āļˆāļ°āđ€āļŦāļ™āđ€āļžāļ­āļ™ āļēāđ„āļ›āļ— āļēāļ‡āļēāļ™āļŦāļĢāļ­ process

āļ•āļ­āđ„āļ› āļ‹āļ‡āļˆāļ°āđ€āļĢāļĒāļāļĢāļ°āļšāļšāļ™āļ§āļē WAL (Write-Ahead Logging)

2.3.5.1 āļŠāļ–āļēāļ›āļ•āļĒāļāļĢāļĢāļĄāļ‚āļ­āļ‡ Apache Kafka

āļˆāļēāļāļ—āļ­āļ˜āļšāļēāļĒāļĄāļēāļ™āļ™ Apache Kafka āļˆāļ°āļĄ Producer, Consumer āđāļĨāļ° Topic āđ‚āļ”āļĒāļ—āđƒāļ™āđāļ•āļĨāļ° topic

āļ™āļ™āļˆāļ°āđāļšāļ‡āļāļēāļĢāđ€āļāļšāļ‚āļ­āļĄāļĨāļ­āļ­āļāđ€āļ›āļ™āļāļĨāļĄ āđ† āđ€āļĢāļĒāļāļ§āļē Partition āļˆ āļēāļ™āļ§āļ™āļ‚āļ­āļ‡ partition āļˆāļ°āļ•āļ­āļ‡āļ–āļāļ āļēāļŦāļ™āļ”āđ„āļ§

āļ•āļ‡āđāļ•āļ•āļ™āļ‹āļ‡āđ„āļĄāļ„āļ§āļĢāđ€āļ›āļĨāļĒāļ™āđ€āļĄāļ­āļĢāļ°āļšāļšāļ— āļēāļ‡āļēāļ™āđāļĨāļ§āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›

āļ āļēāļžāļ— 6 āļŠāļ–āļēāļ›āļ•āļĒāļāļĢāļĢāļĄāļ‚āļ­āļ‡ Kafka

Page 25: Takpong Boontung - msit.mut.ac.th

16

āļ‚āļ­āļĄāļĨāļ—āļˆāļ”āđ€āļāļšāđƒāļ™āđāļ•āļĨāļ° partition āļ™āļ™ āļˆāļ°āđ€āļĢāļĒāļ‡āļĨ āļēāļ”āļšāđ„āļ›āđ€āļĢāļ­āļĒ āđ† āļ™āļ™āļ„āļ­ āļ‚āļ­āļĄāļĨāđ€āļāļēāļˆāļ°āļ­āļĒāļ”āļēāļ™āļŦāļ™āļē

āļ‚āļ­āļĄāļĨāđƒāļŦāļĄāļˆāļ°āļ­āļĒāļ”āļēāļ™āļŦāļĨāļ‡ āđ‚āļ”āļĒ consumer āļˆāļ°āļ­āļēāļ™āļˆāļēāļāļŦāļ™āļēāđ„āļ›āļŦāļĨāļ‡ (āļ­āļēāļ™āļ•āļēāļĄāļ„āļē offset āđƒāļ™āđāļ•āļĨāļ° partition)

āļ—āļŠ āļēāļ„āļāļāļēāļĢāļ­āļēāļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡ consumer āļĄāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļšāļ­āļāļ”āļ§āļĒ āļˆāļēāļāļĢāļ›āđƒāļ™āđāļ•āļĨāļ° partition āļ™āļ™āļ‚āļ­āļĄāļĨāļˆāļ°āļ–āļ

āđ€āļĢāļĒāļ‡āļĨ āļēāļ”āļšāđ€āļŠāļĄāļ­ āđāļŠāļ”āļ‡āļ”āļ‡āļĢāļ›

āļ āļēāļžāļ— 7 āļ‚āļ­āļĄāļĨāļ—āļˆāļ”āđ€āļāļšāđƒāļ™ Partitions āļ‚āļ­āļ‡ Kafka

2.3.5.2 āđāļ™āļ§āļ„āļ”āđ‚āļ”āļĒāļĢāļ§āļĄāļ‚āļ­āļ‡ Kafka

āļāļēāļĢāļˆāļ°āđ€āļ‚āļēāđƒāļˆ Kafka āđ€āļĢāļēāļ•āļ­āļ‡āļĢāļāļ­āļ™āļ§āļēāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļĄāļ­āļ°āđ„āļĢāļšāļēāļ‡ āđ‚āļ”āļĒāļŦāļĨāļāđ† āļĄāđāļ„ 8 āļ­āļĒāļēāļ‡

1. Producer āļ— āļēāļŦāļ™āļēāļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāđƒāļŦāļāļš topics āļ—āļ āļēāļŦāļ™āļ”āđ„āļ§ āđāļĨāļ°āļāļ•āļ­āļ‡āđ€āļĨāļ­āļ partition āļ āļēāļĒāđƒāļ™ topic

āđ€āļ­āļ‡ āļ‹āļ‡āļˆāļ°āļ›āļāļ•āļ— āļēāļ‡āļēāļ™āđ€āļ›āļ™āđāļšāļš round-robin āđ€āļžāļ­āļ„āļ§āļēāļĄāļŠāļĄāļ”āļĨ āļŦāļĢāļ­ āļ­āļēāļˆāļˆāļ°āđƒāļŠ function āļ­āļ™āđƒāļ™āļāļēāļĢ

āļāļĢāļ°āļˆāļēāļĒāļāđ„āļ”

o application āļ—āļŠāļ‡ Message āđ„āļ›āļŦāļē Broker (Kafka server) āđ‚āļ”āļĒāļˆāļ°āļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ array of byte

o āđ‚āļ”āļĒāļ—āđ€āļ§āļĨāļē Producer āļŠāļ‡āļ‚āļ­āļĄāļĨāļ­āļ­āļāđ„āļ›āļˆāļ°āļŠāļ‡āļ—āļĨāļ° record āđ„āļĄāđƒāļŠāļ—āđ€āļ”āļĒāļ§āļŦāļĄāļ” āđ€āļŠāļ™ āļ–āļēāļˆāļ°āļŠāļ‡āđ„āļŸāļĨāđƒāļŦ Broker āļĄāļ™āļāļˆāļ°āļŠāļ‡āļ—āļĨāļ° rows/record āļ™āļ™āđ€āļ­āļ‡

2. Consumer āļˆāļ°āđāļ—āļ™āļ•āļ§āđ€āļ­āļ‡āļ”āļ§āļĒ consumer group name āđ‚āļ”āļĒāđāļ•āļĨāļ° record āļ—āļ­āļĒāđƒāļ™ topic āļˆāļ°āļ–āļāļŠāļ‡āđƒāļŦāđ€āļžāļĒāļ‡ 1 consumer āļ āļēāļĒāđƒāļ• consumer group āđ€āļ—āļēāļ™ āļ™ āđ€āļžāļĢāļēāļ°āļ‰āļ°āļ™ āļ™āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āđāļšāļ‡ process āļ‚āļ­āļ‡ consumer āļ­āļ­āļāđ€āļ›āļ™āļŦāļĨāļēāļĒāđ€āļ„āļĢāļ­āļ‡āđ€āļžāļ­āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđ„āļ” āđāļ•āļ–āļē consumer groups āļ•āļēāļ‡āļāļ™āļ—āļ‡āļŦāļĄāļ” record āļ—āļ‡āļŦāļĄāļ”āļˆāļ°āļ–āļ broadcast āđƒāļŦāļāļš consumer āļ—āļ‡āļŦāļĄāļ”āđ€āļŠāļ™āļāļ™

o application āļ—āļĢāļš Message āļˆāļēāļ Broker (Kafka server) āļ— Producer āļŠāļ‡āļĄāļē āļ„āļ­ con-sumer āļ‚āļ­āļ‡āđ€āļĢāļēāļˆāļ°āđ„āļĄāļŠāļ‡āļŦāļē Producer āļ•āļĢāļ‡ āđ† āļˆāļ°āļ•āļ­āļ‡āđ„āļ›āļŦāļē kafka server

o Producer -> Broker (Kafka server) o Consumer -> Broker (Kafka server)

Page 26: Takpong Boontung - msit.mut.ac.th

17

o Producer āļŠāļ‡āļ—āļĨāļ° rows/record/line āđ€āļžāļĢāļēāļ°āļ‰āļ°āļ™āļ™ consumer āļāļˆāļ° request āđ„āļ›āļ— Broker (Kafka server) āļˆāļ™āļāļ§āļē Producer āļˆāļ°āđ„āļĄāļŠāļ‡āđ„āļ›

āļ āļēāļžāļ— 8 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļĢāļ°āļŦāļ§āļēāļ‡ Producer -> Broker -> Consumer

3. Broker (Kafka server) āđ€āļ›āļ™āļ•āļ§āļāļĨāļēāļ‡āđƒāļ™āļāļēāļĢ exchange message 4. Cluster āļāļĨāļĄāļ‚āļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļ™āđ€āļžāļ­āđ€āļ›āļēāļŦāļĄāļēāļĒāđ€āļ”āļĒāļ§āļāļ™ (distributed system)

āļ āļēāļžāļ— 9 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Kafka Cluster

āļˆāļēāļāļĢāļ›āļˆāļ°āđ€āļŦāļ™āļ§āļēāđ€āļ›āļ™āđāļšāļš Multiple Broker āļ— āļēāļ‡āļēāļ™āđ€āļ›āļ™āļāļĨāļĄāļ™āļ™āđ€āļ­āļ‡ āđāļĨāļ°āļˆāļ°āļĄāļŠāļ§āļ™āļ‚āļ­āļ‡ Zookeeper

āļ‹āļ‡āļ„āļ­ āļœāļ„āļĄ distributed system āđ€āļŠāļ™ Naming, Configuration, Synchronization āđ€āļ›āļ™āļ•āļ™

5. Topic āļ„āļ­ āļŦāļĄāļ§āļ”āļŦāļĄ āļŦāļĢāļ­ āļŠāļ­ group āļ‚āļ­āļ‡āļāļēāļ™āļ‚āļ­āļĄāļĨāļ—āļˆāļ°āđ€āļœāļĒāđāļžāļĢ āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļĄāļ›āļĨāļēāļĒāļ—āļēāļ‡āđ„āļ”āļŦāļĨāļēāļĒāļ„āļ™ āļ™āļ™āļŦāļĄāļēāļĒāļ–āļ‡āļ­āļēāļˆāļˆāļ°āļĄ consumer āļ•āļ‡āđāļ• 0 āļŦāļĢāļ­ āļŦāļĨāļēāļĒāļ„āļ™āļāđ„āļ” āđƒāļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĄāļēāđƒāļ™ Kafka Stream āļˆāļ°āļĄāļ‚āļ­āļĄāļĨāđ€āļĒāļ­āļ°āļĄāļēāļ āđ† āļāļēāļĢāļ—āļˆāļ°āļĢāļ§āļēāļ‚āļ­āļ„āļ§āļēāļĄāđ„āļŦāļ™āļ­āļĒāļ—āđ„āļŦāļ™ āļ™āļ™āļ„āļ­āļ•āļ­āļ‡āļŦāļē Unique key āļ‹āļ‡āļ•āļ§āļ™āļ™āļāļ„āļ­ Topic (āļŦāļĢāļ­āļˆāļ°āļĄāļ­āļ‡āļ§āļē Topic āļ„āļ­ Unique key āđƒāļ™ database āđ„āļ”)

Page 27: Takpong Boontung - msit.mut.ac.th

18

āļ āļēāļžāļ— 10 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Kafka āđ‚āļ”āļĒāđāļĒāļ Topic

6. Partitions āļ­āļĒāļēāļ‡āļ—āļĢāļ§āļē Broker āļˆāļ°āđ€āļ›āļ™āļ„āļ™āđ€āļāļšāļ‚āļ­āļĄāļĨāļ—āļŠāļ‡āđ„āļ›āļĄāļē āđāļ•āļšāļēāļ‡āļ—āļ‚āļ­āļĄāļĨāļ—āđ€āļĢāļēāđ€āļāļšāļĄāļ™āđƒāļŦāļāļĄāļēāļ āđ† āđ€āļāļ™āļāļ§āļēāļ— computer āđ€āļ„āļĢāļ­āļ‡āļ™āļ‡āļˆāļ°āļĢāļšāđ„āļŦāļ§ āđ€āļĨāļĒāļ•āļ­āļ‡āđƒāļŠ distributed system āđ€āļ‚āļēāļĄāļēāđ€āļĨāļĒāļĄāđ„āļ­āđ€āļ”āļĒāļ—āļˆāļ°āļ•āļ­āļ‡āđāļšāļ‡ data āļ­āļ­āļāđ€āļ›āļ™ Partition āļŦāļĨāļēāļĒ āđ† āļŠāļ§āļ™ āđāļĨāļ§āļāļĢāļ°āļˆāļēāļĒāđ„āļ›āđ€āļāļšāđ„āļ§āđƒāļ™ distribut-ed system āļ™āļ™āđ€āļ­āļ‡

7. Offset āļ„āļ­ sequence id āļ‚āļ­āļ‡ partition āļ—āļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ•āļēāļĄ arrival āļ—āļĄāļēāļ–āļ‡āļāļ­āļ™āļŦāļĨāļ‡āļ™āļ™āđ€āļ­āļ‡ āđ‚āļ”āļĒāļŦāļĨāļāļāļēāļĢāļ‚āļ­āļ‡āļŦāļēāđ„āļŸāļĨāļ•āļēāļ‡ āđ† āđ€āļĢāļēāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļĢ Topic Name, Partition Number, Offset āđ€āļĢāļēāļāļˆāļ°āđ„āļ” direct āđ„āļ›āļ•āļĢāļ‡āļ™āļ™āđ„āļ”

āļ āļēāļžāļ— 11 āļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāļ‚āļ­āļ‡ Offset āđƒāļ™ Kafka

8. Consumer Groups āļāļĨāļĄāļ‚āļ­āļ‡ consumer āļ—āļĢāļ§āļĄāļāļ™āđ€āļžāļ­āļ— āļēāļŦāļ™āļēāļ—āđ€āļ”āļĒāļ§āļāļ™ āļ”āļ—āļ āļēāļžāļ™

āļ āļēāļžāļ— 12 āļāļĨāļĄāļ‚āļ­āļ‡ Consumer āļ—āļ— āļēāļŦāļ™āļēāļ—āđ€āļ”āļĒāļ§āļāļ™āđƒāļ™ Kafka

Page 28: Takpong Boontung - msit.mut.ac.th

19

2.4 āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ (Logs) āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļ‚āļ­āļĄāļĨāđ€āļāļĒāļ§āļāļšāļŠāļ–āļēāļ™āļ°āđāļĨāļ°āļžāļĪāļ•āļāļĢāļĢāļĄāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™ āđ€āļĄāļ­āđƒāļ”āļāļ•āļēāļĄāļ—āļĄāđ€āļŦāļ•āļāļēāļĢāļ“āđ€āļāļ”āļ‚āļ™ āđāļ•āļĨāļ°āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ logs āļ‚āļ™āļĄāļē āļ„āļ§āļēāļĄāļ– āļˆ āļēāļ™āļ§āļ™āļ‚āļ­āļĄāļĨāđāļĨāļ°āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ—āļšāļ™āļ—āļāđƒāļ™ Logs āļˆāļ°āđāļ•āļāļ•āļēāļ‡āļāļ™āđ„āļ›āļ•āļēāļĄāđāļ•āļĨāļ°āļĢāļ°āļšāļš āđ‚āļ”āļĒāļāļēāļĢāļ—āđ€āļĢāļēāļ•āļ­āļ‡āļˆāļ”āļāļēāļĢāļāļšāļ‚āļ­āļĄāļĨāļ›āļĢāļĄāļēāļ“āļĄāļēāļ āļāļēāļĢāđ€āļāļšāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļ­āļĄāļĨ āļāļēāļĢāđāļĒāļāļ‚āļ­āļĄāļĨāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āđāļĨāļ°āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđƒāļŦāđƒāļāļĨāđ€āļ„āļĒāļ‡āļāļšāđ€āļ§āļĨāļēāļˆāļĢāļ‡ (Near Real-Time) āļ­āļēāļˆāđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļĒāļ‡āļĒāļēāļ

āļ”āļ§āļĒāļ„āļ“āļŠāļĄāļšāļ•āļ•āļēāļ‡ āđ† āļ—āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ›āļĢāļĄāļēāļ“āļĄāļēāļāđāļšāļšāđƒāļāļĨāđ€āļ„āļĒāļ‡āļāļšāđ€āļ§āļĨāļēāļˆāļĢāļ‡ (Near Real-Time) āļāļ­āļ™āļ—āļˆāļ°āļ— āļēāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨ āđ€āļĢāļēāļ•āļ­āļ‡āļāļēāļĢāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ­ āļēāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļˆāļ”āđ€āļāļš Logs, āļāļēāļĢāđāļĒāļāļ‚āļ­āļĄāļĨāļ—āļŠ āļēāļ„āļāļ­āļ­āļāļˆāļēāļ Logs āđāļĨāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāđ€āļŦāļĨāļēāļ™āļ™āļĄāļēāđ€āļāļšāļĨāļ‡āđƒāļ™ Elasticsearch āļ‹āļ‡āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āđ€āļ›āļ™ Logstash āļ‹āļ‡āđ€āļ›āļ™āļ­āļāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļŦāļ™āļ‡āļ‚āļ­āļ‡ Elastic Stack āđāļĨāļ°āļˆāļ°āļāļĨāļēāļ§āļ–āļ‡āļŦāļ§āļ‚āļ­āļ•āļēāļ‡ āđ† āļ”āļ‡āļ•āļ­āđ„āļ›āļ™

2.4.1 āļ„āļ§āļēāļĄāļ—āļēāļ—āļēāļĒāļ‚āļ­āļ‡āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ

Logs āļ„āļ­āļāļēāļĢāļšāļ™āļ—āļāđ€āļŦāļ•āļāļēāļĢāļ“āļŦāļĢāļ­āļ‚āļ­āļŠāļ‡āđ€āļāļ•āļ•āļēāļ‡ āđ† āļ—āđ€āļāļ”āļ‚āļ™ āđ‚āļ”āļĒ Logs āļ™āļ™āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļˆāļēāļāļ•āļ§āļĢāļ°āļšāļšāđ€āļ­āļ‡, āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™, āļ­āļ›āļāļĢāļ“, āļĄāļ™āļĐāļĒ āđāļĨāļ°āļ­āļ™āđ† āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āđāļĨāļ§ Logs āļˆāļ°āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļŠāļ­āļ‡āļŠāļ§āļ™ āļ„āļ­ Timestamp (āļŠāļ§āļ‡āđ€āļ§āļĨāļēāļ—āđ€āļāļ”āđ€āļŦāļ•āļāļēāļĢāļ“āļ‚āļ™) āđāļĨāļ° Data (āļ‚āļ­āļĄāļĨāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāđ€āļŦāļ•āļāļēāļĢāļ“āļ™āļ™)

Log = Timestamp + Data

āļ§āļ•āļ–āļ›āļĢāļ°āļŠāļ‡āļ„āļ‚āļ­āļ‡ Logs āļ„āļ­:

â€Ē āļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļē (Troubleshooting): āđ€āļĄāļ­āđ€āļāļ”āļšāļ„ (Bug) āļŦāļĢāļ­āļ›āļāļŦāļēāļ‚āļ™āļāļšāļĢāļ°āļšāļš āļŠāļ‡āđāļĢāļāļ—āļ„āļ§āļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āļ§āļēāļ­āļ°āđ„āļĢāļ„āļ­āļŠāļēāđ€āļŦāļ•āļ‚āļ­āļ‡āļ›āļāļŦāļēāļ„āļ­ Logs āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™, āđ€āļĄāļ­āļĨāļ­āļ‡āļžāļˆāļēāļĢāļ“āļēāļˆāļēāļ exception stack trace āļ āļēāļĒāđƒāļ™ Logs āđ€āļĢāļēāļ­āļēāļˆāļžāļšāļŠāļēāđ€āļŦāļ•āļ‚āļ­āļ‡āļ›āļāļŦāļēāđ„āļ”āļ­āļĒāļēāļ‡āļ‡āļēāļĒāļ”āļēāļĒ

â€Ē āđ€āļžāļ­āđ€āļ‚āļēāđƒāļˆāļžāļĪāļ•āļāļĢāļĢāļĄāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™ āļ‚āļ“āļ°āļ—āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™āļ— āļēāļ‡āļēāļ™āļ­āļĒāļ™āļ™āļˆāļ°āļĄāļĨāļāļĐāļ“āļ°āđ€āļŦāļĄāļ­āļ™ Black box āļāļēāļĢāļ—āļˆāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŦāļĢāļ­āđ€āļ‚āļēāđƒāļˆāļ§āļēāļĄāļ­āļ°āđ„āļĢāđ€āļāļ”āļ‚āļ™āļ āļēāļĒāđƒāļ™āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™āļ™āļ™āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļ­āļēāļĻāļĒ Logs

â€Ē āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš (Auditing) āļŦāļĨāļēāļĒāļ­āļ‡āļ„āļāļĢāļ•āļ­āļ‡āļ›āļāļšāļ•āļ•āļēāļĄāļ‚āļ­āļ āļēāļŦāļ™āļ”āļšāļēāļ‡āļ›āļĢāļ°āļāļēāļĢāđāļĨāļ°āļšāļ‡āļ„āļšāđƒāļŦāļĄāļāļēāļĢāđ€āļāļš Logs āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™, āļāļēāļĢāđ€āļ‚āļēāļŠāļĢāļ°āļšāļš āļŦāļĢāļ­ āļāļēāļĢāļ— āļēāļ˜āļĢāļāļĢāļĢāļĄāļ—āļēāļ‡āļāļēāļĢāđ€āļ‡āļ™āļ—āļ” āļēāđ€āļ™āļ™āđ‚āļ”āļĒāļœāđƒāļŠāļ‡āļēāļ™āļĄāļāļˆāļ°āļ–āļāđ€āļāļšāļšāļ™āļ—āļāđ„āļ§āđ€āļ›āļ™āļŠāļ§āļ‡āđ€āļ§āļĨāļē āđ€āļžāļ­āļ§āļ•āļ–āļ›āļĢāļ°āļŠāļ‡āļ„āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļš āđ€āļžāļ­āļ§āđ€āļ„āļĢāļēāļ°āļŦāļŦāļēāļāļēāļĢāļāļĢāļ°āļ— āļēāļ—āđ€āļ›āļ™āļ­āļ™āļ•āļĢāļēāļĒāļˆāļēāļāļœāđƒāļŠāļ‡āļēāļ™āļŦāļĢāļ­ Hacker

â€Ē āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ āđ€āļž āļ­āļ„āļēāļ”āļāļēāļĢāļ“ āļ”āļ§āļĒāļ„āļ§āļēāļĄāļāļēāļ§āļŦāļ™āļēāļ—āļēāļ‡āļ”āļēāļ™ Machine Learning, Data mining āđāļĨāļ° Artificial Intelligence, āđƒāļ™āļ›āļˆāļˆāļšāļ™ āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđ€āļŠāļ‡āļ„āļēāļ”āļāļēāļĢāļ“āļ āļēāļĨāļ‡āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄ āđ€āļ™āļ­āļ‡āļˆāļēāļāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđ€āļŠāļ‡āļ„āļēāļ”āļāļēāļĢāļ“āđ€āļ›āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ™āļŠāļ‡āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ„āļēāļ”āļāļēāļĢāļ“āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ­āļēāļˆāđ€āļāļ”āļ‚āļ™āđƒāļ™āļ­āļ™āļēāļ„āļ• āļĢāļ›āđāļšāļšāļ—āđ€āļ›āļ™āļœāļĨāļĨāļžāļ˜āđƒāļ™āļ­āļ”āļ•āđāļĨāļ°āļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļ˜āļĢāļāļĢāļĢāļĄāļ•āļēāļ‡ āđ† āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāđƒāļŠāđ€āļžāļ­āļ›āļĢāļ°āđ€āļĄāļ“āļ„āļ§āļēāļĄāđ€āļŠāļĒāļ‡āđƒāļ™āļ­āļ™āļēāļ„āļ• āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđ€āļŠāļ‡āļ„āļēāļ”āļāļēāļĢāļ“āļĒāļ‡āļŠāļ§āļĒāđƒāļŦāļ­āļ‡āļ„āļāļĢāļŠāļēāļĄāļēāļĢāļ–āļ„āļ”āđāļšāļšāđ€āļŠāļ‡āļĢāļ āļāļēāļĢ

Page 29: Takpong Boontung - msit.mut.ac.th

20

āļ„āļēāļ”āļāļēāļĢāļ“āļœāļĨāļĨāļžāļ˜āđāļĨāļ°āļžāļĪāļ•āļāļĢāļĢāļĄāļšāļ™āļžāļ™āļāļēāļ™āļ‚āļ­āļ‡āļœāļĨāļĨāļžāļ˜āļ—āđ„āļ”āļĄāļēāļ™āļ™āđ„āļĄāđ„āļ”āđ€āļ›āļ™āđ€āļžāļĒāļ‡āđāļ„āļ‚āļ­āļŠāļĄāļĄāļ•āļāļēāļ™āđ€āļ—āļēāļ™āļ™ āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđ€āļŠāļ‡āļžāļĒāļēāļāļĢāđ€āļŠāļ™ āļāļēāļĢāđāļ™āļ°āļ™ āļēāļ āļēāļžāļĒāļ™āļ•āļĢāļŦāļĢāļ­āļŠāļ‡āļ‚āļ­āļ‡āļ•āļēāļ‡ āđ† āđƒāļŦāđāļāļœāđƒāļŠāļ‡āļēāļ™āđ„āļ”āđ€āļĨāļ­āļāļ‹āļ­ āļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļšāļāļēāļĢāļ‰āļ­āđ‚āļāļ‡ āļāļēāļĢāđ€āļžāļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđāļāđāļ„āļĄāđ€āļ›āļāļ—āļēāļ‡āļ”āļēāļ™āļāļēāļĢāļ•āļĨāļēāļ”āđ€āļ›āļ™āļ•āļ™

2.4.2 āļ›āļāļŦāļēāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ

āļˆāļēāļāļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Logs āļ”āļ‡āļ—āļāļĨāļēāļ§āđ„āļ›āđāļĨāļ§āļ‚āļēāļ‡āļ•āļ™ āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļ›āđ„āļ”āļ§āļē Logs āļ™ āļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļ‚āļ­āļĄāļĨāļĄāļēāļāļĄāļēāļĒāļ—āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāđ„āļ›āđƒāļŠāđ„āļ”āđƒāļ™āļŦāļĨāļēāļĒāļāļĢāļ“ āļ­āļĒāļēāļ‡āđ„āļĢāļāļ•āļēāļĄ āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Logs āļ™āļ™āļĒāļ‡āļ–āļ­āļ§āļēāļĄāļ›āļāļŦāļēāļ­āļĒāļšāļēāļ‡ āļ•āļ§āļ­āļĒāļēāļ‡āļ›āļāļŦāļēāđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Logs:

â€Ē āđ„āļĄāļĄāļĢāļ›āđāļšāļšāļ•āļēāļĒāļ•āļ§āļŦāļĢāļ­āļ„āļ§āļēāļĄāļŠāļ­āļ”āļ„āļĨāļ­āļ‡āļāļ™ (No common/consistent format): āļ—āļāļĢāļ°āļšāļšāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Logs āđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āļ•āļ§āđ€āļ­āļ‡ āđāļĨāļ°āđƒāļ™āļāļēāļ™āļ°āļœāļ”āđāļĨāļĢāļ°āļšāļšāļŦāļĢāļ­āļœāđƒāļŠāļ‡āļēāļ™āđ€āļ­āļ‡āļāļ•āļ­āļ‡āļĄāļ„āļ§āļēāļĄāđ€āļŠāļĒāļ§āļŠāļēāļāļĢāļ°āļ”āļšāļŦāļ™āļ‡āđ€āļžāļ­āļ—āļˆāļ°āđ€āļ‚āļēāđƒāļˆāļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ Logs āļ—āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āđƒāļ™āđāļ•āļĨāļ°āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™ āđ€āļĄāļ­āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ Logs āđāļ•āļāļ•āļēāļ‡āļāļ™ āļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ Logs āđƒāļ™āļĢāļ›āđāļšāļšāļ—āļ•āļēāļ‡āļāļ™āļ­āļēāļˆāđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļĒāļ‡āļĒāļēāļ āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡āļˆāļēāļāļ āļēāļžāļ”āļēāļ™āļĨāļēāļ‡ āļˆāļēāļāļ āļēāļžāļˆāļ°āđāļŠāļ”āļ‡āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡ SQL server Logs, Elasticsearch exception logs āđāļĨāļ° NGINX Logs

āļ āļēāļžāļ— 13 āļ•āļ§āļ­āļĒāļēāļ‡ Logs āļ—āđ„āļĄāļĄāļĢāļ›āđāļšāļšāļ•āļēāļĒāļ•āļ§āļŦāļĢāļ­āļ„āļ§āļēāļĄāļŠāļ­āļ”āļ„āļĨāļ­āļ‡āļāļ™

â€Ē āđ„āļĄāļĄāļ„āļ§āļēāļĄāđ€āļ›āļ™āļĻāļ™āļĒāļāļĨāļēāļ‡ (Logs are decentralized): Logs āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļˆāļēāļāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļ—āļĢāļžāļĒāļēāļāļĢ āđ€āļŠāļ™ āļĢāļ°āļšāļš, āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™, āļ­āļ›āļāļĢāļ“, āđāļĨāļ°āļ­āļ™ āđ† āļ‹āļ‡ Logs āļ™āļ™āļˆāļ°āļāļĢāļ°āļˆāļēāļĒāļ­āļĒāđƒāļ™āļŦāļĨāļēāļĒ āđ† āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢ āļ”āļ§āļĒāļāļēāļĢāļ–āļ­āļ āļēāđ€āļ™āļ”āļ‚āļ­āļ‡ Cloud Computing āļˆāļ‡āļ–āļ­āđ€āļ›āļ™āļ„āļ§āļēāļĄāļ—āļēāļ—āļēāļĒāđƒāļ™āļāļēāļĢāļ—āļˆāļ°āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ Logs āļˆāļēāļāļŦāļĨāļēāļĒāđ† āđāļŦāļĨāļ‡ āđƒāļ™āļāļĢāļ“āļ™ āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ—āļ§āđ„āļ›āļ­āļĒāļēāļ‡ find āđāļĨāļ° grep āļ­āļēāļˆāđ„āļĄāđ€āļŦāļĄāļēāļ°āļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™ āļ”āļ§āļĒāđ€āļŦāļ•āļ™ āļˆāļ‡āļĄāļ„āļ§āļēāļĄāļˆ āļēāđ€āļ›āļ™āļ—āļ•āļ­āļ‡āļĄāļāļēāļĢāļˆāļ”āļāļēāļĢāļāļēāļĢāļ— āļēāļĻāļ™āļĒāļāļĨāļēāļ‡āļ‚āļ™ āļ‹āļ‡āļˆāļ°āļŠāļ§āļĒāļ­ āļēāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāļŠ āļēāļŦāļĢāļšāļœāļ”āđāļĨāļĢāļ°āļšāļšāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāļ—āļ•āļ­āļ‡āļāļēāļĢ

Page 30: Takpong Boontung - msit.mut.ac.th

21

â€Ē āļĢāļ›āđāļšāļšāđ€āļ§āļĨāļēāđ„āļĄāļŠāļ­āļ”āļ„āļĨāļ­āļ‡āļāļ™ (No consistent time format): Logs āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļ•āļēāļĄāļŠāļ§āļ‡āđ€āļ§āļĨāļē (Timestamp) āļŠāļ§āļ‡āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļāļš Logs āļ‚āļ­āļ‡āđāļ•āļĨāļ°āļĢāļ°āļšāļšāļŦāļĢāļ­āđāļ­āļ›āļžāļĨāđ€āļ„āļŠāļ™āļˆāļ°āļˆāļ”āđ€āļāļšāđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āļ•āļ§āđ€āļ­āļ‡āļˆāļ‡āļ–āļ­āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļĒāļēāļāđƒāļ™āļāļēāļĢāļ—āļˆāļ°āļĢāļ°āļšāļŠāļ§āļ‡āđ€āļ§āļĨāļēāļ—āđāļ™āļ™āļ­āļ™āļ‚āļ­āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āđ€āļāļ”āļ‚āļ™ Logs āļšāļēāļ‡āļĢāļ›āđāļšāļšāļĄāļ„āļ§āļēāļĄāđƒāļāļĨāđ€āļ„āļĒāļ‡āļāļšāļ āļēāļĐāļēāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļĄāļēāļāļāļ§āļēāļ āļēāļĐāļēāļĄāļ™āļĐāļĒ āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡āļ‚āļ­āļ‡āļĢāļ›āđāļšāļšāđ€āļ§āļĨāļēāļ—āļ–āļāļšāļ™āļ—āļāļ­āļĒāđƒāļ™ Logs:

Nov 14 22:20:10

[10/Oct/2000:13:55:36 -0700]

172720538

053005 05:45:21

1508832211657

â€Ē āļ‚āļ­āļĄ āļĨ āđ„āļĄāļĄ āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡ (Data is unstructured): āđ€āļ™ āļ­ āļ‡āļˆāļēāļ Logs āđ„āļĄāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļĄāļĨ āļāļēāļĢāļžāļĒāļēāļĒāļēāļĄāļ§āđ€āļ„āļĢāļēāļ°āļŦ Logs āđ‚āļ”āļĒāļ•āļĢāļ‡āļ­āļēāļˆāđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ—āļĒāļ‡āļĒāļēāļ āļāļ­āļ™āļ—āļˆāļ°āđ€āļĢāļĄāļ— āļēāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ Logs āļ•āļ­āļ‡āļĄāļāļēāļĢāļ— āļēāđƒāļŦāļ‚āļ­āļĄāļĨ Logs āļ™āļ™āļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļšāļŦāļĢāļ­āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ—āļ–āļāļ•āļ­āļ‡āđ€āļžāļ­āļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāđ€āļĢāļĄāļ•āļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨ āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļŠāļ§āļ™āļĄāļēāļāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ„āļ”āļāļšāļ‚āļ­āļĄāļĨāđāļšāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āđāļĨāļ°āļ‚āļ­āļĄāļĨāđāļšāļšāļāļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡

2.4.3 āļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļēāđƒāļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨ

āļ‹āļ‡āļˆāļ°āđƒāļŠ Logstash āđ€āļ‚āļēāļĄāļēāļŠāļ§āļĒāđƒāļ™āļāļēāļĢāđāļāđ„āļ‚āļ›āļāļŦāļēāđƒāļ™āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ Logs āđ€āļžāļĢāļēāļ°āđ€āļ›āļ™

āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ—āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļāļšāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļ­āļĄāļĨāļ‹āļ‡āđ„āļ”āļĢāļšāļ„āļ§āļēāļĄāļ™āļĒāļĄāđ€āļ›āļ™āļ­āļĒāļēāļ‡āļĄāļēāļ āđ€āļ™āļ­āļ‡āļˆāļēāļāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļ™āļāļēāļĢ

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ„ āļēāļŠāļ‡ (Pipeline) āđāļšāļš āđ€āļĢāļĒāļĨāđ„āļ—āļĄ Logstash āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļ§āļĒāđƒāļŦāļŠāļĢāļēāļ‡ Pipeline āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢ

āđ€āļāļšāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļ­āļĄāļĨāļˆāļēāļāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļŦāļĨāļ‡āđ„āļ”āļ­āļĒāļēāļ‡āļ‡āļēāļĒāļ”āļēāļĒ Logstash āļĄ Input plugins āđāļĨāļ° output

plugins āļ‹āļ‡āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Logstash āļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļš ETL engine (Extract, Transform, Load)

2.4.3.1 āļ„āļ“āļŠāļĄāļšāļ•āļ‚āļ­āļ‡ Logstash

â€Ē Pluggable data pipeline architecture: Logstash āļĄ Plugins āļāļ§āļē 200 āļŠāļ”āļ—āļ–āļāļžāļ’āļ™āļēāđ‚āļ”āļĒ Elastic stack āđāļĨāļ° open source community āđ€āļžāļ­āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāđƒāļŠāđ„āļ”āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āļ­āļ‡āļāļēāļĢ

â€Ē āļāļēāļĢāđ€āļžāļĄāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ– (Extensibility): Logstash āļ–āļāļžāļ’āļ™āļēāļĄāļēāļˆāļēāļ JRuby āđāļĨāļ°āļĒāļ‡āļŠāļ™āļšāļŠāļ™āļ™ Plugins āđāļšāļš pipeline architecture āļ‹āļ‡āļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļŠāļĢāļēāļ‡ plugins āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āļ­āļ‡āļāļēāļĢāļ‚āļ­āļ‡āļœāđƒāļŠ

Page 31: Takpong Boontung - msit.mut.ac.th

22

â€Ē āļĄāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ‚āļ­āļĄāļĨāļˆāļēāļāļŠāļ§āļ™āļāļĨāļēāļ‡ (Centralized data processing): āļŠāļēāļĄāļēāļĢāļ–āđ€āļāļšāļĢāļ§āļšāļĢāļ§āļĄāļ‚āļ­āļĄāļĨāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļŠāļ‡āđ„āļ›āļĒāļ‡āļ›āļĨāļēāļĒāļ—āļēāļ‡āļ—āļŦāļĨāļēāļāļŦāļĨāļēāļĒāđ„āļ”

â€Ē āļ„āļ§āļēāļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļĨāļ°āļ›āļĢāļĄāļēāļ“ (Variety and volume): Logstash āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āļāļš Logs āđ„āļ”āļ—āļāļ›āļĢāļ°āđ€āļ āļ— āļĒāļāļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ Apache, NGINX logs, system logs, windows event logs āđāļĨāļ°āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļ metric āļˆāļēāļ Application platform āļ—āļ— āļēāļ‡āļēāļ™āļšāļ™ TCP āđāļĨāļ° UDP āđ„āļ” Logstash āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļĨāļĒāļ™ HTTP Request āđƒāļŦāđ€āļ›āļ™ Event āđāļĨāļ°āļˆāļ”āļāļēāļĢ webhooks āļŠ āļēāļŦāļĢāļš Applications āļ­āļĒāļēāļ‡ Meetup, GitHub, JIRA āđ„āļ” āđ€āļ›āļ™āļ•āļ™ āļ­āļāļ—āļ‡āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļĢāļ­āļ‡āļĢāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ‚āļ­āļĄāļĨāļˆāļēāļāļāļēāļ™āļ‚āļ­āļĄāļĨāđ€āļŠāļ‡āļŠāļĄāļžāļ™āļ˜ / NO SQL āļĢāļ§āļĄāļ–āļ‡ Kafka āđ„āļ”āđ€āļ›āļ™āļ•āļ™

â€Ē āļ āļēāļĢāļ— āļē āļ‡āļēāļ™ āļĢ āļ§ āļĄ āļāļ™ (Synergy): Logstash āļŠ āļēāļĄ āļēāļĢāļ– āļ— āļē āļ‡ āļēāļ™ āļĢ āļ§ āļĄ āļ āļ™ Elasticsearch, Beats, Kabana āđ„āļ” āđāļĨāļ°āļ™āļ™āļ— āļēāđƒāļŦāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦ Logs āđāļšāļš end-to-end āđ€āļ›āļ™āđ€āļĢāļ­āļ‡āļ‡āļēāļĒ

2.4.3.2 āļŠāļ–āļēāļ›āļ•āļĒāļāļĢāļĢāļĄāļ‚āļ­āļ‡ Logstash

Event process āļ‚āļ­āļ‡ Logstash āļŦāļĢāļ­ pipeline āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ 3 āļŠāļ§āļ™āļ„āļ­ Inputs, Filters, Outputs āđ‚āļ”āļĒ Logstash pipeline āļ™āļ™āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒ 2 āļŠāļ§āļ™āļ„āļ­ input āđāļĨāļ° output

āļ āļēāļžāļ— 14 Logstash Pipeline

â€Ē Input āļ— āļēāļŦāļ™āļēāļ—āļŠāļĢāļēāļ‡āđ€āļŦāļ•āļāļēāļĢāļ“ (Event)

â€Ē Filters āļ— āļēāļāļēāļĢāđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡ Input events

â€Ē Outputs āļ— āļēāļŦāļ™āļēāļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļŦāļĨāļēāļ™āļ™āđ„āļ›āļĒāļ‡āļ›āļĨāļēāļĒāļ—āļēāļ‡

āļŠ āļēāļŦāļĢāļš Inputs āđāļĨāļ° Outputs āļ™āļ™āļŠāļ™āļšāļŠāļ™āļ™ Codecs āļ‹āļ‡āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ– encode āđāļĨāļ° decode āļ‚āļ­āļĄāļĨāđ„āļ” āđ€āļĄāļ­āđƒāļ”āļāļ•āļēāļĄāļ•āļ‡āđāļ•āļ‚āļ™āļ•āļ­āļ™āļ—āļ‚āļ­āļĄāļĨāđ€āļ‚āļēāļŠ pipeline āļŦāļĢāļ­āđāļĄāļāļĢāļ°āļ—āļ‡āļ­āļ­āļāļˆāļēāļ pipeline āđ‚āļ”āļĒāđ„āļĄāļ•āļ­āļ‡āļ— āļēāļāļēāļĢ Filters āđāļĒāļ āđ‚āļ”āļĒāļ›āļāļ•āđāļĨāļ§ Logstash āļ āļēāļŦāļ™āļ”āļĨ āļēāļ”āļš (queues) āđƒāļ™āļĢāļ°āļŦāļ§āļēāļ‡āļ‚āļ™āļ•āļ­āļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļĢāļ°āļŦāļ§āļēāļ‡ pipeline āđ„āļ§āđƒāļ™āļŦāļ™āļ§āļĒāļ„āļ§āļēāļĄāļˆ āļē (memory) āļŦāļēāļāđ€āļāļ”āđ€āļŦāļ•āļāļēāļĢāļ“āļœāļ”āļ›āļāļ•āļ—āļŠāļ‡āļœāļĨāđƒāļŦ Logstash āļŦāļĒāļ”āļ— āļēāļ‡āļēāļ™āļˆāļ°āļ— āļēāđƒāļŦāļ‚āļ­āļĄāļĨ events āļ•āļēāļ‡ āđ† āļ—āļ–āļāđ€āļāļšāļ­āļĒāđƒāļ™ memory āļŠāļāļŦāļēāļĒāļ—āļ‡āļŦāļĄāļ” āđ€āļžāļ­āļ›āļ­āļ‡āļāļ™āļāļēāļĢāļŠāļāļŦāļēāļĒāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļ”āđƒāļŦ Logstash āļ„āļ‡āļāļĢāļ°āļšāļ§āļ™āļāļēāļĢāļ•āļēāļ‡ āđ† āđ„āļ§āđƒāļ™ Disk āđ„āļ”āļ­āļĒāļēāļ‡āļ•āļ­āđ€āļ™āļ­āļ‡ (persistent queues)

Page 32: Takpong Boontung - msit.mut.ac.th

23

āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļ”āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Persistent queues āđ„āļ”āđ‚āļ”āļĒ set property queue āđ‚āļ”āļĒāļžāļĄāļž persistent

āđƒāļ™ logstash.yml āļ‹ āļ‡ āļ­ āļĒ āļ— LOGSTASH_HOME/config/ āļ‹ āļ‡ logstash.yml āđ€ āļ› āļ™ āđ„āļŸ āļĨ āļ— āđƒāļŠ āđƒāļ™ āļ āļēāļĢ

configuration āļ‚āļ­āļ‡ Logstash āđ‚āļ”āļĒāļ›āļāļ• heap size āļ‚āļ­āļ‡ Logstash āļĄāļ‚āļ™āļēāļ” 1 GB āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ–āļ

āđ€āļ‚ āļĒ āļ™ āļ— āļš āđ„ āļ” āđ‚ āļ” āļĒ āļ āļē āļĢ āļ• āļ‡ āļ„ āļē Xms āđ āļĨ āļ° Xms properties āđƒ āļ™ āđ„ āļŸ āļĨ jvm.options āļ‹ āļ‡ āļ­ āļĒ āļ—

LOGSTASH_HOME/config/

Logstash pipeline āļ–āļāđ€āļāļšāļ­āļĒāđƒāļ™ Configuration file (. conf) āđ‚āļ”āļĒāļŠāļ§āļ™āļ‚āļ­āļ‡āļāļēāļĢāļ•āļ‡āļ„āļēāđāļŠāļ”āļ‡āļ”āļ‡āļ‚āļ­āļĄāļĨāļ”āļēāļ™āļĨāļēāļ‡:

āđƒāļ™āđāļ•āļĨāļ°āļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒ Configuration Plugin āļ­āļĒāļēāļ‡āļ™āļ­āļĒāļŦāļ™āļ‡āļŠāļ” āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ•āļ‡āļ„āļē Plugin

āđ„āļ”āđ‚āļ”āļĒāļ•āļ‡āļŠāļ­āđƒāļŦāļāļš plugin āđāļĨāļ°āļ— āļēāļāļēāļĢ set value pair key āđ‚āļ”āļĒāļāļēāļĢ assign value āđƒāļŦāļāļš key āļˆāļ°āđƒāļŠ

āļŠāļāļĨāļāļĐāļ“ =>

āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ conf folder āļ āļēāļĒāđƒāļ™ LOGSTASH_HOME āđāļĨāļ°āļŠāļĢāļēāļ‡āđ„āļŸāļĨ simple.conf āđāļĒāļāđ„āļ§āđƒāļ™ Directory LOGSTASH_HOME/conf folder/

āļŠāļ‡āđ€āļāļ•āļ§āļēāđ„āļŸāļĨāļ™āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļŠāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļˆ āļēāđ€āļ›āļ™āļŠāļ­āļ‡āļŠāļ§āļ™ āļ„āļ­ input āđāļĨāļ° output āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ input āļ āļēāļŦāļ™āļ”āđƒāļŦ input plugin āļĄāļŠāļ­āļ§āļē stdin āļ‹āļ‡āļˆāļ°āđƒāļŠāļŠ āļēāļŦāļĢāļšāļĢāļšāļ„āļē Default parameters āđāļĨāļ°āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ output plugin āļˆāļ°āđƒāļŠāļŠāļ­ stdout āļ‹āļ‡āđƒāļŠāļĢāļšāļ„āļē rubydebug codec, stdin āđƒāļŠāļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ­āļēāļ™āļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļš standard input āđāļĨāļ° stdout āđƒāļŠāđƒāļ™āļāļēāļĢāđ€āļ‚āļĒāļ™āļ‚āļ­āļĄāļĨ standard output āļŠāļ§āļ™ rubydebug codec āļˆāļ°āļ— āļēāļāļēāļĢāđāļŠāļ”āļ‡āļ‚āļ­āļĄāļĨ Event āļ‚āļ­āļ‡ Logstash āļ”āļ§āļĒ ruby awesome print library āđāļĨāļ°āļĒāļ‡āļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļŠāļ§āļ™āļ‚āļ­āļ‡ Filter āļ‹āļ‡āļ›āļĢāļ°āļāļ­āļšāđ„āļ›āļ”āļ§āļĒ mutate plugin āļ— āļēāļŦāļ™āļēāļ—āđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāļ—āđ€āļ‚āļēāļĄāļēāđƒāļŦāļāļĨāļēāļĒāđ€āļ›āļ™āļ•āļ§āļ­āļāļĐāļĢāļžāļĄāļžāđƒāļŦāļ āđ‚āļ”āļĒāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Logstash āđ‚āļ”āļĒāđƒāļŠāļ‡āļēāļ™ new pipeline/configuration āļ—āļ– āļ āđ€āļāļšāļ­āļĒ āđƒāļ™ simple.conf āđ„āļŸāļĨāļ”āļ‡āļ‚āļ­āļĄāļĨāļ—āđāļŠāļ”āļ‡āļ”āļēāļ™āļĨāļēāļ‡

[[email protected] ~]#/usr/share/logstash/bin/logstash -f /etc/logstash/conf/simple.conf

āđ€āļĄāļ­āđ€āļĢāļĄāđƒāļŠāļ‡āļēāļ™ Logstash āļĨāļ­āļ‡āļ›āļ­āļ™ input “logstash” āļŦāļĨāļ‡āļˆāļēāļāļ›āļ­āļ™ input āđāļĨāļ§āļ•āļĢāļ§āļˆāļŠāļ­āļšāļœāļĨāļĨāļžāļ˜ āļ‹āļ‡āļˆāļ°āđāļŠāļ”āļ‡āļ”āļ‡āļ‚āļ­āļĄāļĨāļ”āļēāļ™āļĨāļēāļ‡:

Input { }

Filter { }

Output { }

#simple.conf

input { stdin { } }

filter { mutate { uppercase => [ "message" ] } }

output { stdout { codec => rubydebug } }

Page 33: Takpong Boontung - msit.mut.ac.th

24

{

"message" => "LOGSTASH",

"@version" => "1",

"host" => "elaska.boontung.net",

"@timestamp" => 2020-03-14T10:00:00.000Z

}

āļ­āļĒāļēāļ‡āļ—āđāļŠāļ”āļ‡āđƒāļŦāđ€āļŦāļ™ Logstash āļˆāļ°āļ— āļēāļāļēāļĢāđ€āļžāļĄ Timestamp āđ€āļ‚āļēāđ„āļ›āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ message āļ”āļ§āļĒāļ•āļēāļĄāļŠāļ§āļ‡āđ€āļ§āļĨāļēāļ— event āļ™āļ™āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™ āļ™āļ­āļāļˆāļēāļāļ™āļ™āļĒāļ‡āđ€āļžāļĄāļ‚āļ­āļĄāļĨ host āđāļĨāļ° version number āđ€āļ‚āļēāđ„āļ›āļ”āļ§āļĒ āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ output āļˆāļ°āļœāļēāļ™ rubydebug codec āļāļ­āļ™āļ—āļ‚āļ­āļĄāļĨāļˆāļ°āļ–āļāļ™ āļēāļĄāļēāđāļŠāļ”āļ‡āļœāļĨāđāļĨāļ° event āļ•āļēāļ‡ āđ† āļ—āļĢāļšāđ€āļ‚āļēāļĄāļēāļ™āļ™āļˆāļ°āļ–āļāđ€āļāļšāļ­āļĒāđƒāļ™ field name message āđ€āļŠāļĄāļ­

2.4.3.3 āļ›āļĨāļāļ­āļ™ (Plugins) āļ‚āļ­āļ‡ Logstash

Logstash āļĄ plugin āļĄāļēāļāļĄāļēāļĒ (input, filter, codec āđāļĨāļ° output plugin) āđ‚āļ”āļĒāļ— Plugin āļ™āļ™āđ€āļ›āļ™ self-contained package āļŦāļĢāļ­āđ€āļĢāļĒāļāļ§āļē gems āļ­āļĒāļšāļ™ RubyGems āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĒāļāļ”āļĢāļēāļĒāļŠāļ­ plugin āđ„āļ”āđ‚āļ”āļĒāļāļēāļĢāđ‚āļ”āļĒāļžāļĄāļžāļ„ āļēāļŠāļ‡: logstash-plugin list

2.4.3.4.1 Input Plugins āđƒāļŠāļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ•āļ‡āļ„āļēāļāļĨāļĄāļ‚āļ­āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“ (event) āļ—āļ–āļ

āļŠāļ‡āļ•āļ­āđ„āļ›āļĒāļ‡ Logstash āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ•āļ‡āļ„āļēāđ„āļ”āļ—āļ‡āđāļšāļš single input āđāļĨāļ° multiple input source āđ‚āļ”āļĒāđāļŠāļ”āļ‡

āļĢāļēāļĒāļāļēāļĢ Plugin āļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡

āļ•āļēāļĢāļēāļ‡āļ— 1 Input Plugins āļ‚āļ­āļ‡ Logstash

logstash-input-beats logstash-input-

couchdb_changes

logstash-input-

elasticsearch

logstash-input-

ganglia logstash-input-xmpp logstash-input-unix logstash-input-syslog logstash-input-stdin logstash-input-udp logstash-input-twitter logstash-input-tcp logstash-input-sqs logstash-input-

snmptrap

logstash-input-redis logstash-input-pipe logstash-input-log4j logstash-input-s3 logstash-input-rabbitmq logstash-input-

lumberjack

logstash-input-

http_poller logstash-input-exec logstash-input-file logstash-input-http logstash-input-imap logstash-input-gelf logstash-input-jdbc logstash-input-irc logstash-input-

generator logstash-input-

heartbeat

logstash-input-graphite āļŠāļēāļĄāļēāļĢāļ–āļĻāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āđ€āļžāļĄāđ€āļ•āļĄāļ‚āļ­āļ‡āđāļ•āļĨāļ° Plugin āđ„āļ”āļˆāļēāļ https://www.elastic.co/guide/en/logstash/7.4/input-plugins.html

Page 34: Takpong Boontung - msit.mut.ac.th

25

2.4.3.4.2 Output Plugins āđƒāļŠāļŠ āļēāļŦāļĢāļšāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡āļ›āļĨāļēāļĒāļ—āļēāļ‡ āđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļ•āļ‡

āļ„āļēāđ„āļ”āļ—āļ‡āđāļšāļš single input āđāļĨāļ° multiple input source āđ‚āļ”āļĒāđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢ Plugin āļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡:

āļ•āļēāļĢāļēāļ‡āļ— 2 Output Plugins āļ‚āļ­āļ‡ Logstash

logstash-output-

cloudwatch

logstash-output-

nagios

logstash-output-irc logstash-output-pagerduty logstash-output-xmpp logstash-output-tcp logstash-output-

stdout

logstash-output-redis logstash-output-

webhdfs

logstash-output-statsd logstash-output-sns logstash-output-rabbitmq logstash-output-udp logstash-output-sqs logstash-output-s3 logstash-output-pipe logstash-output-csv logstash-output-

graphite

logstash-output-file logstash-output-

elasticsearch logstash-output-http āļŠāļēāļĄāļēāļĢāļ–āļĻāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āđ€āļžāļĄāđ€āļ•āļĄāļ‚āļ­āļ‡āđāļ•āļĨāļ° Plugin āđ„āļ”āļˆāļēāļhttps://www.elastic.co/guide/en/logstash/7.4/output-plugins.html

2.4.3.4.3 Filter Plugins āđƒāļŠāļŠ āļēāļŦāļĢāļšāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨ āđ‚āļ”āļĒāļŦāļĨāļēāļĒāđ† Plugin āļŠāļēāļĄāļēāļĢāļ–

āļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļ™āđ„āļ”, āļĨ āļēāļ”āļšāļ‚āļ­āļ‡ Plugin āļˆāļ°āđ€āļ›āļ™āļ•āļ§āļ āļēāļŦāļ™āļ”āļĨ āļēāļ”āļšāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ—āļˆāļ°āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡ , Filter plugin

āđ€āļ›āļ™āđ€āļŠāļĄāļ­āļ™āļ•āļ§āļāļĨāļēāļ‡āļĢāļ°āļŦāļ§āļēāļ‡ input āđāļĨāļ° output plugin āđāļĨāļ°āđ€āļ›āļ™āļ•āļ§āđ€āļĨāļ­āļāđ€āļŠāļĢāļĄāđƒāļ™āļāļēāļĢāļ•āļ‡āļ„āļē Logstash āđ‚āļ”āļĒ

āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢ Plugin āļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡:

āļ•āļēāļĢāļēāļ‡āļ— 3 Filter Plugins āļ‚āļ­āļ‡ Logstash

logstash-filter-cidr logstash-filter-clone logstash-filter-grok logstash-filter-geoip logstash-filter-date logstash-filter-csv logstash-filter-throttle logstash-filter-xml logstash-filter-fingerprint logstash-filter-dns logstash-filter-drop logstash-filter-dissect logstash-filter-syslog_pri logstash-filter-useragent logstash-filter-split logstash-filter-translate logstash-filter-uuid logstash-filter-urldecode logstash-filter-sleep logstash-filter-ruby logstash-filter-mutate logstash-filter-metrics logstash-filter-kv logstash-filter-json āļŠāļēāļĄāļēāļĢāļ–āļĻāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āđ€āļžāļĄāđ€āļ•āļĄāļ‚āļ­āļ‡āđāļ•āļĨāļ° Plugin āđ„āļ”āļˆāļēāļ

https://www.elastic.co/guide/en/logstash/7.4/filter-plugins.html

Page 35: Takpong Boontung - msit.mut.ac.th

26

2.4.3.4.4 Codec Plugins āđƒāļŠāļŠ āļēāļŦāļĢāļš āđ€āļ‚āļēāļĢāļŦāļŠ (encode) āđāļĨāļ° āļ–āļ­āļ”āļĢāļŦāļŠ (de-

code) āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļ—āđ€āļ‚āļēāļĄāļēāļŦāļĢāļ­āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļŠāļ‡āļ­āļ­āļāđ„āļ›āļˆāļēāļ Logstash, Codec āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™

āđ„āļ”āļ—āļ‡āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ input āđāļĨāļ° output āđ‚āļ”āļĒ Input codec āļŠāļēāļĄāļēāļĢāļ–āļ–āļ­āļ”āļĢāļŦāļŠāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļāļ­āļ™āļ—āļˆāļ°āļŠāļ‡āļœāļēāļ™

āđ€āļ‚āļēāļĄāļēāļĒāļ‡ Input āļŠāļ§āļ™ output codec āļ™āļ™āļ— āļēāļāļēāļĢāđ€āļ‚āļēāļĢāļŦāļŠāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļāļ­āļ™āļŠāļ‡āļ­āļ­āļāļˆāļēāļ output āđ‚āļ”āļĒ

āđāļŠāļ”āļ‡āļĢāļēāļĒāļāļēāļĢ Plugin āļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡:

āļ•āļēāļĢāļēāļ‡āļ— 4 Codec Plugins āļ‚āļ­āļ‡ Logstash

logstash-codec-netflow logstash-codec-cef logstash-codec-es_bulk logstash-codec-dots logstash-codec-

collectd

logstash-codec-multiline logstash-codec-

msgpack

logstash-codec-line logstash-codec-

rubydebug

logstash-codec-json logstash-codec-

json_lines

logstash-codec-fluent logstash-codec-plain logstash-codec-

graphite

logstash-codec-

edn_lines

logstash-codec-edn āļŠāļēāļĄāļēāļĢāļ–āļĻāļāļĐāļēāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āđ€āļžāļĄāđ€āļ•āļĄāļ‚āļ­āļ‡āđāļ•āļĨāļ° Plugin āđ„āļ”āļˆāļēāļhttps://www.elastic.co/guide/en/logstash/7.4/codec-plugins.html

2.4.3.4 āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡ Logstash Plugins

â€Ē File plugin āđƒāļŠāļŠ āļēāļŦāļĢāļš Stream āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļˆāļēāļāđ„āļŸāļĨāļ—āļĨāļ°āļšāļĢāļĢāļ—āļ” āļĄāļĨāļāļĐāļ“āļ°

āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ„āļĨāļēāļĒāļ„ āļēāļŠāļ‡ -0f āđƒāļ™ linux/unix āđ‚āļ”āļĒ file āļˆāļ°āļ— āļēāļāļēāļĢāļ•āļ”āļ•āļēāļĄāļ—āļ āđ† āļāļēāļĢāđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡āļ—āđ€āļāļ”āļ‚āļ™

āļ āļēāļĒāđƒāļ™āđ„āļŸāļĨāđāļĨāļ°āļ• āļēāđāļŦāļ™āļ‡āļŠāļ”āļ—āļēāļĒāļ—āđ„āļŸāļĨāļ™āļ™ āđ† āļ–āļāļ­āļēāļ™ āļ™āļ­āļāļˆāļēāļāļ™āļ™āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāļāļēāļĢ rotate āđ„āļŸāļĨ

āđ„āļ”āđ‚āļ”āļĒāļ­āļ•āđ‚āļ™āļĄāļ•āļ‹āļ‡ Plugin āļ™āļĒāļ‡āļĄāļ•āļ§āđ€āļĨāļ­āļāđƒāļ™āļāļēāļĢāļ­āļēāļ™āđ„āļŸāļĨāļˆāļēāļāļˆāļ”āđ€āļĢāļĄāļ•āļ™āļ‚āļ­āļ‡āđ„āļŸāļĨāļ­āļāļ”āļ§āļĒ

â€Ē File plugin āļˆāļ°āđ€āļāļšāļ‚āļ­āļĄāļĨāļ• āļēāđāļŦāļ™āļ‡āļ›āļˆāļˆāļšāļ™āļ‚āļ­āļ‡āđ„āļŸāļĨāđāļ•āļĨāļ°āđ„āļŸāļĨāđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļšāļ™āļ—āļ

āļ• āļēāđāļŦāļ™āļ‡āļ›āļˆāļˆāļšāļ™āļĨāļēāļŠāļ”āđāļĒāļāđ„āļ§āđƒāļ™āļ—āļŠāļ­ sincedb āļ‹āļ‡āļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢ stop āļŦāļĢāļ­ restart logstash āđ‚āļ”āļĒāđ„āļĄ

āļžāļĨāļēāļ”āļ—āļāļšāļĢāļĢāļ—āļ”āļ—āļ–āļāđ€āļžāļĄāđ€āļ‚āļēāđ„āļ›āđƒāļ™āđ„āļŸāļĨāđƒāļ™āļ‚āļ“āļ°āļ— logstash āļ­āļĒāđƒāļ™āļŠāļ–āļēāļ™āļ° stop

2.4.3.5 āļāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļ”āļ§āļĒ Logstash

āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ—āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ™āļ™āļ‡āļēāļĒāļāļ§āļēāđāļĨāļ°āļŠāļ§āļĒāđƒāļŦāļ„āļ™āļŦāļēāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļĄāļ„āļ§āļēāļĄāļŦāļĄāļēāļĒāđāļĨāļ°āļĨāļāļāļ§āļēāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ—āđ„āļĄāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡ āđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāļŠāļ§āļ™āđƒāļŦāļāļ‚āļ™āļ­āļĒāļāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ āļ‹āļ‡ Kibana āđƒāļŠāļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ§āđ€āļ„āļĢāļēāļ°āļŦāđāļĨāļ°āļĄāļĄāļĄāļĄāļ­āļ‡āļ—āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāļŦāļēāļāļ‚āļ­āļĄāļĨāđƒāļ™ Elasticsearch āļ–āļāļ•āļ­āļ‡ (āļ‚āļ­āļĄāļĨāļ—āļ–āļāļšāļ™āļ—āļāđ‚āļŦāļĨāļ”āļĨāļ‡āđƒāļ™āļŸāļĨāļ”āļ—āđ€āļŦāļĄāļēāļ°āļŠāļĄāđāļĨāļ°āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļŸāļĨāļ”āļ™āļ™āļĄāļ„āļ§āļēāļĄāđ€āļŦāļĄāļēāļ°āļŠāļĄāļ”āļ§āļĒāđ€āļŠāļ™āļāļ™)

āđ‚āļ”āļĒāļ—āļ§āđ„āļ›āļ‚āļ­āļĄāļĨāļ—āļ–āļāļšāļ™āļ—āļāļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒāļŠāļ­āļ‡āļŠāļ§āļ™:

logdata =timestamp + data

Page 36: Takpong Boontung - msit.mut.ac.th

27

timestamp āļ„āļ­āđ€āļ§āļĨāļēāļ—āđ€āļāļ”āđ€āļŦāļ•āļāļēāļĢāļ“

data āđ€āļ›āļ™āļ‚āļ­āļĄāļĨāļ—āđ€āļāļĒāļ§āļāļšāđ€āļŦāļ•āļāļēāļĢāļ“āļ—āđ€āļāļ”āļ‚āļ™

āļ‚āļ­āļĄāļĨāļ­āļēāļˆāļĄāđ€āļžāļĒāļ‡āļŦāļ™āļ‡āļŦāļĢāļ­āļŦāļĨāļēāļĒāļ‚āļ­āļĄāļĨ āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ āļ–āļēāđƒāļŠāļšāļ™āļ—āļāļāļēāļĢāđ€āļ‚āļēāļ–āļ‡ Apache āļ‚āļ­āļĄāļĨāļ—āđ„āļ”āļˆāļ°āļ›āļĢāļ°āļāļ­āļšāđ„āļ”āļ”āļ§āļĒ URL, IP address āđāļĨāļ°āļ­āļ™ āđ† āļ”āļ‡āļ™āļ™āļˆāļ‡āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļĄāļāļĨāđ„āļāļŠ āļēāļŦāļĢāļšāļ”āļ‡āļ‚āļ­āļĄāļĨāđ€āļŦāļĨāļēāļ™āđāļĨāļ°āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāļ—āđ„āļĄāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āđ€āļŦāļĨāļēāļ™āđƒāļŦāđ€āļ›āļ™āļ‚āļ­āļĄāļĨāļ—āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡ āļ™āļ„āļ­āļŠāļ§āļ™āļ•āļ§āļāļĢāļ­āļ‡āļ‚āļ­āļ‡ Pipeline Logstash āļ—āļĄāļ›āļĢāļ°āđ‚āļĒāļŠāļ™ āļŠāļ§āļ™āļ›āļĨāļāļ­āļ™āļ•āļ§āļāļĢāļ­āļ‡āđ€āļ›āļ™āļ­āļāļŦāļ™āļ‡āļ•āļ§āļ—āļŠāļ§āļĒāđƒāļ™āļāļēāļĢāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨ

āļ›āļĨāļāļ­āļ™āļ•āļ§āļāļĢāļ­āļ‡āļ–āļāđƒāļŠāđ€āļžāļ­āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨ āļŠāļ§āļĒāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļĢāļ§āļĄāļŦāļ™āļ‡āļ›āļĨāļāļ­āļ™āļŦāļĢāļ­āļĄāļēāļāļāļ§āļēāđ„āļ” āđāļĨāļ°āļĨ āļēāļ”āļšāļ‚āļ­āļ‡āļ›āļĨāļāļ­āļ™āļ–āļāļ āļēāļŦāļ™āļ”āļĨ āļēāļ”āļšāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨ āļ•āļ§āļ­āļĒāļēāļ‡āļ•āļ§āļāļĢāļ­āļ‡āđƒāļ™ Pipeline Logstash āļˆāļ°āļĄāļĨāļāļĐāļ“āļ°āļ”āļ‡āļ™

āļ āļēāļžāļ— 15 āļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡ Filter Logstash Pipeline

āļˆāļēāļāļĢāļ›āļ”āļēāļ™āļšāļ™ āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļŠāļĢāļēāļ‡āļˆāļēāļāļ›āļĨāļāļ­āļ™āļ­āļ™āļžāļ•āļˆāļ°āļœāļēāļ™āđāļ•āļĨāļ°āļ›āļĨāļāļ­āļ™āļ—āļ–āļāļ āļēāļŦāļ™āļ”āđ„āļ§āđƒāļ™āļŠāļ§āļ™

āļ‚āļ­āļ‡āļ•āļ§āļāļĢāļ­āļ‡āđƒāļ™āļĢāļ°āļŦāļ§āļēāļ‡āļ™āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļˆāļ°āļ–āļāđāļ›āļĨāļ‡āļ•āļēāļĄāļ›āļĨāļāļ­āļ™āļ—āļ āļēāļŦāļ™āļ” āļŠāļ”āļ—āļēāļĒāļˆāļ°āļ–āļāļŠāļ‡āđ„āļ›āļĒāļ‡āļ›āļĨāļāļ­āļ™

āđ€āļ­āļēāļ•āļžāļ•āđ€āļžāļ­āļŠāļ‡āđ€āļŦāļ•āļāļēāļĢāļ“āđ„āļ›āļĒāļ‡āļ›āļĨāļēāļĒāļ—āļēāļ‡

2.4.3.5.1 āļ•āļ§āļāļĢāļ­āļ‡ Mutate

āļ•āļ§āļāļĢāļ­āļ‡āļ™āļ­āļ™āļāļēāļ•āđƒāļŦāļ— āļēāļāļēāļĢāđ€āļ›āļĨāļĒāļ™āđāļ›āļĨāļ‡āļŸāļĨāļ”āđ„āļ” āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āļĨāļĒāļ™āļŠāļ­ āđ€āļ›āļĨāļĒāļ™āđāļ–āļšāđāļĨāļ°āļ›āļĢāļšāđ€āļ›āļĨāļĒāļ™āđ€āļ‚āļ•āļ‚āļ­āļĄāļĨāđƒāļ™āđ€āļŦāļ•āļāļēāļĢāļ“ āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡āđ„āļŸāļĨ csv_file_mutate.conf āļ—āļŠāļĢāļēāļ‡āđ„āļ§āļāļ­āļ™āļŦāļ™āļēāļ™āļ”āļ§āļĒāļ•āļ§āļāļĢāļ­āļ‡ Mutate āđāļĨāļ°āđ€āļ‚āļēāđƒāļˆāļāļēāļĢāđƒāļŠāļ‡āļēāļ™ āļ‹āļ‡ code āļ•āļ­āđ„āļ›āļ™āđāļŠāļ”āļ‡āļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ•āļ§āļāļĢāļ­āļ‡ Mutate

#csv_file_mutate.conf

input {

file {

path => "\root\logs\users.csv"

start_posiiton => “beginnings”

sincedb_path => “NULL”

Page 37: Takpong Boontung - msit.mut.ac.th

28

}

}

filter {

csv {

autodetect_column_names => true

}

mutate {

covert => {

“Age” => “integer”

“salary” => “float”

}

rename => { “Fname” => “Firstname”

“LName” => “Lastname” }

gsub => [

“EmailId”, “\.” , “_”

]

strip => [“Firstname” . “Lastname”]

uppercase => [“Gender”]

}

}

output {

stdout {

codec => rubydebug

}

}

rename āļāļēāļĢāļ•āļ‡āļ„āļēāļāļēāļĢāđ€āļ›āļĨāļĒāļ™āļŠāļ­āļ āļēāļĒāđƒāļ™āļ•āļ§āļāļĢāļ­āļ‡ āļ•āļ§āļ­āļĒāļēāļ‡āļāļ­āļ™āļŦāļ™āļēāļ™āđ€āļ›āļĨāļĒāļ™āļŠāļ­āļŸāļĨāļ” FName āđ€āļ›āļ™āļŠāļ­āđāļĨāļ° LName āđ€āļ›āļ™āļ™āļēāļĄāļŠāļāļĨ

gsub āđƒāļŠāđ€āļžāļ­āļˆāļšāļ„ regular expression āļāļšāļ„āļēāļŸāļĨāļ”āđāļĨāļ°āđāļ—āļ™āļ—āļāļēāļĢāļˆāļšāļ„āļ—āļ‡āļŦāļĄāļ”āļ”āļ§āļĒāļŠāļ•āļĢāļ‡ āđ€āļ™āļ­āļ‡āļˆāļēāļ regular expression āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļāļšāļŠāļ•āļĢāļ‡āđ€āļ—āļēāļ™āļ™ āļŸāļĨāļ”āļ™āļˆāļ‡āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŸāļĨāļ”āļ—āļĄāļŠāļ•āļĢāļ‡ (String) āļŦāļĢāļ­āļ­āļēāļĢāđ€āļĢāļĒ (Array) āļ‚āļ­āļ‡āļŠāļ•āļĢāļ‡ (String) āđ€āļ—āļēāļ™āļ™ āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļāļ­āļ™āļŦāļ™āļē āđƒāļ™āļŸāļĨāļ” EmailId āļˆāļ°āļ–āļāđāļ—āļ™āļ—āļ”āļ§āļĒ _

Page 38: Takpong Boontung - msit.mut.ac.th

29

uppercase āđƒāļŠāđƒāļ™āļāļēāļĢāđāļ›āļĨāļ‡āļŠāļ•āļĢāļ‡āđ€āļ›āļ™āļ•āļ§āļžāļĄāļžāđƒāļŦāļ āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļāļ­āļ™āļŦāļ™āļēāļ„āļēāđƒāļ™āļŸāļĨāļ”āđ€āļžāļĻāļˆāļ°āļ–āļāđāļ›āļĨāļ‡āđ€āļ›āļ™āļ•āļ§āļžāļĄāļžāđƒāļŦāļ

āđƒāļ™āļ— āļēāļ™āļ­āļ‡āđ€āļ”āļĒāļ§āļāļ™āđ‚āļ”āļĒāđƒāļŠāļāļēāļĢāļ•āļ‡āļ„āļēāļ•āļēāļ‡ āđ† āļ‚āļ­āļ‡ Mutate Filter āđ€āļŠāļ™ lowercase, update, replace, join āđāļĨāļ° merge āđ„āļ”

2.4.3.5.2 āļ•āļ§āļāļĢāļ­āļ‡ Grok

āđ€āļ›āļ™āļ›āļĨāļāļ­āļ™āļ—āđƒāļŠāļšāļ­āļĒāđƒāļ™āļāļēāļĢāđāļĒāļāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ—āđ„āļĄāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļĨāļ‡āđƒāļ™āļ‚āļ­āļĄāļĨāļ—āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļˆāļ‡āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļŠāļšāļ„āļ™āđāļĨāļ°āļāļĢāļ­āļ‡āđ„āļ”āļ­āļĒāļēāļ‡āļ‡āļēāļĒāļ”āļēāļĒ āļāļĨāļēāļ§āļ‡āļēāļĒ āđ† āļ§āļē Grok āđ€āļ›āļ™āļ§āļ˜āļāļēāļĢāļˆāļšāļ„āļšāļĢāļĢāļ—āļ”āļāļšāļĢāļ›āđāļšāļš āđāļĨāļ°āļāļēāļĢāļˆāļšāļ„āļŠāļ§āļ™āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļšāļĢāļĢāļ—āļ”āļāļšāļŸāļĨāļ”āđ€āļ‰āļžāļēāļ°

āđ„āļ§āļĒāļēāļāļĢāļ“āļ—āļ§āđ„āļ›āļ‚āļ­āļ‡āļĢāļ›āđāļšāļš grok āļĄāļ”āļ‡āļ™

%{PATTERN:FIELDNAME}

PATTERN āđ€āļ›āļ™āļŠāļ­āļ‚āļ­āļ‡āļĢāļ›āđāļšāļšāļ—āļˆāļ°āļˆāļšāļ„āļ‚āļ­āļ„āļ§āļēāļĄ FIELDNAME āđ€āļ›āļ™āļ•āļ§āļĢāļ°āļšāļŠ āļēāļŦāļĢāļšāļŠāļ§āļ™āļ‚āļ­āļ‡āļ‚āļ­āļ„āļ§āļēāļĄāļ—āļ–āļāļˆāļšāļ„ āđ‚āļ”āļĒāļ„āļēāđ€āļĢāļĄāļ•āļ™āļŸāļĨāļ” grok āđ€āļ›āļ™āļŠāļ•āļĢāļ‡ āđ„āļĄ float āļŦāļĢāļ­ int āļāļ­āļĒāļēāļ‡āđƒāļ”āļ­āļĒāļēāļ‡āļŦāļ™āļ‡

āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļĢāļ›āđāļšāļšāļ•āļ­āđ„āļ›āļ™:

%{PATTERN:FIELDNAME:type}

Logstash āļˆāļ”āļŠāļ‡āļ›āļĢāļ°āļĄāļēāļ“ 120 āļĢāļ›āđāļšāļšāļ•āļēāļĄāļ„āļēāđ€āļĢāļĄāļ•āļ™ āļĢāļ›āđāļšāļšāđ€āļŦāļĨāļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāđƒāļŠāļ‹ āļēāđāļĨāļ°āļ‚āļĒāļēāļĒāđ„āļ” āļŦāļ™āļ‡āđƒāļ™āļ™āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāļēāļ‡āļĢāļ›āđāļšāļšāļ—āļ āļēāļŦāļ™āļ”āđ€āļ­āļ‡āđ‚āļ”āļĒāļĢāļ§āļĄāļĢāļ›āđāļšāļšāļ—āļĄāļ­āļĒ āļ‹āļ‡āļĢāļ›āđāļšāļšāđ€āļŦāļĨāļēāļ™āļ‚āļ™āļ­āļĒāļāļšāđ„āļĨāļšāļĢāļēāļĢāļ‚āļ­āļ‡ Oniguruma (BSD licensed regular expression)

https://en.wikipedia.org/wiki/Oniguruma

āļĢāļ›āđāļšāļšāļ›āļĢāļ°āļāļ­āļšāļ”āļ§āļĒ label āđāļĨāļ° regex āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™

USERNAME [a-zA-Z0-9._-]+

āļĢāļ›āđāļšāļšāļŠāļēāļĄāļēāļĢāļ–āļĄāļĢāļ›āđāļšāļšāļ­āļ™ āđ† āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™

HTTPDATE %{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME} %{INT}

āļĢāļēāļĒāļāļēāļĢāļĢāļ›āđāļšāļšāļ— āļŠāļĄāļš āļĢāļ“ āļŠāļēāļĄāļēāļĢāļ–āļ” āđ„āļ”āļ— https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

āļŦāļēāļāļĢāļ›āđāļšāļšāđ„āļĄāļžāļĢāļ­āļĄāđƒāļŠāļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļ™āļžāļˆāļ™āļ—āļ§āđ„āļ›āđ‚āļ”āļĒāđƒāļŠāļĢāļ›āđāļšāļšāļ•āļ­āđ„āļ›āļ™:

(?<field_name>regex)

āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļŠāļ™ regex (? <phone> \d\d\d-\d\d\d-\d\d\d\d) āļˆāļ°āļ•āļĢāļ‡āļāļšāļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ‚āļ—āļĢāļĻāļžāļ—āđ€āļŠāļ™ 123-123-1234 āđāļĨāļ°āđāļĒāļāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ„āļēāļĨāļ‡āđƒāļ™āļŠāļ­āļ‡āđ‚āļ—āļĢāļĻāļžāļ—

Page 39: Takpong Boontung - msit.mut.ac.th

30

āļĨāļ­āļ‡āļ”āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļžāļ­āļ— āļēāļ„āļ§āļēāļĄāđ€āļ‚āļēāđƒāļˆāļāļš grok āđƒāļŦāļ”āļ‚āļ™

#grok1.conf

input {

file{

path => "/root/logs/msg.log”

start_position => "beginning"

sincedb_path => "NULL"

}

}

filter {

grok{

match => {"message" =>

"%{TIMESTAMP_ISO8601:eventtime}

%{USERNAME:userid} %{GREEDYDATA:data}" }

}

}

output {

stdout {

codec => rubydebug

}

}

āļŦāļēāļāļšāļĢāļĢāļ—āļ”āļ­āļ™āļžāļ•āļ­āļĒāđƒāļ™āļĢāļ›āđāļšāļš "2020-04-14T08: 00: 10.000 + 00: 00 tmi_19 001 āļ™āļ„āļ­āļ‚āļ­āļ„āļ§āļēāļĄāļŠāļĄ" āļ”āļ‡āļ™āļ™āđ€āļ­āļēāļ•āļžāļ•āļˆāļ°āđ€āļ›āļ™āđ„āļ›āļ•āļēāļĄāļ—āđāļŠāļ”āļ‡āđƒāļ™āļšāļĨāļ­āļāļ•āļ­āđ„āļ›āļ™:

{

"path" => "/root/logs/msg.log",

"@timestamp" => 2020-04-14T08:00:10.000Z,

"data" => "this is a random message\r",

"@version" => "1",

"host" => "elaska.boontung.net",

"messageId" => 1,

Page 40: Takpong Boontung - msit.mut.ac.th

31

"eventtime" => "2020-04-14T08:00:10.000+00:00",

"message" => "2020-04-14T08:50:10.000+00:00 tmi_19 001 this is a random message\r",

"userid" => "tmi_19"

}

āļĄāđ€āļ„āļĢāļ­āļ‡āļĄāļ­āļ— http://grokdebug.herokuapp.com āļ‹āļ‡āļˆāļ°āļŠāļ§āļĒāļŠāļĢāļēāļ‡

2.4.3.5.3 āļ•āļ§āļāļĢāļ­āļ‡ Geoip

āļ›āļĨāļāļ­āļ™āļ™āđƒāļŠāđ€āļžāļ­āđ€āļžāļĄāļ‚āļ­āļĄāļĨāļšāļ™āļ—āļ āđ€āļĄāļ­āđ„āļ”āļĢāļšāļ—āļ­āļĒ IP āđāļĨāļ§āļˆāļ°āđ€āļžāļĄāļ—āļ•āļ‡āļ—āļēāļ‡āļ āļĄāļĻāļēāļŠāļ•āļĢāļ‚āļ­āļ‡āļ—āļ­āļĒ IP āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļāļšāļāļēāļ™āļ‚āļ­āļĄāļĨ GeoLite2 City āļŠ āļēāļŦāļĢāļšāļ—āļ­āļĒ IP āļ—āļ–āļāļ•āļ­āļ‡āđāļĨāļ°āđ€āļ•āļĄāļŸāļĨāļ”āļ”āļ§āļĒāļœāļĨāļĨāļžāļ˜ āļāļēāļ™āļ‚āļ­āļĄāļĨ GeoLite2 City āđ€āļ›āļ™āļœāļĨāļ•āļ āļ“āļ‘āļ‚āļ­āļ‡āļ­āļ‡āļ„āļāļĢ Maxmind āđāļĨāļ°āļ­āļĒāļ āļēāļĒāđƒāļ•āđƒāļšāļ­āļ™āļāļēāļ• CCA-ShareAlike 4.0

āļ”āļ§āļĒāļāļēāļ™āļ‚āļ­āļĄāļĨ GeoLite2 City āļ”āļ‡āļ™āļ™āđ€āļĄāļ­āļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļĄāļ™āđ„āļĄāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļ— āļēāļāļēāļĢāđ€āļĢāļĒāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒāđƒāļ” āđ† āļ”āļ‡āļ™āļ™āļāļēāļĢāļ„āļ™āļŦāļēāļˆāļ‡āļ— āļēāđ„āļ”āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§

āļžāļēāļĢāļēāļĄāđ€āļ•āļ­āļĢāļ—āļˆ āļēāđ€āļ›āļ™āļŠ āļēāļŦāļĢāļšāļ›āļĨāļāļ­āļ™āļ™āļ„āļ­ source āļ‹āļ‡āļĒāļ­āļĄāļĢāļšāļ—āļ­āļĒ IP āđƒāļ™āļĢāļ›āđāļšāļšāļŠāļ•āļĢāļ‡ āļ›āļĨāļāļ­āļ™āļ™āļŠāļĢāļēāļ‡āļŸāļĨāļ” geoip āļžāļĢāļ­āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āļ—āļēāļ‡āļ āļĄāļĻāļēāļŠāļ•āļĢāđ€āļŠāļ™āļ›āļĢāļ°āđ€āļ—āļĻāļĢāļŦāļŠāđ„āļ›āļĢāļĐāļ“āļĒ āļ āļĄāļ āļēāļ„ āđ€āļĄāļ­āļ‡āđāļĨāļ°āļ­āļ™ āđ† āļŸāļĨāļ” [geoip] [location] āļˆāļ°āļ–āļāļŠāļĢāļēāļ‡āļ‚āļ™āļŦāļēāļāļāļēāļĢāļ„āļ™āļŦāļē GeoIP āđāļĨāļ§āļ— āļēāļāļēāļĢāļŠāļ‡āļ„āļ™āļĨāļ°āļ•āļˆāļ”āđāļĨāļ°āļĨāļ­āļ‡āļˆāļˆāļ” āđāļĨāļ°āļĄāļ™āļ–āļāđāļĄāļ›āļāļšāļ›āļĢāļ°āđ€āļ āļ— geo_point āđ€āļĄāļ­āļŠāļĢāļēāļ‡āļ”āļŠāļ™āđ„āļ›āļĒāļ‡ Elasticsearch āļŸāļĨāļ” geo_point āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāļŠ āļēāļŦāļĢāļšāļāļēāļĢāļŠāļšāļ„āļ™āđ€āļŠāļ‡āļžāļ™āļ—āļ‚āļ­āļ‡ Elasticsearch, facet āđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļāļēāļĢāļāļĢāļ­āļ‡āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāđƒāļŠāđ€āļžāļ­āļŠāļĢāļēāļ‡āļāļēāļĢāđāļŠāļ”āļ‡āđāļœāļ™āļ—āļ‚āļ­āļ‡ Kibana

āļ āļēāļžāļ— 16 āļ•āļ§āļāļĢāļ­āļ‡ GeoIP

Page 41: Takpong Boontung - msit.mut.ac.th

32

āļšāļ—āļ— 3

āļĢāļ°āļšāļšāļ—āļ™ āļēāđ€āļŠāļ™āļ­

3.1 āļ āļēāļžāļĢāļ§āļĄāļ‚āļ­āļ‡āļĢāļ°āļšāļš

āļāļēāļĢāļ­āļ­āļāđāļšāļšāđāļĨāļ°āļžāļ’āļ™āļēāļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ™ āļˆāļ°āļ•āļ­āļ‡āļĻāļāļĐāļē

āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‹āļ­āļŸāļ•āđāļ§āļĢ Open Source āđ„āļ”āđāļ ELK āđāļĨāļ° Apache Kafka āļ™ āļēāļĄāļēāļ­āļ­āļāđāļšāļšāļāļēāļĢ

āđ€āļŠāļ­āļĄāļ•āļ­āđƒāļŦāļ— āļēāļ‡āļēāļ™āļĢāļ§āļĄāļāļ™āđ„āļ” āđƒāļŦāļ•āļĢāļ‡āļ„āļ§āļēāļĄāļ•āļ­āļ‡āļāļēāļĢāļ‚āļ­āļ‡āļ­āļ‡āļ„āļāļĢ āļ—āļ„āļ§āļēāļĄāļ•āļ­āļ‡āļāļēāļĢāđāļ•āļāļ•āļēāļ‡āļāļ™ āđ‚āļ”āļĒāļ•āļ­āļ‡

āļ­āļ­āļāđāļšāļšāļ§āļ˜āļāļēāļĢāļŠāļ‡āđāļĨāļ°āļĢāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđāļĨāļ°āļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ­āļĒāļēāļ‡āđ„āļĢāđƒāļŦāļ‡āļēāļĒāļ•āļ­

āļāļēāļĢāļšāļĢāļŦāļēāļĢāļˆāļ”āļāļēāļĢāđāļĨāļ°āļ›āļĢāļ°āļŦāļĒāļ”āļ„āļēāđƒāļŠāļˆāļēāļĒ āļ‹āļ‡āļˆāļ°āļĄāļĢāļ›āđāļšāļšāđāļĨāļ°āļŸāļ‡āļāļŠāļ™āļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļĨāļ°āđƒāļŠāļ‡āļēāļ™āļ”āļ‡āļ āļēāļž

āļ”āļēāļ™āļĨāļēāļ‡

āļ āļēāļžāļ— 17 āļ āļēāļžāļĢāļ§āļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

Page 42: Takpong Boontung - msit.mut.ac.th

33

3.2 āļāļēāļĢāļ­āļ­āļāđāļšāļšāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ‚āļ­āļ‡āļĢāļ°āļšāļš

āđ‚āļ”āļĒāļāļēāļĢāļ­āļ­āļāđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāļĢāļ§āļĄāļ—āļ‡āļāļēāļĢāļžāļ’āļ™āļēāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āđ€āļ§āļšāļ­āļ™āđ€āļ•āļ­āļĢāđ€āļŸāļŠāđ€āļžāļĄāđ€āļ•āļĄ

āļ™āļ™ āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļˆāļ”āļāļēāļĢāļĢāļ°āļšāļš , āļāļēāļĢāļŠāļĢāļēāļ‡āđ€āļ‡āļ­āļ™āđ„āļ‚āļ•āļēāļĄāđ€āļŦāļ•āļāļēāļĢāļ“āđāļĨāļ°āđāļˆāļ‡āđ€āļ•āļ­āļ™ āđāļĨāļ°āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļ­āļ­āļ

āļĢāļēāļĒāļ‡āļēāļ™āļŠāļĢāļ›āļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļ•āļēāļĄāļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāđāļ”āļŠāļšāļ­āļĢāļ” (Dashboard) āļĢāļ§āļĄāļ–āļ‡āļāļēāļĢāļŠāļĢāļ›āļ‚āļ­āļĄāļĨāļ­āļ­āļāđ€āļ›āļ™

āļĢāļ›āđāļšāļšāđ€āļ­āļāļŠāļēāļĢāđ„āļ”āđ€āļŠāļ™ PDF āļˆāļ‡āđ„āļ”āļ­āļ­āļāđāļšāļšāđāļœāļ™āļœāļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļš āļ”āļ‡āļ āļēāļžāļ”āļēāļ™āļĨāļēāļ‡

āļ āļēāļžāļ— 18 āđāļœāļ™āļœāļ‡āđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļ­āļ­āļāđāļšāļšāļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

3.2.1 Logs Forwarders

- āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļēāļāđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒ āļ­āļ›āļāļĢāļ“āļ•āļēāļ‡ āđ† āļĢāļ§āļĄāļ–āļ‡āļ‚āļ­āļĄāļĨāļˆāļēāļāļ āļēāļĒāļ™āļ­āļāļŠāļ‡āđ€āļ‚āļēāđ„āļ›āļ—

āļĢāļ°āļšāļš āđ€āļŠāļ™ Firewall, Linux, Windows āđāļĨāļ° Stream Data āđ€āļŠāļ™ āļ‚āļ­āļĄāļĨāļžāļĒāļēāļāļĢāļ“āļ­āļēāļāļēāļĻ

3.2.2 Logs Receiver

- āļˆāļ°āđ€āļ›āļ™āļŠāļ§āļ™āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļŦāļĢāļ­āļ”āļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļˆāļēāļāđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒ āļ­āļ›āļāļĢāļ“āļ•āļēāļ‡ āđ† āļŦāļĢāļ­

āļ‚āļ­āļĄāļĨāļ—āļĄāļēāļˆāļēāļāļ āļēāļĒāļ™āļ­āļāđ‚āļ”āļĒāļŠāļēāļĄāļēāļĢāļ–āļĢāļšāļ‚āļ­āļĄāļĨāđ„āļ”āļ—āļ‡ 2 āļŠāļ§āļ™ āļ—āļ‡ Logstash āđāļĨāļ° Kafka āđ‚āļ”āļĒāļ‚āļ­āļĄāļĨāļ—āļĄ

āļ‚āļ™āļēāļ”āđƒāļŦāļāļĄāļēāļ āđ† āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļĄāļēāļ— Kafka āđāļĨāļ°āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ•āļ­āđ„āļ›āļ— Logstash āđ€āļžāļ­āđāļĒāļāđāļĒāļ°āļ‚āļ­āļĄāļĨ

āļāļ­āļ™āļ—āļˆāļ°āļŠāļ‡āđ„āļ›āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ Logs Management

3.2.3 Logs Management

- āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āļĄāļāļēāļĢāļ— āļēāļ‡āļēāļ™āđāļĨāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļēāļ Logstash āļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ āļ—āļĄāļ‚āļ­āļĄāļĨāļāļēāļĢāļ„āļ”

āđāļĒāļ āļ‚āļ­āļĄāļĨāļ—āļ— āļēāļāļēāļĢāļ•āļāđāļ•āļ‡āđ€āļžāļ­āđ€āļĨāļ­āļāđƒāļ™āļŠāļ§āļ™āļ—āļĄāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļāļ­āļ™āļ—āļˆāļ°āļŠāļ‡āđ„āļ›āđƒāļŦ Elasticsearch āđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡

āļ‚āļ­āļĄāļĨāđ€āļ­āļāļŠāļēāļĢ (Documents) āđāļĨāļ°āļˆāļ”āļ— āļēāļ”āļŠāļ™āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ (Index Data) āđ€āļžāļ­āļˆāļ”āđ€āļāļšāđƒāļ™āļāļēāļ™āļ‚āļ­āļĄāļĨāļ•āļ­āđ„āļ›

3.2.4 Reverse Proxy, Multiple domains / Websites

- āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āđƒāļŠāļ‹āļ­āļŸāļ•āđāļ§āļĢāļ—āļŠāļ­āļ§āļē āđ€āļ­āļ™āļˆāļ™āđ€āļ­āļāļ‹ (NGINX) āļ„āļ­ āļ‹āļ­āļŸāļ•āđāļ§āļĢāđ‚āļ­āđ€āļžāļ™āļ‹āļ­āļĢāļŠ

āļŠ āļēāļŦāļĢāļš Web service āđāļšāļšāļžāļĢāļ­āļāļ‹āļĒāļ­āļ™āļāļĨāļš (Reverse Proxy) āđāļĨāļ°āļāļēāļĢāļĨāļ­āļāļ­āļ™āļĢāļ°āļšāļ•āļ§āļ•āļ™āđƒāļ™āđ€āļšāļ­āļ‡āļ•āļ™

(Basic Authentication) āđ€āļžāļ­āđƒāļŠāļˆāļ”āļāļēāļĢāļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļœāļēāļ™ HTTP āļŦāļĢāļ­ HTTPS āļ‚āļ­āļ‡ Kibana

Page 43: Takpong Boontung - msit.mut.ac.th

34

3.2.5 Elastic Security

āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āđ€āļžāļĄāļŸāļ‡āļāļŠāļ™ Security āđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡ Authentication āļāļ­āļ™āđ€āļ‚āļēāđƒāļŠāļ‡āļēāļ™āļĢāļ°āļšāļš ELK āđ„āļ”āļ•āļ­āļ‡

āļĄāļāļēāļĢ Login āđ€āļ‚āļēāļ­āļāļ„āļĢāļ‡āļ™āļ‡ āļ‹āļ‡āđ€āļ›āļ™āđ€āļ›āļ”āļŸāļ‡āļāļŠāļ™āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ”āļēāļ™āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļĒāđ€āļžāļĄāļ‚āļ™

3.2.6 Visualizing and Dashboard

- āđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āļĄāļ‹āļ­āļŸāļ•āđāļ§āļĢ Kibana āđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļ”āļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļˆāļēāļ Elasticsearch

3.3 āļāļēāļĢāļ­āļ­āļāđāļšāļšāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļš

āļŠ āļēāļŦāļĢāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļāļēāļĢāļ•āļ”āļ•āļ‡ āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļ•āļ”āļ•āļ‡āđ„āļ”āļšāļ™āđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒāļŦāļĢāļ­āļšāļ™āļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡

āđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒ (Virtual Machine) āđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ™āļˆāļ°āļ— āļēāļāļēāļĢāļ•āļ”āļ•āļ‡āļšāļ™āļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āđāļĄāļ‚āļēāļĒāļ—āļ‡āļŦāļĄāļ”

3.3.1 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ CentOS Linux

āđ‚āļ”āļĒāļ‹āļ­āļŸāļ—āđāļ§āļĢāļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ (ELK) āļˆāļ°āļ— āļēāļāļēāļĢāļ•āļ”āļ•āļ‡āļšāļ™āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ CentOS Linux Version 7 āļ‹āļ‡āđ€āļ›āļ™ Virtual Machine (VM) āļ­āļĒāļšāļ™āļĢāļ°āļšāļš VMWare Workstation

āļ āļēāļžāļ— 19 āļŦāļ™āļēāļˆāļ­āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢ CentOS Version 7

3.3.2 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš Elasticsearch, Logstash āđāļĨāļ° Kibana

āļ•āļ”āļ•āļ‡āļ‹āļ­āļŸāļ—āđāļ§āļĢ ElasticSearch, Logstash, Kibana āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒāļŦāļĢāļ­āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆ āļēāļĨāļ­āļ‡ (Virtual Machine) āļ‹āļ‡āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāļŠāļšāļ„āļ™āļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆāļēāļāļ­āļ›āļāļĢāļ“āđ€āļ„āļĢāļ­āļ‚āļēāļĒāđāļĨāļ°āļĢāļ°āļšāļšāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđƒāļ™āļĢāļ›āđāļšāļš Grid View, āđāļŠāļ”āļ‡āļŦāļĢāļ­āļ‹āļ­āļ™āđāļ–āļ§āļ‚āļ­āļĄāļĨ, āļāļēāļĢāļˆāļ”āđ€āļĢāļĒāļ‡āļŸāļĨāļ”āļ•āļēāļ‡ āđ† āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ, āđāļŠāļ”āļ‡āļāļĢāļēāļŸāđƒāļ™āļĢāļ›āđāļšāļš histograms, line graphs, pie charts, sunbursts āđāļĨāļ°āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļš geolocation āđ„āļ”

Page 44: Takpong Boontung - msit.mut.ac.th

35

āļ āļēāļžāļ— 20 āļŦāļ™āļēāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļ‚āļ­āļ‡āļ‹āļ­āļŸāļ—āđāļ§āļĢ Kibana

3.3.3 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš NGINX

āļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš NGINX āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒāļŦāļĢāļ­āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆ āļēāļĨāļ­āļ‡ (Virtual Machine) āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢ Reverse Proxy āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļš Kibana āļ— Port 5601 āđ€āļžāļ­āđƒāļŠāļˆāļ”āļāļēāļĢāļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļœāļēāļ™ HTTP āđ‚āļ”āļĒāļ— āļēāļāļēāļĢ redirect āđ„āļ›āļ— HTTPS āļ­āļ•āđ‚āļ™āļĄāļ• āļ”āļ‡āļ āļēāļžāļ”āļēāļ™āļĨāļēāļ‡

āļ āļēāļžāļ— 21 āļāļēāļĢāļ•āļ‡āļ„āļē NGINX

Page 45: Takpong Boontung - msit.mut.ac.th

36

3.3.4 āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļš Apache Kafka

āļāļēāļĢāļ•āļ”āļ•āļ‡āļ‹āļ­āļŸāļ•āđāļ§āļĢ Kafka āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒāļŦāļĢāļ­āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆ āļēāļĨāļ­āļ‡ (Virtual Machine) āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļ— āļē Data pipeline āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļ›āļ™āļĢāļ›āđāļšāļšāļŠāļ•āļĢāļĄāļ‚āļ­āļĄāļĨ (Stream Data) āđ„āļ”āđāļšāļšāđƒāļāļĨāđ€āļ„āļĒāļ‡āđ€āļ§āļĨāļēāļˆāļĢāļ‡ (Near Real-Time)

āļ āļēāļžāļ— 22 āļ āļēāļž Kafka āļĢāļ›āđāļšāļš Single Node

3.3.5 āļ­āļ­āļāđāļšāļšāļĢāļ›āđāļšāļšāļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨ (Parser Logs)

āđ‚āļ”āļĒāđƒāļ™āļŠāļ§āļ™āļ™āļˆāļ°āļ— āļēāļ‡āļēāļ™āļšāļ™āļ‹āļ­āļŸāļ•āđāļ§āļĢ Logstash āđ€āļ›āļ™āļŦāļĨāļāđ€āļžāļ­āđƒāļŠ Grok Pattern āđāļĨāļ° Regex āđƒāļ™āļāļēāļĢāļŠāļ§āļĒāļāļ™āđāļĒāļāļ‚āļ­āļĄāļĨāļ”āļš (Raw Logs) āđ€āļžāļ­āļˆāļ”āļāļēāļĢ Field āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ”āļšāļ—āđ„āļ”āļĢāļšāļĄāļēāļˆāļēāļāļ­āļ›āļāļĢāļ“āļ•āļēāļ‡ āđ† āđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āđ€āļžāļ­āļĄāļēāļˆāļ”āđ€āļĢāļĒāļ‡āđƒāļ™āļĢāļ›āđāļšāļšāļ—āļˆāļ”āļāļēāļĢāđāļĨāļ°āđ€āļ‚āļēāđƒāļˆāļ‡āļēāļĒ āđƒāļ™āļ•āļ§āļ­āļĒāļēāļ‡āļ•āļēāļĄāļ•āļēāļĢāļēāļ‡āļ”āļēāļ™āļĨāļēāļ‡ āđ‚āļ”āļĒāļ­āļ­āļāđāļšāļš Pattern āļŸāļĨāļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ—āļˆāļ°āļŠāļ‡āđ€āļ‚āļēāļĄāļēāļ—āļĢāļ°āļšāļšāļˆāļ°āļ­āļēāļ‡āļ­āļ‡āđƒāļ™āļŦāļ§āļ‚āļ­ 2.4.3.5.2 āļ•āļ§āļāļĢāļ­āļ‡ Grok

3.3.5.1 āļāļēāļĢāļ āļēāļŦāļ™āļ”āļŸāļĨāļ”āļ‚āļ­āļĄāļĨ (Field Data)

āļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāļ āļēāļŦāļ™āļ”āļŸāļĨāļ”āļ‚āļ­āļĄāļĨ (Field Data) āļ‚āļ­āļ‡āļ­āļ›āļāļĢāļ“ Firewall āđ‚āļ”āļĒāļ•āļ­āļ‡āļ™ āļēāļ•āļ§āļ­āļĒāļēāļ‡āļ‚āļ­āļ‡ Logs āļĄāļēāļˆāļēāļāļ­āļ›āļāļĢāļ“āļ•āļēāļ‡ āđ† āđ€āļžāļ­āļ™ āļēāļĄāļēāļ­āļ­āļāđāļšāļšāļŠāļ­āļ‚āļ­āļ‡āļŸāļĨāļ” (Field Name) āđāļĨāļ°āđ€āļ‚āļĒāļ™ Grok Pattern āļŦāļĢāļ­ Regular Expression Parser āđƒāļ™āļāļĢāļ“āļ—āđ„āļĄāļŠāļēāļĄāļēāļĢāļ–āđƒāļŠ Grok Pattern āđ„āļ”

āļ•āļēāļĢāļēāļ‡āļ— 5 āļāļēāļĢāļ āļēāļŦāļ™āļ”āļŸāļĨāļ”āļ‚āļ­āļĄāļĨ (Field Data) āļ‚āļ­āļ‡ Snort-NIDS āļ—āđƒāļŠāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

āļŠāļ­āļ‚āļ­āļ‡āļŸāļĨāļ” (Field Name) Grok pattern āļŦāļĢāļ­ Regex parser

Timestamp %{SYSLOGTIMESTAMP:Timestamp}

DeviceSource %{SYSLOGHOST:DeviceSource}

Rule Name (?<Rule Name>.*?)

Classification %{DATA:Classification}

Priority %{DATA:Priority}

Protocol %{DATA:Protocol}

Src_IP %{DATA:Src_IP}

Page 46: Takpong Boontung - msit.mut.ac.th

37

āļŠāļ­āļ‚āļ­āļ‡āļŸāļĨāļ” (Field Name) Grok pattern āļŦāļĢāļ­ Regex parser

Src_Port %{DATA:Src_Port}

Dst_IP %{DATA:Dst_IP}

Dst_Port %{GREEDYDATA:Dst_Port}

3.3.5.2 āļāļēāļĢāļŠāļĢāļēāļ‡ Fields Data

āļāļēāļĢāļŠāļĢāļēāļ‡ Fields Data āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡āļ”āļ§āļĒāļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger āđƒāļ™ Kibana āđāļĨāļ°āļāļēāļĢāļ™ āļē Grok Pattern āđ„āļ›āđƒāļŠāđƒāļ™ Logstash āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāđ„āļ”āļ”āļ‡āļ™

âžĒ āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger āđƒāļ™āđ€āļĄāļ™āļ‚āļ­āļ‡ Kibana > Dev Tools āļ•āļēāļĄāļ āļēāļž

āļ āļēāļžāļ— 23 āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger āđƒāļ™ Kibana

āđ€āļ›āļ™āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger āđƒāļ™ Kibana āļ‹āļ‡āļˆāļ°āļ— āļēāļāļēāļĢāļāļ”āļ—āđ€āļĄāļ™ Dev

Tools (1) āđāļĨāļ°āļ— āļēāļāļēāļĢāļ™ āļē Raw Logs āļ—āđ„āļ”āļˆāļēāļāļ­āļ›āļāļĢāļ“āļ•āļēāļ‡ āđ† āļĄāļēāđƒāļŠāđƒāļ™āļŠāļ­āļ‡ Sample Data (2) āđāļĨāļ°āļ— āļēāļāļēāļĢ

āđ€āļ‚āļĒāļ™ Grok Pattern āđƒāļ™āļŠāļ­āļ‡ Grok Pattern (3) āļ—āļ”āļŠāļ­āļšāļ§āļē Grok Pattern āđƒāļŠāļ‡āļēāļ™āđ„āļ”āļŦāļĢāļ­āđ„āļĄāđƒāļŦāļāļ”āļ— Simu-

late (4)

Page 47: Takpong Boontung - msit.mut.ac.th

38

āļ āļēāļžāļ— 24 āļ āļēāļžāļ•āļ§āļ­āļĒāļēāļ‡āļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern āđ‚āļ”āļĒāđƒāļŠ Grok Debugger

āļ āļēāļžāļ— 25 Field Data āļ—āđ„āļ”āļˆāļēāļāļāļēāļĢāđ€āļ‚āļĒāļ™ Grok Pattern

āļŦāļĨāļ‡āļˆāļēāļāļ—āđ„āļ” Grok Pattern āļ—āđƒāļŠāļ‡āļēāļ™āđ„āļ” āđƒāļŦāļ™ āļē Grok Pattern āđ„āļ›āđƒāļŠāļ‡āļēāļ™āđƒāļ™ Logstash āđ€āļžāļ­āđāļĒāļāļ§āđ€āļ„āļĢāļēāļ°āļŦāļ‚āļ­āļĄāļĨāļ—āđ„āļĄāļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļĨāļ‡āđƒāļ™āļ‚āļ­āļĄāļĨāļ—āļĄāđ‚āļ„āļĢāļ‡āļŠāļĢāļēāļ‡āļˆāļ‡āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļŠāļšāļ„āļ™āđāļĨāļ°āļāļĢāļ­āļ‡āđ„āļ” āļ­āļĒāļēāļ‡āļ‡āļēāļĒāļ”āļēāļĒ āđ‚āļ”āļĒāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter āđ‚āļ”āļĒāļāļēāļĢāđƒāļŠ tags āļ—āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ field āđ„āļ§āļ•āļ­āļ™āđāļĢāļ āđāļĨāļ°āđƒāļŠāļŸāļ‡āļāļŠāļ™ grok āđƒāļ™āļāļēāļĢ match āļˆāļēāļ field message

āļ āļēāļžāļ— 26 āļāļēāļĢāļ™ āļē Grok Pattern āđ„āļ›āđƒāļŠāđƒāļ™ Logstash

Page 48: Takpong Boontung - msit.mut.ac.th

39

3.3.6.3 āļāļēāļĢāļŠāļĢāļēāļ‡ Input Filter

āđ€āļžāļ­āđ€āļ›āļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡ āđ† āļ‹āļ‡āļ—āđāļ™āļ°āļ™ āļēāļˆāļ°āđƒāļŦāļĢāļšāļ‚āļ­āļĄāļĨāđ€āļ›āļ™āđāļšāļš Syslog āđ‚āļ”āļĒāļāļēāļĢ

āđ€āļ‚āļĒāļ™ Input Filter āļ āļēāļŦāļ™āļ” Protocol āļ āļēāļŦāļ™āļ” Type āļ‚āļ­āļ‡ logs āđāļĨāļ°āļāļēāļĢāļ āļēāļŦāļ™āļ” Port āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ

āļ āļēāļžāļ— 27 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļˆāļēāļ Beats

āļ āļēāļžāļ— 28 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ Syslog

āļ āļēāļžāļ— 29 Input Filter āļ‚āļ­āļ‡āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨāļˆāļēāļ Kafka

3.3.6.4 āļāļēāļĢāļŠāļĢāļēāļ‡ Tags Filter

- āļāļēāļĢāļŠāļĢāļēāļ‡ Filter logs āđ‚āļ”āļĒāļāļēāļĢāļ āļēāļŦāļ™āļ” Tags

āļˆāļēāļāļāļēāļĢāļ­āļ­āļāđāļšāļš field data āđƒāļ™āđ€āļšāļ­āļ‡āļ•āļ™ āđ€āļĢāļēāļˆāļ°āļ— āļēāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter Logs āđāļĨāļ°āļāļēāļĢāļ āļēāļŦāļ™āļ” tags āļāļ­āļ™āđ‚āļ”āļĒāđƒāļŠ Logstash āđ‚āļ”āļĒāļāļēāļĢāđ€āļ‚āļĒāļ™ filter logs āđ‚āļ”āļĒāļāļēāļĢāļ āļēāļŦāļ™āļ” tags āļĄāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āļ”āļ‡āļ™

Page 49: Takpong Boontung - msit.mut.ac.th

40

âžĒ āđƒāļŠāđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ­āļ›āļāļĢāļ“āļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļ‚āļēāļĄāļē

âžĒ āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡ Visualize

âžĒ āđƒāļŠāđƒāļ™āļāļēāļĢāđāļšāļ‡āđāļĒāļāļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ­āļ›āļāļĢāļ“āļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāđ€āļ‚āļēāļĄāļē

āļ āļēāļžāļ— 30 āļāļēāļĢāđ€āļ‚āļĒāļ™ Tags Filter āđ€āļžāļ­āļĢāļ°āļšāļ­āļ›āļāļĢāļ“

āļˆāļēāļāļ āļēāļžāļ•āļ§āļ­āļĒāļēāļ‡ āļˆāļ°āļ āļēāļŦāļ™āļ” type āļ‚āļ­āļ‡ logs āļāļ­āļ™ āļ‹āļ‡āļ•āļ­āļ™ Input Filter āđ€āļĢāļēāļ āļēāļŦāļ™āļ”āđƒāļŦāļĢāļšāđ€āļ›āļ™

Syslog Type āđ€āļŠāļĢāļˆāđāļĨāļ§āļ— āļēāļāļēāļĢāđ€āļ‚āļĒāļ™ if [message] āđ€āļžāļ­āđƒāļŦāļ„āļ™āļŦāļēāļ„ āļēāļ—āđ€āļ›āļ™ keyword āđ€āļ‰āļžāļēāļ°āļ—āļ­āļĒāđƒāļ™ Raw

Log āļ™āļ™ āļˆāļēāļāļ™āļ™āļˆāļ°āļ— āļēāļāļēāļĢāđƒāļŠ Mutate Filter āđƒāļ™āļāļēāļĢāđ€āļžāļĄāļ‚āļ­āļĄāļĨ Fields Data āđ€āļ‰āļžāļēāļ°āļ—āļŠāļ­āļ§āļē tag āđ‚āļ”āļĒāđƒāļŦāļ„āļē

āđ€āļ—āļēāļāļšāļŠāļ­āļ­āļ›āļāļĢāļ“āļŦāļĢāļ­āļ›āļĢāļ°āđ€āļ āļ—āļ‚āļ­āļ‡āļ­āļ›āļāļĢāļ“āļ—āļ•āļ­āļ‡āļāļēāļĢāđ€āļŠāļ™ āļŠāļ­āļ­āļ›āļāļĢāļ“āļ„āļ­ NIDS-Snort

3.3.6.5 āļāļēāļĢāļŠāļĢāļēāļ‡ Output Filter āļ”āļ§āļĒ Logstash

āļāļēāļĢāđ€āļ‚āļĒāļ™ Output Filter āļŠ āļēāļŦāļĢāļšāļŠāļ‡āļ‚āļ­āļĄāļĨāļ­āļ­āļāđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āļ—āļ•āļ­āļ‡āļāļēāļĢ āđ‚āļ”āļĒāđƒāļŠ Logstash āļ‹āļ‡āđƒāļ™āļ—āļ™āļˆāļ°āļ— āļēāļāļēāļĢāļ•āļ‡āļ„āļēāđƒāļŦāļŠāļ‡āđ„āļ›āļĒāļ‡ Elasticsearch āđ€āļžāļ­āļˆāļ”āļ— āļē Index āļ‹āļ‡āļŠāļēāļĄāļēāļĢāļ–āļ— āļēāļāļēāļĢāđ€āļ‚āļĒāļ™ Output Filter āđ„āļ”āļ”āļ‡āļ™

- Output Filter āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Elasticsearch

āļ‹āļ‡āļˆāļ°āđ€āļ›āļ”āļŦāļ§āļ”āļ§āļĒāļāļēāļĢāļŠāļĢāļēāļ‡ output āđāļĨāļ°āļ āļēāļŦāļ™āļ”āļ§āļēāļ–āļēāđ€āļˆāļ­ tags āļ•āļēāļĄāļŠāļ­āļ­āļ›āļāļĢāļ“āļ—āļŠāļ‡āļ‚āļ­āļĄāļĨāļĄāļēāđƒāļŦāļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ—āļ— āļēāļāļēāļĢāđāļ›āļĨāļ‡āđ€āļ›āļ™ JSON Format Documents āđāļĨāļ§āđ„āļ›āļĒāļ‡ Elasticsearch āđāļĨāļ°āļ•āļēāļĄāļ”āļ§āļĒ Port 9200 āđāļĨāļ°āđƒāļŦāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ•āļēāļĄāļ—āļ•āļ­āļ‡āļāļēāļĢāļ•āļēāļĄāļ”āļ§āļĒ parameter āļ—āļĢāļ°āļš āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™ āđ€āļžāļ­āđāļĒāļ Index āđƒāļ™āļāļēāļĢāđ€āļāļšāđƒāļŦāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđ„āļ”āļ‡āļēāļĒāļ‚āļ™ āđāļĨāļ°āđ€āļžāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ™āļēāļ”āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ§āļēāļĄāđ€āļĒāļ­āļ°āđāļ„āđ„āļŦāļ™āđƒāļ™āđāļ•āļĨāļ°āļ§āļ™āđ„āļ”āļ”āļ§āļĒ āđ‚āļ”āļĒāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āļˆāļ°āļ­āļĒāļ”āļ‡āļ āļēāļž

āļ āļēāļžāļ— 31 āļāļēāļĢāđ€āļ‚āļĒāļ™ Output Filter āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Elasticsearch

Page 50: Takpong Boontung - msit.mut.ac.th

41

āļšāļ—āļ— 4

āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļš

4.1 āļ§āļ˜āļāļēāļĢāđāļĨāļ°āļŠāļ āļēāļžāđāļ§āļ”āļĨāļ­āļĄāļ‚āļ­āļ‡āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡

āļˆāļēāļāļāļēāļĢāļ­āļ­āļāđāļšāļšāļœāļ‡āđ‚āļ„āļĢāļ‡āļāļēāļĢāđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āđāļĨāļ°āļāļēāļĢāļ­āļ­āļāđāļšāļšāļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āļ•āļēāļĄāļšāļ—āļ— 3

āļ— āļēāđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āļ­āļ­āļāđāļšāļšāđāļœāļ™āļœāļ‡āđ€āļ„āļĢāļ­āļ‚āļēāļĒāđ€āļžāļ­āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ•āļēāļĄāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āđ„āļ” āļ”āļ‡āļĢāļ›āļ— 32 āļ”āļ‡āļ™

āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ™āļˆāļ°āļ” āļēāđ€āļ™āļ™āļāļēāļĢāđ‚āļ”āļĒāđƒāļŠ Kali Linux āđāļĨāļ°āļŠāļĢāļēāļ‡āļŠāļ„āļĢāļ› (Script) āļ— āļēāļāļēāļĢ

āļ—āļ”āļŠāļ­āļšāđ‚āļˆāļĄāļ• āļĢāļ°āļšāļšāđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđāļĄāļ‚āļēāļĒāļĢāļ°āļšāļšāļ›āļāļšāļ•āļāļēāļĢāļĨāļ™āļāļ‹ (Linux Server) āđāļĨāļ°āļĄāđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡

āđ„āļŸāļĨāļ§āļ­āļĨ (Firewall) āđ‚āļ”āļĒāđƒāļŠ PfSense āļ‹āļ‡āļ— āļēāđ€āļ›āļ™āđ€āļāļ•āđ€āļ§āļĒ (Gateway) āđ€āļžāļ­āļ•āļĢāļ§āļˆāļŠāļ­āļšāļžāļĪāļ•āļāļĢāļĢāļĄāļāļēāļĢāđƒāļŠāļ‡āļēāļ™

āđ€āļ„āļĢāļ­āļ‚āļēāļĒ āđāļĨāļ°āļĄāļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāļ—āļēāļ‡āđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ (Network Intrusion Detection

System: SNORT) āđ€āļžāļĄāđ€āļ•āļĄāđ€āļ‚āļēāļĄāļē āđ€āļžāļ­āđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•āļ•āļēāļĄāļĢāļ›āđāļšāļš (Signature Attack)

āļ•āļēāļ‡ āđ† āđ‚āļ”āļĒāļ­āļ›āļāļĢāļ“āļ—āļ‡āļŦāļĄāļ”āļ™āļˆāļ°āļŠāļ‡āļ‚āļ­āļĄāļĨ Logs āđ„āļ›āđƒāļŦāļĢāļ°āļšāļšāļˆāļ”āļāļēāļĢāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļēāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āđāļĨāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™āļĢāļ°āļšāļš Line Notify āļ•āļēāļĄāđāļœāļ™āļœāļ‡āļ āļēāļžāļ”āļēāļ™āļĨāļēāļ‡āļ™

āļ āļēāļžāļ— 32 āđāļœāļ™āļœāļ‡āļ āļēāļžāļ§āļ˜āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļšāđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

āđ‚āļ”āļĒāļ—āđāļ•āļĨāļ°āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢāļŠāļēāļĄāļēāļĢāļ–āđ€āļŠāļ­āļĄāļ•āļ­āļ­āļ­āļāļ­āļ™āđ€āļ•āļ­āļĢāđ€āļ™āļ•āđ„āļ”āđ€āļžāļĢāļēāļ°āļˆāļ°āļ•āļ­āļ‡āļ— āļēāļāļēāļĢāđ€āļ—āļĒāļšāđ€āļ§āļĨāļēāļāļš

āđ€āļ‹āļĢāļŸāđ€āļ§āļ­āļĢ NTP āļ—āļ­āļĒāļ āļēāļĒāļ™āļ­āļ āđ€āļžāļ­āđƒāļŦāļĄāđ€āļ§āļĨāļēāļ—āļ•āļĢāļ‡āļāļ™ āđāļĨāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™āļĢāļ°āļšāļš Line Notify āđ‚āļ”āļĒāđāļ•

āļĨāļ°āđ€āļ„āļĢāļ­āļ‡āļĄāļāļēāļĢāļ•āļ”āļ•āļ‡āļ‹āļ­āļŸāļ•āđāļ§āļĢ āļ”āļ‡āļ™

Page 51: Takpong Boontung - msit.mut.ac.th

42

1. Attacker (Kali Linux) āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āđ‚āļˆāļĄāļ•āđ‚āļ”āļĒāđƒāļŠ shell script

2. Firewall (PfSense) āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™ Gateway

3. NIDS (SNORT āļšāļ™ CentOS 7) āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ

4. Linux (CentOS 7) āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļĨāļāļ‚āļēāļĒ

5. Centralize Logs Management (CentOS 7 + ELK + Kafka + NGINX) āļ— āļēāļŦāļ™āļēāļ—āđ€āļ›āļ™

āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļĄ Kibana āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āđ‚āļ”āļĒāļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡āļ—āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āđƒāļ™āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ™ āļˆ āļēāļĨāļ­āļ‡āļŠāļ āļēāļ§āļ°āđ€āļŠāļĄāļ­āļ™āļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļˆāļĢāļ‡ āđ‚āļ”āļĒāļĢāļ°āļšāļš

āļ•āļ”āļ•āļ‡āļšāļ™āļĢāļ°āļšāļš Virtual Machine (VM) āļ—āļ‡āļŦāļĄāļ”

4.1.1 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

āļ— āļēāļāļēāļĢāļˆ āļēāļĨāļ­āļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļˆāļēāļ Attacker (Kali Linux) āđ‚āļ”āļĒāļāļēāļĢāļŠāļĢāļēāļ‡āļŠāļ„āļĢāļ›āļāļēāļĢāđ‚āļˆāļĄāļ•āđƒāļ™āļĢāļ›āđāļšāļšāđ€āļ”āļē

āļĢāļŦāļŠāļœāļēāļ™ (Brute Force Attack) āđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļĨāļāļ‚āļēāļĒ Linux āđ‚āļ”āļĒāļˆāļ°āļŠāļĢāļēāļ‡āļāļāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļšāđ„āļ§āļ—

āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ‹āļ‡āļ”āļāļˆāļšāđ€āļŦāļ•āļāļēāļĢāļ“āļ āļēāļĒāđƒāļ™āđ€āļ„āļĢāļ­āļ‚āļēāļĒāļ‚āļ­āļ‡āļĢāļ°āļšāļšāļˆ āļēāļĨāļ­āļ‡āļ™ āđ€āļĄāļ­āđ€āļŦāļ•āļāļēāļĢāļ“

āļ•āļĢāļ‡āļāļšāļĢāļ›āđāļšāļš Signature āļāļˆāļ°āļ— āļēāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ‚āļ”āļĒāļāļēāļĢāļŠāļĢāļēāļ‡āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ‚āļ™āđāļĨāļ°āļŠāļ‡

āļ‚āļ­āļĄāļĨāļ”āļ‡āļāļĨāļēāļ§āđ„āļ›āļ—āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļš

āļĢāļ°āļšāļšāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļ‡ Logstash āđāļĨāļ° Apache Kafka āđ€āļžāļ­āđ€āļ›āļĢāļĒāļšāđ€āļ—āļĒāļš āđāļĨāļ°āļ— āļēāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ—āļŦāļ™āļē

āđāļŠāļ”āļ‡āļœāļĨ (Dashboard) āļšāļ™ Kibana

āļ āļēāļžāļ— 33 āļŦāļ™āļēāļĨāļ­āļāļ­āļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

Page 52: Takpong Boontung - msit.mut.ac.th

43

4.1.2 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•

āđ‚āļ”āļĒāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļˆāļēāļāļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒāļĄāļē

āļ— āļēāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify āđ‚āļ”āļĒāļāļēāļĢāļ™ āļēāļ‚āļ­āļĄāļĨāļˆāļēāļāļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨ

āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļŠāļ‡āļ­āļ­āļāļĄāļēāđ€āļ›āļ™āđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļĄāļĨāļ”āļšāđāļĨāļ°āļ— āļēāļāļēāļĢāļ•āļ”āđ€āļ­āļēāđƒāļ™āļŠāļ§āļ™āļ‚āļ­āļ‡āļŠāļ­āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•

āļ— āļēāļāļēāļĢāļŠāļĢ āļēāļ‡āļŠāļ„āļĢāļ›āđāļĨāļ°āļ•āļ‡āļ„āļēāļāļēāļĢāļŠāļ‡āļ­āļ­āļāđ„āļ›āļ— Line Application āļ—āļ 1 āļ™āļēāļ—āļŦāļĢāļ­āđ€āļĄāļ­āļĄāđ€āļŦāļ•āļāļēāļĢāļ“

4.1.3 āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāļˆāļ”āļ— āļēāļĢāļēāļĒāļ‡āļēāļ™

āļ— āļēāļāļēāļĢāļ­āļ­āļāļĢāļēāļĒāļ‡āļēāļ™āļˆāļēāļāļŦāļ™āļēāļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨ (Dashboard) āļ•āļ§āļ­āļĒāļēāļ‡āđ€āļāļĒāļ§āļāļšāđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•

āļ”āļ§āļĒāđ€āļ—āļ„āļ™āļ„ Brute Force Attack āđāļĨāļ°āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āļĢāļ›āđāļšāļš PDF āđ„āļŸāļĨ

4.2 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡

4.2.1 āļœāļĨāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļĢāļ°āļšāļš āđāļĨāļ°āļ—āļ”āļŠāļ­āļšāļŠāļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡

āđ€āļ‚āļēāļŠāļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ‚āļ”āļĒāđ€āļ‚āļēāļœāļēāļ™ Web

Browser āđāļĨāļ°āļ— āļēāļāļēāļĢ Login āđ€āļ‚āļēāļŠāļĢāļ°āļšāļšāđ€āļžāļ­āļĄāļ­āļ™āđ€āļ•āļ­āļĢāđāļĨāļ°āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļœāļēāļ™ Dashboard

āļ āļēāļžāļ— 34 āļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāļ­āļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

- āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāđ‚āļ”āļĒāļāļēāļĢ Remote āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ„āļ”āđāļ Attacker (Kali Linux),

Snort-NIDS, Elaska (ELK) āđāļĨāļ°āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux āļ”āļ‡āļ āļēāļžāļ— 35 - 36

Page 53: Takpong Boontung - msit.mut.ac.th

44

āļ āļēāļžāļ— 35 āļ āļēāļžāļŦāļ™āļēāļˆāļ­ Remote Gateway āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ€āļžāļ­āļ—āļ”āļŠāļ­āļš

āļ āļēāļžāļ— 36 āļ āļēāļžāļŦāļ™āļēāļˆāļ­āļāļēāļĢ remote āļœāļēāļ™ Remote Gateway āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ€āļžāļ­āļ—āļ”āļŠāļ­āļš

- āļ— āļēāļāļēāļĢ Run Script āļšāļ™ Attacker (Kali Linux) āđ€āļžāļ­āļ—āļ”āļŠāļ­āļšāđ‚āļˆāļĄāļ•āđ„āļ›āļĒāļ‡āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ

Linux āđāļĨāļ° Snort-NIDS āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļˆāļšāđāļĨāļ°āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļˆāļĢāļēāļˆāļĢ

āļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļ— āļēāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āļŠāļ‡āļ‚āļ­āļĄāļĨāđāļŠāļ”āļ‡āļœāļĨāđ„āļ›āļĒāļ‡āļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨ Dashboard āļ”āļ‡āļ āļēāļžāļ— 45

āđāļĨāļ°āļĄāļ‚āļ­āļĄāļĨāļ”āļšāļ”āļ‡āļ āļēāļžāļ— 37 - 44

Page 54: Takpong Boontung - msit.mut.ac.th

45

āļ āļēāļžāļ— 37 āļ— āļēāļāļēāļĢ run script āļšāļ™ Attacker (Kali Linux)

āļ āļēāļžāļ”āļēāļ™āļĨāļēāļ‡āļ— āļēāļāļēāļĢ SSH āđ„āļ›āļ—āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ (SNORT-NIDS) āđāļĨāļ°āļ— āļēāļāļēāļĢ

āļ•āļĢāļ§āļˆāļŠāļ­āļšāļˆāļēāļāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļšāļ™āļĢāļ°āļšāļš

āļ āļēāļžāļ— 38 āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļŦāļ•āļāļēāļĢāļ“āļšāļ™āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ SNORT-NIDS

Page 55: Takpong Boontung - msit.mut.ac.th

46

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļš

āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļšāļ™ Gateway Firewall

āļ āļēāļžāļ— 39 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ Gateway Firewall

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļš

āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļšāļ™āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ (SNORT-NIDS)

āļ āļēāļžāļ— 40 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS

Page 56: Takpong Boontung - msit.mut.ac.th

47

āļ āļēāļžāļ— 41 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS

āļ āļēāļžāļ— 42 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļ— āļēāļāļēāļĢāđāļĒāļāļŸāļĨāļ”āđāļĨāļ§āļ—āļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•

āļ āļēāļžāļ— 43 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļ–āļāđ‚āļˆāļĄāļ•āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

Page 57: Takpong Boontung - msit.mut.ac.th

48

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļš

āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

āļ āļēāļžāļ— 44 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ”āļšāļ—āļ— āļēāļāļēāļĢāđāļĒāļāļŸāļĨāļ”āļ—āļŠāļ‡āļĄāļēāļˆāļēāļāđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļšāļ™āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļš

āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļšāļ™āļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨ Kibana āļˆāļēāļāļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļ SNORT-NIDS

āļ āļēāļžāļ— 45 āļ•āļĢāļ§āļˆāļŠāļ­āļšāļŦāļ™āļēāđāļŠāļ”āļ‡āļœāļĨāļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āļāļšāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āļ”āļ§āļĒ Brute Force

Page 58: Takpong Boontung - msit.mut.ac.th

49

āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļŠāļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡āļ‹āļ‡āļ— āļēāļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļˆāļēāļ openweathermap.org

āđ‚āļ”āļĒāļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāđ€āļ§āļĨāļēāļˆāļĢāļ‡ Real-Time āđ‚āļ”āļĒāļ”āļ‡āļ‚āļ­āļĄāļĨāđ€āļ‰āļžāļēāļ° Bangkok āđ€āļ—āļēāļ™āļ™

āļ āļēāļžāļ— 46 āļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļāđ€āļžāļ­āļ‚āļ­ API āļ— openweathermap.org āđ€āļžāļ­āļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡

āļŠāļĢāļēāļ‡ Python script āđ€āļžāļ­āļ— āļēāļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ— Apache Kafka āđ‚āļ”āļĒāđƒāļŠ

āļ‚āļ­āļĄāļĨ API Key āđāļĨāļ° Topic āđƒāļ™āļāļēāļĢāđ€āļāļšāļ‚āļ­āļĄāļĨāļ™ āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ”āļ‡āļāļĨāļēāļ§āđ„āļ›āļ— Elasticsearch āđƒāļ™āļāļēāļĢ

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļšāļ™ Kibana āđ‚āļ”āļĒāđƒāļŠāļ„ āļēāļŠāļ‡ python weather.py āļ‚āļ­āļĄāļĨāļˆāļ°āļ–āļāļŠāļ‡āđ„āļ›āļĒāļ‡

Apache Kafka āļ— āļēāļāļēāļĢāđ€āļ‚āļēāļ„āļ§āļ­āļĒāļēāļ‡āļĢāļ§āļ”āđ€āļĢāļ§āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ—āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ

āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ•āļ­āđ„āļ›āļ”āļ‡āļ āļēāļžāļ— 47 - 48

āļ āļēāļžāļ— 47 āļŠāļĢāļēāļ‡ Python Script āđƒāļ™āļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļĒāļ‡ Apache Kafka

Page 59: Takpong Boontung - msit.mut.ac.th

50

āļ āļēāļžāļ— 48 āļ‚āļ­āļĄāļĨāļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļ Apache Kafka āđ€āļ‚āļēāļĄāļēāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļšāļ™āļĢāļ°āļšāļš

4.2.2 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ•

āđ€āļĄāļ­āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ•āđāļĨāļ§āļ‚āļ­āļĄāļĨāļāļēāļĢāđ‚āļˆāļĄāļ•āļ—āļ— āļēāļāļēāļĢāđāļĒāļāļŸāļĨāļ”āļ”āļ§āļĒ Logstash āđāļĨāļ§āļˆāļ°āļ— āļēāļāļēāļĢ

āļŠāļĢāļēāļ‡ Output Filter āđ€āļžāļ­āđ€āļāļšāđ€āļ›āļ™āļ‚āļ­āļĄāļĨāļ”āļšāđƒāļ™āļāļēāļĢāļ™ āļēāļ‚āļ­āļĄāļĨāļ™āļĄāļēāļ— āļēāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™āļĢāļ°āļšāļš Line Notify

āļ āļēāļžāļ— 49 āļŠāļĢāļēāļ‡ Output Filter āđ€āļžāļ­āļ™ āļēāļ‚āļ­āļĄāļĨāđ€āļŦāļ•āļāļēāļĢāļ“āļĄāļēāđ€āļāļšāđ€āļ›āļ™āļ‚āļ­āļĄāļĨāļ”āļš

āļ— āļēāļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ— āļēāļāļēāļĢāļ—āļ”āļŠāļ­āļšāļāļēāļĢāđ‚āļˆāļĄāļ• āļˆāļ°āđ€āļŦāļ™āļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļ

āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ SNORT-NIDS āļ–āļāļŠāļ‡āļĄāļēāļĒāļ‡āļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨ

āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļ™āļĢāļ›āđāļšāļšāļ‚āļ­āļĄāļĨāļ”āļšāļšāļ™āļĢāļ°āļšāļš

Page 60: Takpong Boontung - msit.mut.ac.th

51

āļ āļēāļžāļ— 50 āļ‚āļ­āļĄāļĨāļ”āļšāļ—āđ„āļ”āļˆāļēāļāļāļēāļĢāļ— āļē Output Filter āļ–āļāđ€āļāļšāđ„āļ§āļšāļ™āļĢāļ°āļšāļš

āļ— āļēāļāļēāļĢāđ€āļ‚āļēāđ€āļ§āļš āđ„āļ‹āļ—āļ‚āļ­āļ‡ Line Notify āđ€āļž āļ­āļ‚āļ­ API Token āļ™ āļēāļĄāļēāđƒāļŠāļ‡āļēāļ™āļāļšāļĢāļ°āļšāļšāļ„āļ™āļŦāļē

āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļ— āļēāļāļēāļĢāļŠāļĄāļ„āļĢāđ‚āļ”āļĒāđƒāļŠ Account Line āļ‚āļ­āļ‡āđ€āļĢāļē

āđ€āļ­āļ‡āđƒāļ™āļāļēāļĢāļŠāļĄāļ„āļĢ āđ‚āļ”āļĒāļāļēāļĢāļāļ”āļ—āļŠāļ­āļ‚āļ­āļ‡āđ€āļĢāļēāđāļĨāļ§āđ€āļĨāļ­āļ My Page āđ€āļŠāļĢāļˆāđāļĨāļ§āļāļ”āļ— Generate Token āļ”āļ‡āļ āļēāļžāļ—

51 - 53

āļ āļēāļžāļ— 51 āđ€āļ‚āļēāļŠāđ€āļ§āļšāđ„āļ‹āļ— Line Notify āđ€āļžāļ­āļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļ

āļ āļēāļžāļ— 52 āļŦāļĨāļ‡āļˆāļēāļāļŠāļĄāļ„āļĢāļŠāļĄāļēāļŠāļāđƒāļŦāđ€āļĨāļ­āļāļ— My Page

Page 61: Takpong Boontung - msit.mut.ac.th

52

āļ āļēāļžāļ— 53 āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Token āđ‚āļ”āļĒāļāļēāļĢāļāļ”āļ— Generate Token

āļŦāļĨāļ‡āļˆāļēāļāļāļ” Generate Token āļˆāļ°āļĄāļŦāļ™āļēāļ•āļēāļ‡āđƒāļŦāļ•āļ‡āļŠāļ­āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļĨāļ­āļāļāļĨāļĄāđƒāļ™āļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļāļēāļĢ

āđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļˆāļēāļāļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ‚āļ”āļĒāļāļēāļĢ

āļ—āļ”āļĨāļ­āļ‡āļ™āļˆāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āđ„āļ›āļ— Line āļĄāļēāļ—āļ•āļ§āđ€āļ­āļ‡

āļ āļēāļžāļ— 54 āļāļēāļĢ Generate Token āļ‚āļ­āļ‡ Line Notify

āļ āļēāļžāļ— 55 āļāļēāļĢ Generate Token āļ‚āļ­āļ‡ Line Notify āļˆāļ°āđ„āļ” Token āļĄāļēāđƒāļŠāļ‡āļēāļ™

Page 62: Takpong Boontung - msit.mut.ac.th

53

āļ āļēāļžāļ— 56 āļˆāļ°āđ„āļ” Token āļ—āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡āļ‚āļ™āđāļĨāļ°āļāļēāļĢāđ€āļŠāļ­āļĄāļ•āļ­āđ„āļ›āļĒāļ‡āļāļĨāļĄāļŦāļĢāļ­āļšāļ„āļ„āļĨāđƒāļ™ Line Account

āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ PHP āļŠāļ„āļĢāļ›āļ• āđ€āļžāļ­āļ— āļēāļāļēāļĢāļŠāļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āđƒāļ™āļ‚āļ­ 4.2.1

āļˆāļēāļāļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļœāļēāļ™ API Token āļ‚āļ­āļ‡ Line Noti-

fy āđ„āļ›āļĒāļ‡ Line Account

āļ āļēāļžāļ— 57 āļŠāļĢāļēāļ‡ PHP Script āđ€āļžāļ­āļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify API Token

Page 63: Takpong Boontung - msit.mut.ac.th

54

āļŦāļĨāļ‡āļˆāļēāļāļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļ•āļēāļĄāļ‚āļ­ 4.2.2 āļˆāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļ•āļēāļĄāđ€āļŦāļ•āļāļēāļĢāļ“āļ—āļ—āļ”āļŠāļ­āļšāđāļĨāļ°āļĄāļāļēāļĢāđāļˆāļ‡

āđ€āļ•āļ­āļ™āļœāļēāļ™āļĢāļ°āļšāļš Line Notify āđ„āļ›āļĒāļ‡ Line Account āļ—āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡āđ„āļ§

āļ āļēāļžāļ— 58 āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļˆāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify āđ„āļ›āļĒāļ‡ Line Account

āļ āļēāļžāļ— 59 āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāđ‚āļˆāļĄāļ•āļˆāļ°āļĄāļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Line Notify āđ„āļ›āļĒāļ‡ Line Account

Page 64: Takpong Boontung - msit.mut.ac.th

55

4.2.3 āļœāļĨāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļāļēāļĢāļˆāļ”āļ— āļēāļĢāļēāļĒāļ‡āļēāļ™

āļ— āļēāļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ‚āļ”āļĒāļŠāļ‡āļ­āļ­āļāđ€āļ›āļ™āđ„āļŸāļĨ PDF āđ‚āļ”āļĒāļāļēāļĢāđ€āļĨāļ­āļāđ€āļĄāļ™ Dashboard -> NIDS-

SNORT āđ€āļžāļ­āļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāļ—āļ”āļĨāļ­āļ‡āļ•āļēāļĄāļŦāļ§āļ‚āļ­ 4.2.1 āļ”āļ‡āļ āļēāļž 61 - 63

āļ āļēāļžāļ— 60 āļāļēāļĢāļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF

āļ āļēāļžāļ— 61 āļāļēāļĢāļŠāļĢāļēāļ‡āļĢāļēāļĒāļ‡āļēāļ™āđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF āđ€āļŠāļĢāļˆāļŠāļ™ āļŠāļēāļĄāļēāļĢāļ– Download āđ„āļ”

Page 65: Takpong Boontung - msit.mut.ac.th

56

āļ āļēāļžāļ— 62 āļŦāļ™āļēāļĢāļēāļĒāļ‡āļēāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļœāļĨāđ€āļ›āļ™āļĢāļ›āđāļšāļš PDF

Page 66: Takpong Boontung - msit.mut.ac.th

57

āļšāļ—āļ— 5

āļŠāļĢāļ›āļœāļĨāļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™

5.1 āļŠāļĢāļ›āļœāļĨāļāļēāļĢāļ” āļēāđ€āļ™āļ™āļ‡āļēāļ™

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ™āđ„āļ”āļ— āļēāļāļēāļĢāļˆāļ”āļ— āļēāļĢāļ°āļšāļšāļˆāļ”āđ€āļāļš āļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āđ€āļžāļ­āđƒāļŦāļœāđƒāļŠāļ‡āļēāļ™āļĢāļ°āļšāļšāļŠāļēāļĄāļēāļĢāļ–āļ„āļ™āļŦāļē āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨ āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨ āđ„āļ”āļ­āļĒāļēāļ‡āļŠāļ°āļ”āļ§āļ

āļĢāļ§āļ”āđ€āļĢāļ§āđāļĨāļ°āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž āļĢāļ§āļĄāļ–āļ‡āļ›āļĢāļ°āļŦāļĒāļ”āļ„āļēāđƒāļŠāļˆāļēāļĒ āđ€āļ™āļ­āļ‡āļˆāļēāļāđ„āļ”āļĄāļāļēāļĢāļ™ āļēāļ‹āļ­āļŸāļ•āđāļ§āļĢāđāļšāļš Open

Source āļ•āļēāļ‡ āđ† āļĄāļēāļ›āļĢāļ°āļĒāļāļ•āđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļš āđ‚āļ”āļĒāļŠāļĢāļ›āđ€āļ›āļ™āļ‚āļ­ āđ† āđ„āļ”āļ”āļ‡āļ™

5.1.1 āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļšāđāļ•āļ‡āļ•āļēāļĄāļ„āļ§āļēāļĄāļ•āļ­āļ‡āļāļēāļĢāđ„āļ” āļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļĄāđ€āļ•āļĄāļŸāļ‡āļāļŠāļ™āļāļēāļĢāļ— āļēāļ‡āļēāļ™āļ•āļēāļ‡ āđ† āđ„āļ”

5.1.2 āļŠāļēāļĄāļēāļĢāļ–āļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāđ„āļ”āļŦāļĨāļēāļāļŦāļĨāļēāļĒ āđāļĨāļ°āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđ„āļ”āļĢāļ§āļ”āđ€āļĢāļ§āļˆāļēāļāļĻāļ™āļĒāļāļĨāļēāļ‡ āđāļĨāļ°

āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđ„āļ”āļŦāļĨāļēāļāļŦāļĨāļēāļĒāļĢāļ›āđāļšāļš

5.1.3 āļŠāļēāļĄāļēāļĢāļ–āđāļˆāļ‡āđ€āļ•āļ­āļ™āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢāđ‚āļˆāļĄāļ• āļ•āļēāļĄāļ—āļŠāļĢāļēāļ‡āļ„āļ§āļēāļĄāļŠāļĄāļžāļ™āļ˜āļŦāļĢāļ­āļ•āļēāļĄāđ€āļ‡āļ­āļ™āđ„āļ‚āđ„āļ”

5.2 āļ›āļāļŦāļēāđāļĨāļ°āļ­āļ›āļŠāļĢāļĢāļ„āļ‚āļ­āļ‡āļāļēāļĢāļ” āļēāđ€āļ™āļ™āļāļēāļĢ

āļĢāļ°āļšāļšāļĄāļ‚āļ­āļˆ āļēāļāļ”āđƒāļ™āļāļĢāļ“āļ—āļ•āļ­āļ‡āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™ (Alerts) āđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡ āđ† āļ‹āļ‡āļĒāļ‡āļ•āļ­āļ‡āļŦāļēāđāļĨāļ°āđ€āļžāļĄāļāļēāļĢ

āđ€āļ‚āļĒāļ™ Condition āđāļĨāļ°āļāļēāļĢāļŠāļĢāļēāļ‡āļ„āļ§āļēāļĄāļŠāļĄāļžāļ™āļ˜āļ‚āļ­āļ‡āļ‚āļ­āļĄāļĨāļ–āļēāļĄāļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļāļŦāļĨāļēāļĒ āđ† āđāļŦāļĨāļ‡

āđƒāļ™āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™āļœāļēāļ™ Email āđāļĨāļ° Line Notify āļ—āļ— āļēāđ€āļžāļĄāđ€āļ•āļĄāļ™āļ™ āļĒāļ‡āļ•āļ­āļ‡āļŠāļĢāļēāļ‡ script āđƒāļ™āļāļēāļĢāļ•āļ”

āļ‚āļ­āļ„āļ§āļēāļĄāđ€āļĢāļĒāļšāđ€āļĢāļĒāļ‡āđƒāļŦāļ­āļēāļ™āļ‡āļēāļĒ āļāļ­āļ™āļ—āļˆāļ°āđāļˆāļ‡āđ€āļ•āļ­āļ™āđāļĨāļ°āļŠāļĢāļēāļ‡āļĢāļ›āđāļšāļš (Template) āļ‚āļ­āļ‡āđāļ•āļĨāļ°āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™

5.3 āļ‚āļ­āļˆ āļēāļāļ”āđāļĨāļ°āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāđāļāđ„āļ‚āļ‚āļ­āļ‡āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™

āđ€āļ™āļ­āļ‡āļˆāļēāļāļ‹āļ­āļŸāđāļ§āļĢāļ—āļ™ āļēāļĄāļēāđƒāļŠāđƒāļ™āļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļšāđ€āļ›āļ™āļĢāļ›āđāļšāļš Opensource āļˆāļ‡āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āđ€āļĢāļĒāļ™āļĢ

āđƒāļ™āļāļēāļĢāļ›āļĢāļšāđāļ•āļ‡āļĢāļ°āļšāļšāđƒāļŦāļĄāļ„āļ§āļēāļĄāđ€āļŠāļ–āļĒāļĢāđāļĨāļ°āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļžāđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ āļ‹āļ‡āđƒāļ™āđ‚āļ„āļĢāļ‡āļāļēāļĢāļ™āļˆāļ°āđ€āļ™āļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™

āļ—āļ‡āļēāļĒāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļ–āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ„āļ”āļˆāļēāļāļĻāļ™āļĒāļāļĨāļēāļ‡ āļ‹āļ‡āļˆāļ°āļĻāļāļĐāļēāđāļĨāļ°āļžāļ’āļ™āļēāđƒāļŦāļĄāļ„āļ§āļēāļĄāļ­āļ•āđ‚āļ™āļĄāļ•āļĄāļēāļāļ‚āļ™ āđāļĨāļ°āđƒāļ™

āļ­āļ™āļēāļ„āļ•āļĄāļāļēāļĢāļ§āļēāļ‡āđāļœāļ™āļ— āļēāđ€āļ›āļ™āđƒāļ™āļĢāļ›āđāļšāļšāļ—āđ„āļĄāļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļ•āļ”āļ•āļ‡āļ‹āļ­āļŸāđāļ§āļĢāđāļĒāļāđāļ•āļĨāļ°āļĢāļ°āļšāļš āļˆāļ°āļ— āļēāļāļēāļĢāļĢāļ§āļĄāđ€āļ›āļ™

āļŦāļ™āļ‡āđāļžāļāđ€āļāļ•āļŦāļĢāļ­āđ€āļ›āļ™āļĢāļ›āđāļšāļšāļĢāļ°āļšāļšāđ€āļŠāļĄāļ­āļ™ (Virtual Machine) āļ—āļŠāļēāļĄāļēāļĢāļ–āļ™ āļēāļĄāļēāđƒāļŠāļ‡āļēāļ™āđ„āļ”āđ€āļĨāļĒāđ‚āļ”āļĒāđ„āļĄ

āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāđ€āļ­āļ‡āđƒāļŦāļĒāļ‡āļĒāļēāļ

Page 67: Takpong Boontung - msit.mut.ac.th

58

5.4 āđāļ™āļ§āļ—āļēāļ‡āļāļēāļĢāļžāļ’āļ™āļēāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ•āļ­āđ„āļ›āđƒāļ™āļ­āļ™āļēāļ„āļ•

āđ€āļ™āļ­āļ‡āļˆāļēāļāđ‚āļ„āļĢāļ‡āļ‡āļēāļ™āļ‰āļšāļšāļ™ āļˆāļ”āļ— āļēāļ‚āļ™āđ€āļžāļ­āļĻāļāļĐāļēāļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ āļĒāļ‡āļĄ

āļšāļēāļ‡āļŠāļ§āļ™āđ„āļĄāļŠāļĄāļšāļĢāļ“ āļŦāļĢāļ­āļĒāļ‡āļŠāļēāļĄāļēāļĢāļ–āļžāļ’āļ™āļēāđ€āļžāļĄāđ€āļ•āļĄāļ•āļ­āđ„āļ” āļˆāļ‡āđ€āļŦāļ™āļ§āļēāļ„āļ§āļĢāļĄāļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļšāđ€āļžāļĄāđ€āļ•āļĄ āļ”āļ‡āļ™

5.4.1 āļ— āļēāļāļēāļĢāļžāļ’āļ™āļēāļĢāļ°āļšāļšāđāļŠāļ”āļ‡āļœāļĨ (Dashboard) āđāļĨāļ°āļĢāļ°āļšāļšāļˆāļ”āļ— āļēāļĢāļēāļĒāļ‡āļēāļ™āđ€āļžāļĄāđ€āļ•āļĄ āđ€āļžāļ­āđƒāļŦ

āļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāđƒāļŦāļĨāļ°āđ€āļ­āļĒāļ” āđƒāļŠāļ‡āļēāļ™āļ‡āļēāļĒāđāļĨāļ°āļ„āļĢāļšāļ–āļ§āļ™āļĄāļēāļāļ‚āļ™

5.4.2 āļ— āļēāļāļēāļĢāđ€āļžāļĄāđāļĨāļ°āļžāļ’āļ™āļēāļĢāļ°āļšāļšāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļšāļ•āļēāļ‡ āđ† āđ€āļžāļĄāđ€āļ•āļĄāđ€āļŠāļ™ Cyber Threat

Intelligence āļ‹āļ‡āļˆāļ°āļŠāļēāļĄāļēāļĢāļ–āđ€āļŠāļ­āļĄāļ•āļ­āļāļšāļ‚āļ­āļĄāļĨ Threat Feeds āļ—āļĄāļāļēāļ™āļ‚āļ­āļĄāļĨāļ āļēāļĒāļ™āļ­āļāđ„āļ”

5.4.3 āļšāļĢāļ“āļēāļāļēāļĢāļĢāļ°āļšāļšāļ•āļēāļ‡ āđ† āđ€āļŠāļ™ āļĢāļ°āļšāļš OSINT (Opensource Intelligence) āļ‹āļ‡āļˆāļ°āļĢāļ§āļĄāļĢāļ§āļĄ

āļ‚āļ­āļĄāļĨāđ€āļāļĒāļ§āļāļš Website āļ—āđ€āļāļšāļĢāļ§āļĄāļĢāļ§āļĄāļ‚āļ­āļĄāļĨāđāļ§āļ”āļĨāļ­āļĄāđ€āļšāļ­āļ‡āļ•āļ™ āļ‚āļ­āļĄāļĨāļŠāļ§āļ™āļšāļ„āļ„āļĨāđāļšāļšāđ€āļ›āļ”āđ€āļœāļĒ āđ€āļžāļ­āļŠāļ§āļĒ

āđƒāļ™āļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨāđƒāļ™āļ”āļēāļ™āļ•āļēāļ‡ āđ† āđ€āļ‚āļēāļĄāļēāļĢāļ§āļĄāļāļ™āđ„āļ§āļ—āļĻāļ™āļĒāļāļĨāļēāļ‡ āđ€āļžāļ­āđƒāļŦāļ‡āļēāļĒāļ•āļ­āļāļēāļĢāļ„āļ™āļŦāļēāđāļĨāļ°āļˆāļ”āļāļēāļĢ āđ„āļĄ

āļˆ āļēāđ€āļ›āļ™āļ•āļ­āļ‡āđ€āļ›āļ”āļŦāļĨāļēāļĒ āđ† āļĢāļ°āļšāļš

5.4.4 āļ›āļĢāļšāļ›āļĢāļ‡āļāļēāļĢāļāļĢāļ­āļ‡āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļŦāļĢāļ­āļ‚āļ­āļĄāļĨāļ—āđ€āļ‰āļžāļēāļ°āđ€āļˆāļēāļ°āļˆāļ‡

āđƒāļ™āđāļ•āļĨāļ°āļĢāļ°āļšāļšāļŦāļĢāļ­āļ­āļ‡āļ„āļāļĢ (Proprietary Data) āđāļĨāļ°āļĒāļ‡āļĒāļēāļāđƒāļ™āļāļēāļĢāļˆāļ”āļāļēāļĢ āđƒāļŦāļŠāļēāļĄāļēāļĢāļ–āđāļŠāļ”āļ‡āļœāļĨāļ­āļ­āļāļĄāļēāđƒāļ™

āļ āļēāļžāļĢāļ§āļĄāđ„āļ”āļ­āļĒāļēāļ‡āļĄāļ›āļĢāļ°āļŠāļ—āļ˜āļ āļēāļž

Page 68: Takpong Boontung - msit.mut.ac.th

59

āđ€āļ­āļāļŠāļēāļĢāļ­āļēāļ‡āļ­āļ‡

[1] Elastic Stack: https://www.elastic.co/products/

[2] Apache Kafka: https://kafka.apache.org/

[3] Kafka-example (https://www.youtube.com/watch?v=udnX21__SuU)

[4] Kafka-KM https://www.howtoautomate.in.th/what-is-apache-kafka-qa/

[5] PfSense Firewall https://www.pfsense.org/

[6] Snort NIDS https://www.snort.org/

[7] OSINT Framework https://osintframework.com/

[8] Apache Guacamole http://guacamole.apache.org/

Page 69: Takpong Boontung - msit.mut.ac.th

60

āļ­āļāļĐāļĢāļĒāļ­āđāļĨāļ°āļ„ āļēāļˆ āļēāļāļ”āļ„āļ§āļēāļĄ

ELK Elasticsearch, Logstash, Kibana

Logs āļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

Node Server

JSON JavaScript Object Notation

Index Database

NIDS

REST

PDF

Regex

Src

Dst

Network Intrusion Detection System

Representational State Transfer

Portable Document Format

Regular Expression

Source

Destination

Page 70: Takpong Boontung - msit.mut.ac.th

- 1 -

āļ āļēāļ„āļœāļ™āļ§āļ āļ

āļāļēāļĢāļ•āļ”āļ•āļ‡āļĢāļ°āļšāļšāđāļĨāļ°āļāļēāļĢāļ•āļ‡āļ„āļēāļĢāļ°āļšāļš

1. āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļēāļĢāļ°āļšāļš ELK

āļ‚āļ™āļ•āļ­āļ™āđāļĢāļāļ•āļ­āļ‡āļ•āļ”āļ•āļ‡ Java āļāļ­āļ™āđ‚āļ”āļĒāđƒāļŠāļ„ āļēāļŠāļ‡

# sudo yum -y install java-openjdk-devel java-openjdk

āļŠāļ§āļ™āļĢāļ°āļšāļš ELK āļˆāļ°āļ— āļēāļāļēāļĢāļ•āļ”āļ•āļ‡āđ€āļ›āļ™ Version 7 āđ‚āļ”āļĒāļāļēāļĢāđƒāļŠāļ„ āļēāļŠāļ‡

# cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo

[elasticsearch-7.x]

name=Elasticsearch repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

EOF

# sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

1.1 āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļāļēāļĢāļ•āļ‡āļ„āļē ElasticSearch āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļˆāļ”āđ€āļāļšāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡

āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

# sudo yum -y install elasticsearch

#vim /etc/elasticsearch/jvm.options āđ€āļžāļ­āļ•āļ‡āļ„āļē JVM āđ€āļ›āļ™ 512 MB

-Xms512m

-Xmx512m

#vim /etc/elasticsearch/elasticsearch.yml

cluster.name: boontung.net

Page 71: Takpong Boontung - msit.mut.ac.th

- 2 -

node.name: Elaska

network.host: localhost

http.port: 9200

xpack.security.enabled: true

āđ€āļžāļ­āļ— āļēāļāļēāļĢāļ•āļ‡ Password āđƒāļŦāļāļšāļĢāļ°āļšāļšāļ„āļ™āļŦāļē āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

#/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

# sudo systemctl enable --now elasticsearch.service

# sudo systemctl start elasticsearch.service

1.2 āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļāļēāļĢāļ•āļ‡āļ„āļē Logstash āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļ™ āļēāđ€āļ‚āļēāļ‚āļ­āļĄāļĨ āļāļēāļĢāđāļĒāļāļ‚āļ­āļĄāļĨāđāļĨāļ°āļāļēāļĢāļŠāļ‡āļ­āļ­āļ

āļ‚āļ­āļĄāļĨāļŠāļŦāļ™āļēāļĢāļ°āļšāļšāđāļŠāļ”āļ‡āļœāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

#sudo yum -y install logstash

āļŠāļĢāļēāļ‡āđ„āļŸāļĨ pattern āļ‚āļ­āļ‡āļāļēāļĢāđāļ›āļĨāļ‡āļ‚āļ­āļĄāļĨāđāļĨāļ°āđāļĒāļāļ‚āļ­āļĄāļĨāļ‚āļ­āļ‡āļĢāļ°āļšāļš Gateway Firewall āđ€āļžāļ­

āđāļŠāļ”āļ‡āļœāļĨāļšāļ™āļĢāļ°āļšāļšāđāļŠāļ”āļ‡āļœāļĨāļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ Kibana āđ‚āļ”āļĒāđ„āļ§āļ— /etc/logstash/pattern

Page 72: Takpong Boontung - msit.mut.ac.th

- 3 -

āļŠāļĢāļēāļ‡āđ„āļŸāļĨ config āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ (Input) āļāļēāļĢāđāļĒāļāļ‚āļ­āļĄāļĨ (Filter) āđāļĨāļ°āļāļēāļĢāļŠāļ‡āļ­āļ­āļāļ‚āļ­āļĄāļĨ (Output)

āđ„āļ§āļ— /etc/logstash/conf.d/ āļ‹āļ‡āđ„āļ”āđāļ Input filebeat, Input Syslog, Input Kafka

Page 73: Takpong Boontung - msit.mut.ac.th

- 4 -

Filter āļ‚āļ­āļ‡ Gateway Firewall

Filter āđāļĨāļ° Output āļ‚āļ­āļ‡ Kafka Streaming

Filter āđāļĨāļ° output āļ‚āļ­āļ‡āļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ SNORT-NIDS

Page 74: Takpong Boontung - msit.mut.ac.th

- 5 -

Filter āđāļĨāļ° output āļ‚āļ­āļ‡āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

1.3 āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļāļēāļĢāļ•āļ‡āļ„āļē Kibana āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāđāļŠāļ”āļ‡āļ‚āļ­āļĄāļĨāļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢ

# sudo yum -y install kibana

Page 75: Takpong Boontung - msit.mut.ac.th

- 6 -

# $ sudo vim /etc/kibana/kibana.yml

server.port: 5601

server.host: "localhost"

elasticsearch.hosts: ["http://localhost:9200"]

elasticsearch.username: "kibana"

elasticsearch.password: "password"

# sudo systemctl enable --now elasticsearch.service

# sudo systemctl start elasticsearch.service

# echo "admin:`openssl passwd -apr1`" | sudo tee -a /etc/nginx/htpasswd.users

2. āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļēāļĢāļ°āļšāļš NGINX

āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļēāļĢāļ°āļšāļš NGINX āđ€āļžāļ­āđƒāļŠāļˆāļ”āļāļēāļĢāļāļšāļāļēāļĢāđƒāļŠāļ‡āļēāļ™āļœāļēāļ™ HTTP āđ‚āļ”āļĒāļ— āļēāļāļēāļĢ redirect

āđ„āļ›āļ— HTTPS āļ­āļ•āđ‚āļ™āļĄāļ• āđāļĨāļ° Basic Authentication āđ€āļšāļ­āļ‡āļ•āļ™

# sudo yum install nginx

# sudo vi /etc/nginx/conf.d/elaska.conf

Page 76: Takpong Boontung - msit.mut.ac.th

- 7 -

3. āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļēāļĢāļ°āļšāļš Apache Kafka

āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļēāļĢāļ°āļšāļš Apache Kafka āđ€āļžāļ­āđƒāļŠāđƒāļ™āļāļēāļĢāļ— āļē Data pipeline āđƒāļ™āļāļēāļĢāļĢāļšāļ‚āļ­āļĄāļĨ

āļāļēāļĢāļˆāļĢāļēāļˆāļĢāļ—āļēāļ‡āļ„āļ­āļĄāļžāļ§āđ€āļ•āļ­āļĢāļ—āđ€āļ›āļ™āļĢāļ›āđāļšāļšāļŠāļ•āļĢāļĄāļ‚āļ­āļĄāļĨ (Stream Data) āđ€āļŠāļ™ āļ‚āļ­āļĄāļĨāļžāļĒāļēāļāļĢāļ“āļ­āļēāļāļēāļĻ

# mkdir ~/Downloads

# curl "https://www.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz" -o ~/Downloads/kafka.tgz

# mkdir ~/kafka && cd ~/kafka

# tar -xvzf ~/Downloads/kafka.tgz --strip 1

# vim ~/kafka/config/server.properties

# sudo vim /etc/systemd/system/zookeeper.service

# sudo vi /etc/systemd/system/kafka.service

# sudo systemctl start kafka

# sudo systemctl enable kafka

Page 77: Takpong Boontung - msit.mut.ac.th

- 8 -

# kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic weather

# kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --partitions 1 --topic weather

# kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --

partitions 1 --topic weather

# kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

# kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group logstash

# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic weather --group logstash

4. āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļē Filebeat

āļāļēāļĢāļ•āļ”āļ•āļ‡āđāļĨāļ°āļ•āļ‡āļ„āļē Filebeat āđƒāļŠāđƒāļ™āļĒāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāļ­āļ­āļāļˆāļēāļāļĢāļ°āļšāļšāđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ

āđāļĨāļ°āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux āđ„āļ›āļĒāļ‡āļĢāļ°āļšāļš Logstash

# sudo yum install filebeat

# vim /etc/filebeat/filebeat.yml

āļ•āļ‡āļ„āļēāļšāļ™āđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ

- /var/log/snort/attacker

#----------------------------- Kafka output --------------------------

output.kafka:

# initial brokers for reading cluster metadata

hosts: ["192.168.200.11:9092"]

topic: "filebeat"

max_retries: 2

max_message_bytes: 1000000

#username: "elastic"

#password: "P@55vv0rd!"

#----------------------------- Logstash output ----------------------------

#output.logstash:

Page 78: Takpong Boontung - msit.mut.ac.th

- 9 -

# The Logstash hosts

#hosts: ["192.168.200.11:5045"]

āļ•āļ‡āļ„āļēāļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

- /var/log/secure

#----------------------------- Logstash output --------------------------------

output.logstash:

# The Logstash hosts

hosts: ["192.168.200.11:5045"]

bulk_max_size: 1024

template.name: "filebeat"

template.path: "filebeat.template.json"

template.overwrite: false

username: "elastic"

password: "P@55vv0rd!"

#output.kafka:

# hosts: ["192.168.200.11:9092"]

# topic: 'apache'

# username: "elastic"

# password: "P@55vv0rd!"

# codec.json:

# pretty: false

5. āļāļēāļĢāļ•āļ‡āļ„āļē Crontab āđ€āļžāļ­āļ•āļ‡āđ€āļ§āļĨāļēāđƒāļ™āļāļēāļĢāđāļˆāļ‡āđ€āļ•āļ­āļ™

- āļŠāļĢāļēāļ‡ Shell Script

#!/bin/bash

#cat /var/log/rawlog/192.168.200.5.log | grep -Po

"[^<\d+\>]+([\w\s\d\:]+)\s[^snort\ssnort\[\d+\]\:\s\[\d\:\d+\:\d\]]([\w\s]+)\[" >

/var/log/rawlog/test.log

Page 79: Takpong Boontung - msit.mut.ac.th

- 10 -

php /root/alert/rawlog.php

sleep 5

rm -rf /var/log/rawlog/*.log

- āļ•āļ‡āļ„āļē crontab -e

* * * * * /root/alert/rawlog.sh

Page 80: Takpong Boontung - msit.mut.ac.th

- 11 -

System Specification

System CPU

Memory Storage

(GB) Function NAT Network

VMnet1 Network Socket Core

PfSense 1 1 1 GB 10 Gateway Firewall NAT VMnet1 Kali Linux 1 1 1 GB 80 Attacker NAT Snort 1 1 1 GB 40 NIDS NAT Elaska 1 8 8 GB 500 Centralize Log NAT Linux 1 1 512 MB 20 Client VMnet1

Network & Port Information

Protocol & Port System Detail TCP 22 All System Secure Shell to Install & Config

TCP/UDP 5140 Elaska Syslog Listening for Security Device System TCP 5045 Elaska Filebeat Port Listening for Linux Log System TCP 443 Elaska NGINX Service - HTTP secure (Reverse Proxy 5601) TCP 80 Elaska NGINX Service - HTTP (Reverse Proxy 5601)

TCP 8080 Elaska HTTPD Service Port for Main Web Page TCP 9200 Elaska Elasticsearch Service Port TCP 5601 Elaska Kibana Service Port TCP 9600 Elaska Logstash Service Port TCP 9092 Elaska Kafka Service Port TCP 2181 Elaska Zookeeper Service Port

Page 81: Takpong Boontung - msit.mut.ac.th

- 12 -

Scenario Logical Diagram

Configure Input / Filter / Output on Elaska

āļ— Path: /etc/logstash/conf.d/ āļˆāļ°āļĄāđ„āļŸāļĨ config āđƒāļ™āļāļēāļĢ Input, Filter - transform, output āļ‚āļ­āļĄāļĨ

āļ­āļĒāļ āļēāļĒāđƒāļ™ āđ‚āļ”āļĒāđāļ•āļĨāļ°āđ„āļŸāļĨāļˆāļ°āļĄāļŦāļ™āļēāļ—āļ•āļēāļ‡āļāļ™ āļ‚āļ™āļ­āļĒāļāļšāļ‚āļ­āļĄāļĨāļ—āļ•āļ­āļ‡āļāļēāļĢāļĢāļšāļŠāļ‡ āđāļĨāļ°āđāļŠāļ”āļ‡āļœāļĨ āļ”āļ‡āļ āļēāļž

1. āđ„āļŸāļĨ 1-beats-input.conf āļˆāļ° Input āļ‚āļ­āļĄāļĨāļ—āđ„āļ”āļĢāļšāļĄāļēāļˆāļēāļ Beat āļˆāļ°āļĄ 2 Port āđ‚āļ”āļĒāđāļĒāļ Type

āļ­āļ­āļāđ€āļ›āļ™ 2 āđāļšāļš āđ„āļ”āđāļ Window Event Log āđāļĨāļ° Linux Logs āļ•āļēāļĄāļ āļēāļž

Page 82: Takpong Boontung - msit.mut.ac.th

- 13 -

2. āđ„āļŸāļĨ 2-syslog-input.conf āļˆāļ° Input āļ‚āļ­āļĄāļĨāļ—āđ„āļ”āļĢāļšāļĄāļēāļˆāļēāļ Syslog Forward āļˆāļ°āļ āļēāļŦāļ™āļ”āđƒāļŦāđƒāļŠ Port

5140 āļŠāļēāļĄāļēāļĢāļ–āļĢāļšāļ‚āļ­āļĄāļĨāđ„āļ”āļ—āļ‡ TCP āđāļĨāļ° UDP

3. āđ„āļŸāļĨ 3-rawlog-alert.conf āļˆāļ° Output āļ•āļēāļĄ Type āļ‚āļ­āļ‡ log āļ—āļ•āļ­āļ‡āļāļēāļĢ āļ āļēāļŦāļ™āļ”āđƒāļŦāļŠāļĢāļēāļ‡āđ„āļŸāļĨ raw

log āļ•āļ‡āļŠāļ­āļ•āļēāļĄ Host āđāļĨāļ° Hostname āđ„āļ›āđ€āļāļšāđ„āļ§āļ— Path āļ•āļēāļĄāļ āļēāļž

4. āđ„āļŸāļĨ 4-pfsense-filter.conf āļˆāļ°āļĄāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter + Output āļ‚āļ­āļ‡ Gateway-PfSense āđ‚āļ”āļĒāļ•āļ‡āļ„āļēāđƒāļŦ

PfSense IP: 192.168.200.253 āļŠāļ‡ syslog āļĄāļēāļ— Port 5140 āļ— āļēāļāļēāļĢ filter āđ‚āļ”āļĒāļĄāļāļēāļĢāļ— āļē tag:

pfsense āđāļĨāļ°āļ™ āļē tag āļĄāļēāļ āļēāļŦāļ™āļ” grok pattern parser āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ— Elasticsearch

āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē pfsense-firewall-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

Page 83: Takpong Boontung - msit.mut.ac.th

- 14 -

5. āđ„āļŸāļĨ 5-winlogbeat-output.conf āļˆāļ°āļĄāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter + Output āļ‚āļ­āļ‡ Windows Event Logs

āđ‚āļ”āļĒāļ•āļ‡āļ„āļēāļ— winlogbeat āļ—āļ•āļ”āļ•āļ‡āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Windows 10 āļŠāļ‡āļ‚āļ­āļĄāļĨāļ—āļ āļēāļŦāļ™āļ”āđ„āļ§āđ€āļŠāļ™ sys-

tem, security āđāļĨāļ° application āļĄāļēāļ— Port 5044 āļ‚āļ­āļ‡ Logstash āļ™ āļēāļĄāļēāļ— āļēāļāļēāļĢ filter āđ‚āļ”āļĒāļĄāļāļēāļĢāļ— āļē

tag: winuseraccountwas āđāļĨāļ°āļ™ āļē tag āļĄāļēāļ āļēāļŦāļ™āļ” grok pattern parser āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ field

āđƒāļŦāļĄāļŠāļ­āļ§āļē UserAccountWas āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē

winlogbeat-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

Page 84: Takpong Boontung - msit.mut.ac.th

- 15 -

6. āđ„āļŸāļĨ 6-syslog-snort-nids.conf āļˆāļ°āļĄāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter + Output āļ‚āļ­āļ‡ NIDS-Snort āđ‚āļ”āļĒāļ•āļ‡āļ„āļēāļ—

Filebeat āļ—āļ•āļ”āļ•āļ‡āļšāļ™āļĢāļ°āļšāļšāļ•āļĢāļ§āļˆāļˆāļšāļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ āļŠāļ‡āļ‚āļ­āļĄāļĨāļāļēāļĢāđ‚āļˆāļĄāļ•āđƒāļ™āļĢāļ›āđāļšāļš signature

base āļĄāļēāļ— Port 5140 āļ‚āļ­āļ‡ Logstash āļ™ āļēāļĄāļēāļ— āļēāļāļēāļĢ filter āđ‚āļ”āļĒāļĄāļāļēāļĢāļ— āļē tag: snort āļ—āđ„āļ”āļˆāļēāļāļāļēāļĢ

āļ•āļĢāļ§āļˆāļŠāļ­āļš message (Rawlog) āļ—āļĄāļ„ āļēāļ§āļē Classification: āļ—āļ–āļāļŠāļ‡āļĄāļēāđƒāļ™āļĢāļ›āđāļšāļš Syslog āđāļĨāļ°āļ™ āļē

tag āļĄāļēāļ āļēāļŦāļ™āļ” grok pattern parser āļ āļēāļŦāļ™āļ” field āļ•āļēāļ‡ āđ† āđƒāļŦāļāļš NIDS-Snort Logs āđāļĨāļ°āļ— āļēāļāļēāļĢ

āļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē snort-nids-log-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

7. āđ„āļŸāļĨ 7-linux-server.conf āļˆāļ°āļĄāļāļēāļĢāđ€āļ‚āļĒāļ™ Filter + Output āļ‚āļ­āļ‡ Linux Server āđ‚āļ”āļĒāļ•āļ‡āļ„āļēāļ—

Filebeat āļ—āļ•āļ”āļ•āļ‡āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux āđƒāļŦāļŠāļ‡ Logs āļĄāļēāļ— Port 5045 āļ‚āļ­āļ‡ Logstash āļ™ āļēāļĄāļēāļ— āļē

āļāļēāļĢ filter āđ‚āļ”āļĒāļĄāļāļēāļĢāļ— āļē tag: linux-login-failure āđ€āļžāļ­āļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ Logs āļ—āļ–āļāļŠāļ‡āļĄāļēāļ§āļēāđƒāļ™

message (Rawlog) āļĄāļ›āļĢāļ°āđ‚āļĒāļ„āļ§āļē more authentication failure āļ–āļēāđ€āļˆāļ­āđƒāļŦāļ™ āļēāļĄāļēāļŠāļĢāļēāļ‡ grok

pattern parser āļ āļēāļŦāļ™āļ”āđāļĨāļ°āđ€āļžāļĄ field āđ€āļ‚āļēāđ„āļ›āļ™āļ­āļāđ€āļŦāļ™āļ­āļˆāļēāļāļ— Filebeat āļĄāđƒāļŦ āđāļĨāļ°āļ— āļēāļāļēāļĢāļŠāļ‡āļ‚āļ­āļĄāļĨ

āđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē linux-client-logs-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™) āļŠāļ§āļ™ output āļ›āļāļ•āļ—

āđ„āļ”āļĢāļšāļˆāļēāļ Filebeat type: linuxlog āđƒāļŦāļŠāļ‡āļ‚āļ­āļĄāļĨāđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē

filebeat-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

Page 85: Takpong Boontung - msit.mut.ac.th

- 16 -

8. āđ„āļŸāļĨ kafka-Input.conf āļˆāļ°āļĢāļšāļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļˆāļēāļ Kafka āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ” Topic āļ—āđ€āļāļĒāļ§āļ‚āļ­āļ‡āđƒāļ™

āđ‚āļ„āļĢāļ‡āļ‡āļēāļ™ āđ€āļŠāļ™ snort, filebeat, winlogbeat āđāļĨāļ° weather

9. āđ„āļŸāļĨ kafka-linux.conf āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļ— Kafka āļĄāļēāļ— āļēāļāļēāļĢ filter āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđƒāļŦāļ–āļēāđ€āļˆāļ­ top-

ic: filebeat āđƒāļŦāļ— āļēāļāļēāļĢāļ„āļ™āļŦāļēāļ‚āļ­āļĄāļĨ Logs āļ—āļ–āļāļŠāļ‡āļĄāļēāļ§āļēāđƒāļ™ message (Rawlog) āļĄāļ›āļĢāļ°āđ‚āļĒāļ„āļ§āļē

more authentication failure āļ–āļēāđ€āļˆāļ­āđƒāļŦāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ tag āļ§āļē kafka-linux-login-failure āđāļĨāļ°āļ— āļēāļāļēāļĢ

output āđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē linux-server-kafka-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

Page 86: Takpong Boontung - msit.mut.ac.th

- 17 -

10. āđ„āļŸāļĨ kafka-snort-nids.conf āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļ—āļ–āļāļŠāļ‡āļĄāļēāļ— kafka āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđƒāļŦāļ–āļēāđ€āļˆāļ­ topic: snort

āđƒāļŦāļ— āļēāļāļēāļĢ output āđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē snort-nids-kafka-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

11. āđ„āļŸāļĨ kafka-weather.conf āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļ—āļŠāļ‡āļĄāļēāļ— kafka āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđƒāļŦāļ–āļēāđ€āļˆāļ­ topic: weather āđƒāļŦ

āļ— āļēāļāļēāļĢ output āđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē weather-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

12. āđ„āļŸāļĨ kafka-windows.conf āļˆāļ°āļ™ āļēāļ‚āļ­āļĄāļĨāļ—āļŠāļ‡āļĄāļēāļ— kafka āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđƒāļŦāļ–āļēāđ€āļˆāļ­ topic: weather āđƒāļŦ

āļ— āļēāļāļēāļĢ output āđ„āļ›āļ— Elasticsearch āđ‚āļ”āļĒāļŠāļĢāļēāļ‡ Index āļŠāļ­āļ§āļē windows-kafka-(āļ›.āđ€āļ”āļ­āļ™.āļ§āļ™)

Page 87: Takpong Boontung - msit.mut.ac.th

- 18 -

13. āđ„āļŸāļĨ filebeat.yml āļšāļ™āļĢāļ°āļšāļšāļ•āļĢāļ§āļˆāļˆāļšāļāļēāļĢāļšāļāļĢāļāđ€āļ„āļĢāļ­āļ‚āļēāļĒ NIDS-Snort āđāļĨāļ°āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

14. āđ„āļŸāļĨ winlogbeat.yml āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Windows 10

Page 88: Takpong Boontung - msit.mut.ac.th

- 19 -

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ— 1 āđ‚āļˆāļĄāļ•āļ”āļ§āļĒāđ€āļ—āļ„āļ™āļ„ Brute Force Attack āļˆāļēāļ Kali Linux āđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

1 āđ€āļ‚āļēāđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡ Kali Linux āđāļĨāļ°āļĢāļ™ script “linux.ssh-bruteforce.sh” āļ āļēāļĒāđƒāļ™āđƒāļŠāļ—āļ”āļŠāļ­āļš

āđ‚āļˆāļĄāļ•āđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

2 NIDS-Snort āđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļ”āļ§āļĒ Medusa Tool Brute force āđāļĨāļ°āļŠāļ‡ Logs āđ„āļ›āļ—

Elaska

3 Elaska āļĢāļš Logs āļˆāļēāļ NIDS-Snort āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Filter + Output āđƒāļŦāđāļŠāļ”āļ‡āđ€āļ›āļ™

Rawlog āļ”āļ‡āļ āļēāļž

Page 89: Takpong Boontung - msit.mut.ac.th

- 20 -

4 āđ€āļāļ”āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢ Authentication Failure āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Linux

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ— 2 āđ‚āļˆāļĄāļ•āļ”āļ§āļĒāđ€āļ—āļ„āļ™āļ„ Brute Force Attack āļˆāļēāļ Kali Linux āđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Windows

1 āđ€āļ‚āļēāđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡ Kali Linux āđāļĨāļ°āļĢāļ™ script “windows-smb-445.sh” āļ āļēāļĒāđƒāļ™āđƒāļŠāļ—āļ”āļŠāļ­āļš

āđ‚āļˆāļĄāļ•āđ„āļ›āļ—āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Windows 10

2 NIDS-Snort āđāļˆāļ‡āđ€āļ•āļ­āļ™āļāļēāļĢāđ‚āļˆāļĄāļ•āļ”āļ§āļĒ Medusa Tool Brute force āđāļĨāļ°āļŠāļ‡ Logs āđ„āļ›āļ—

Elaska

3 Elaska āļĢāļš Logs āļˆāļēāļ NIDS-Snort āđ‚āļ”āļĒāļ— āļēāļāļēāļĢāļŠāļĢāļēāļ‡ Filter + Output āđƒāļŦāđāļŠāļ”āļ‡āđ€āļ›āļ™

Rawlog āļ”āļ‡āļ āļēāļž

Page 90: Takpong Boontung - msit.mut.ac.th

- 21 -

4 āđ€āļāļ”āđ€āļŦāļ•āļāļēāļĢāļ“āļāļēāļĢ Authentication Failure āļšāļ™āđ€āļ„āļĢāļ­āļ‡āļĨāļāļ‚āļēāļĒ Windows

āļāļēāļĢāļ—āļ”āļŠāļ­āļšāļ— 3 āļāļēāļĢāđƒāļŠ Kafka āđƒāļ™āļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāđƒāļ™āļĢāļ›āđāļšāļš Real-Time āđāļšāļšāļŠāļ•āļĢāļĄāļĄāļ‡āļ‚āļ­āļĄāļĨāļˆāļēāļ Open

Weather API

1. āļĢāļ™ script āļŠāļ­āļ§āļē api-weather.sh āđ‚āļ”āļĒāļˆāļ°āļ— āļēāļāļēāļĢāđƒāļŠ python āļĢāļ™āđ„āļŸāļĨ weather.py āļ‹āļ‡āļ āļēāļĒāđƒāļ™āļˆāļ°āļĄ

āļāļēāļĢāļ āļēāļŦāļ™āļ”āļ„āļē API āđāļĨāļ°āļŠāļĢāļēāļ‡ key value āđƒāļ™āļāļēāļĢāļ”āļ‡āļ‚āļ­āļĄāļĨāļĄāļēāļˆāļēāļāđ€āļ§āļš Open Weather āļĄāļēāļ—

kafka āđ‚āļ”āļĒāļ āļēāļŦāļ™āļ”āđƒāļŦāļ‚āļ­āļĄāļĨāļ”āļ‡āļāļĨāļēāļ§āļ–āļāđ€āļāļšāđ„āļ§āļ— topic āļ—āļŠāļ­āļ§āļē weather

2. āļ•āļĢāļ§āļˆāļŠāļ­āļšāļ§āļēāļ‚āļ­āļĄāļĨāļ§āļ‡āđ€āļ‚āļē Topic: weather āļ”āļ§āļĒāļāļēāļĢāđƒāļŠ script āļ‚āļ­āļ‡ Kafka consumer

3. āļ‚āļ­āļĄāļĨāļˆāļēāļ Open Weather āļ§āļ‡āđ€āļ‚āļēāļĄāļēāļ— Topic: weather

Page 91: Takpong Boontung - msit.mut.ac.th

- 22 -

āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāđƒāļŠāļ‡āļēāļ™ Kafka Command

kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic

#Topic# (āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāļŠāļĢāļēāļ‡ topic)

echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic

#Topic# > /dev/null

kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic #Topic# --from-beginning

(āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāļ•āļĢāļ§āļˆāļŠāļ­āļšāļ‚āļ­āļĄāļĨāđƒāļ™ topic)

kafka-topics.sh --zookeeper localhost:2181 –list (āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāļ”āļ§āļēāļĄ topic āļ­āļ°āđ„āļĢāļšāļēāļ‡)

kafka-topics.sh --zookeeper localhost:2181 --topic #Topic# --describe (āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāļ”āļ§āļē topic

āļ”āļ‡āļāļĨāļēāļ§āļĄāļĢāļēāļĒāļĨāļ°āđ€āļ­āļĒāļ”āļ­āļ°āđ„āļĢāđƒāļ™āļāļēāļĢāđ€āļāļšāļ‚āļ­āļĄāļĨ)

kafka-topics.sh --zookeeper localhost:2181 --#Topic# --delete (āļ„ āļēāļŠāļ‡āđƒāļ™āļāļēāļĢāļĨāļš topic)