Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
āļĢāļ°āļāļāļāļāļāļēāļĢāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ
Log Management System
āļāļāļāļāļĻ āļāļāļāļ
Takpong Boontung
āļŠāļēāļĢāļāļāļāļāļāđāļāļāļŠāļ§āļāļŦāļāļāļāļāļāļāļēāļĢāļĻāļāļĐāļē
āļŦāļĨāļāļŠāļāļĢāļ§āļāļĒāļēāļĻāļēāļŠāļāļĢāļĄāļŦāļēāļāļāļāļ āļŠāļēāļāļēāļ§āļāļēāļ§āļĻāļ§āļāļĢāļĢāļĄāđāļāļĢāļāļāļēāļĒāđāļĨāļ°āļāļ§āļēāļĄāļĄāļāļāļ
āļāļĨāļāļāļ āļĒāļŠāļēāļĢāļŠāļāđāļāļĻ
āļāļāļ°āļ§āļāļĒāļēāļāļēāļĢāđāļĨāļ°āđāļāļāđāļāđāļĨāļĒāļŠāļēāļĢāļŠāļāđāļāļĻ
āļĄāļŦāļēāļ§āļāļĒāļēāļĨāļĒāđāļāļāđāļāđāļĨāļĒāļĄāļŦāļēāļāļāļĢ
āļāļāļēāļĢāļĻāļāļĐāļē 2562
I
āļŦāļ§āļāļāđāļāļĢāļāļāļēāļ āļĢāļ°āļāļāļāļāļāļēāļĢāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ
Log Management System
āļāļāļĻāļāļĐāļē āļāļāļāļāļĻ āļāļāļāļ
āļĢāļŦāļŠāļāļāļĻāļāļĐāļē 6127810001
āļŦāļĨāļāļŠāļāļĢ āļŦāļĨāļāļŠāļāļĢāļ§āļāļĒāļēāļĻāļēāļŠāļāļĢāļĄāļŦāļēāļāļāļāļ āļŠāļēāļāļēāļ§āļāļēāļ§āļĻāļ§āļāļĢāļĢāļĄāđāļāļĢāļāļāļēāļĒāđāļĨāļ°āļāļ§āļēāļĄāļĄāļāļāļ
āļāļĨāļāļāļ āļĒāļŠāļēāļĢāļŠāļāđāļāļĻ
āļāļāļēāļĢāļĻāļāļĐāļē 2562
āļāļēāļāļēāļĢāļĒāļāļāļĢāļāļĐāļē āļāļĻ.āļāļĢ.āļŠāļĢāļāļāļĢ āļ āļĄāļ§āļāļŠāļēāļĢ
āļāļāļāļāļĒāļ
āđāļāļĢāļāļāļēāļāđāļĢāļāļāļĢāļ°āļāļāļāļāļŦāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āļāļēāļĢāđāļŠāļāļāļāļĨāļāļāļĄāļĨāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļāļāđāļŦāļāļēāļĢāļāļāļŦāļē
āļāļĢāļ°āļĄāļ§āļĨāļāļĨ āđāļĨāļ°āļāļēāļĢāđāļŠāļāļāļāļĨāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļāļĄāļāļ§āđāļāļāļĢ āđāļāļāđāļāđāļāļāļĒāļēāļāļĄāļāļĢāļ°āļŠāļāļāļ āļēāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāđāļĢāļĒāļāļ
āļŦāļĢāļāļāļĢāļ§āļāļŠāļāļāļĒāļāļāļŦāļĨāļāđāļāļāļēāļĒ āļĢāļ§āļĄāļāļāļāļāļĄāļĨāļĢāļēāļĒāļĨāļ°āđāļāļĒāļāļāļēāļĢāđāļāļāļēāļāļāļēāļ āđ āđāļāļāđāļāļāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāļāļāļĄāļĨ
āļāļĢāļēāļāļĢāļāļāļĄāļāļ§āđāļāļāļĢāđāļāļāļĒāļēāļāļāļāļāļāļ
āđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāđāļāļāđāļāļāļāļāļāļŦāļēāļ āļĒāļāļāļāļēāļĄāļāļāļēāļāļāļ°āđāļāļāļāļāļāļāļĢāļ°āļāļāļŠāļēāļĢāļŠāļāđāļāļĻ āđāļāļĒāļ āļēāļāļāļĄāļĨāļāļĢāļēāļāļĢ
āļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāļĄāļāļĒāđāļāļĢāļ°āļāļāļĄāļēāđāļāļāļēāļāđāļāļāđāļŦāđāļāļāļāļĢāļ°āđāļĒāļāļāļĄāļēāļāļĒāļāļāļ āļāļāļ āļĒāļāļāļāļēāļĄāļāļēāļāļāļ°āļĄāļēāļāļēāļ
āļāļāļāļĨāļ āļēāļĒāđāļāļāļāļāļāļĢ āļŦāļĢāļāļāļāļāļĨāļ āļēāļĒāļāļāļāļāđāļĄāļāļĢāļ°āļŠāļāļāļāļāļāļāļāļāļāļĢ āđāļĄāļāļĢāļ°āļāļāļŠāļēāļĄāļēāļĢāļāļāļĢāļ§āļāļŠāļāļāļ āļĒ
āļāļāļāļēāļĄāđāļāļāļāļāļ§āļāļ āļāļāļ°āļ āļēāđāļŦāļĨāļāļ āļēāļāļ§āļāļ āļĒāļāļāļāļēāļĄāđāļ āļāļāļāļāļĒāļāļĨāļāļ āļēāļĢāļ°āļāļāđāļĨāļĢāļ°āļāļāđāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ
āļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļĨāļ°āļĒāļāļŠāļēāļĄāļēāļĢāļāļ āļēāđāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ āļ§āđāļāļĢāļēāļ°āļŦ āđāļāđāļāļāļāļŦāļēāļāļāļāđāļŦāļāļāļēāļĢāļ
āļāļēāļ āđ āļāđāļāļāļāļāđāļ āļāļāļ§āļāļāļēāļĢāļ āļēāđāļāļāļāļēāļāļāļĢāļ°āļāļāļāļāļ§āļĒāļāļēāļĢāļ āļēāđāļāļĢāļāļāļĄāļāļĄāļēāļāļēāļ Open Source āļĄāļēāļāļāļāļē
āđāļāļĄāđāļāļĄ āđāļāļāđāļāđāļāļāļēāļĢāļāļāļāļēāļĢāļ°āļāļāđāļāļāļĒāļēāļāļĄāļāļĢāļ°āļŠāļāļāļ āļēāļ āđāļĨāļ°āđāļĄāđāļŠāļĒāļāļēāđāļāļāļēāļĒ
II
āļāļāļāļāļĢāļĢāļĄāļāļĢāļ°āļāļēāļĻ
āļŠāļēāļĢāļāļāļāļāļāļāļāļāļŠāļēāļĄāļēāļĢāļāļŠ āļēāđāļĢāļāđāļāļāļēāļĄāļāļ§āļēāļĄāļĄāļāļŦāļĄāļēāļĒāļāļāđāļāļĢāļāļāļ§āļēāļĄāļāļĢāļāļēāļāļēāļāļāļēāļāļēāļĢāļĒāļāļāļĢāļāļĐāļē
āļŠāļēāļĢāļāļāļāļ āļāļĻ.āļāļĢ.āļŠāļĢāļāļāļĢ āļ āļĄāļ§āļāļŠāļēāļĢ āđāļĨāļ° āļāļēāļāļēāļĢāļĒāļŠāļĢāļāļēāļĢ āļāļ§āļāļāļēāļŠāļ āļāđāļāđāļŠāļāļāđāļāļ°āđāļāļ§āļāļēāļāđāļāļāļēāļĢāļ āļē
āđāļāļĢāļāļāļēāļ āļĢāļ§āļĄāļāļāđāļāļŠāļĨāļ°āđāļ§āļĨāļēāđāļŦāļ āļēāļāļĢāļāļĐāļēāđāļāļ°āļ āļēāđāļāļāļāļĢāļāļāļĢāļāđāļāđāļāļāļāļāļāļāļĢāļāļāļāļēāļāļāļēāļ āđ āļāļāļŠāļēāļĄāļēāļĢāļ
āļ āļēāļāļ§āļēāļĄāļĢāļāđāļāļĄāļēāļāļāļāļēāđāļāļĢāļāļāļēāļāđāļāđāļŠāļĢāļāļŠāļ
āļŠāļāļāļēāļĒāļāļāļāļāļāļāļāļāļāļĄāļāļĢāļ°āļāļāļāļāļāļēāļāļāļāļāļĒāđāļŦāļ āļēāļāļĢāļāļĐāļēāđāļĨāļ°āļ āļēāļĨāļāđāļ āđāļĨāļ°āļŦāļēāļāđāļāļĢāļāļāļēāļāļāļāļāļ
āļĄāļāļāļāļāļāļĨāļēāļāļāļĢāļ°āļāļēāļĢāđāļ āļāļēāļāđāļāļēāļāļāļāļ āļēāļāļāļāļāļāļāļ āļĒāļĄāļē āļ āļāļāļāļ§āļĒ
āļāļāļāļāļĻ āļāļāļāļ
āļĄāļāļēāļāļĄ 2563
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
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 -
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
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
VII
āļŠāļēāļĢāļāļāļ āļēāļ (āļāļ)
āļ āļēāļāļ 61 āļāļēāļĢāļŠāļĢāļēāļāļĢāļēāļĒāļāļēāļāđāļāļāļĢāļāđāļāļ PDF āđāļŠāļĢāļāļŠāļ āļŠāļēāļĄāļēāļĢāļ Download āđāļ .................................. 55
āļ āļēāļāļ 62 āļŦāļāļēāļĢāļēāļĒāļāļēāļāļāļēāļĢāđāļŠāļāļāļāļĨāđāļāļāļĢāļāđāļāļ PDF ....................................................................... 56
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
1
āļāļāļ 1
āļāļāļ āļē
1.1 āļāļ§āļēāļĄāđāļāļāļĄāļēāđāļĨāļ°āļāļ§āļēāļĄāļŠ āļēāļāļāļāļāļāļāļāļŦāļē
āļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āļŦāļĄāļēāļĒāļāļāļāļāļĄāļĨāđāļāļĒāļ§āļāļāļāļēāļĢāļāļāļāļāļŠāļāļŠāļēāļĢāļāļāļāļĢāļ°āļāļāļāļāļĄāļāļ§āđāļāļāļĢ
āļāļāđāļŠāļāļāļāļāđāļŦāļĨāļāļ āļēāđāļāļāļāļāļāļēāļ āļāļĨāļēāļĒāļāļēāļ āđāļŠāļāļāļēāļ āđāļ§āļĨāļē āļ§āļāļ āļāļĢāļĄāļēāļ āļĢāļ°āļĒāļ°āđāļ§āļĨāļē āļāļāļāļāļāļāļāļĢāļāļēāļĢ āļŦāļĢāļ
āļāļ āđ āļāđāļāļĒāļ§āļāļāļāļāļāļāļēāļĢāļāļāļāļāļŠāļāļŠāļēāļĢāļāļāļāļĢāļ°āļāļāļāļāļĄāļāļ§āđāļāļāļĢ āļāļēāļĢāđāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļĨāļ°
āļāļāļāđāļŦāļāļāļāļēāļāļāļēāļĢāđāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļĢāļēāļĒāļāļŠāļēāļĄāļēāļĢāļāđāļāļāļāļāļĄāļĨāđāļāļŠāļ§āļāļāļ āđ āļāđāļāļĒāļ§āļāļāļāļāļ
āļĢāļ°āļāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļāļ āļāļāļĄāļĨāļāļāļāļĢāļ°āļāļāđāļāļĢāļāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļĄāļāļēāļĒ āļāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ āļŦāļĢāļāļāļāļĄāļĨāļāļēāļĢ
āđāļāļēāļāļāļĢāļ°āļāļāđāļāļĢāļāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļĄāļāļēāļĒ āđāļāļēāļāļāļāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ āđāļāļāļāļ
āđāļāļāļāļāļāļāļĄāļāļēāļĢāđāļāļāļēāļāļĢāļ°āļāļāđāļāļĢāļāļāļēāļĒāļāļāļĄāļāļ§āđāļāļāļĢāđāļĨāļ°āđāļāļĢāļāļāļēāļĒāļāļāđāļāļāļĢāđāļāļāđāļāļāļŦāļĨāļāđāļāļāļēāļĢ
āļāļāļāļāļŠāļāļŠāļēāļĢāļāļ āļāļāļĄāļĨāļāļ§āļāđāļāļēāļāļāļāļāļāļāļēāļāļŦāļĨāļēāļāļŦāļĨāļēāļĒāļāļāļāļĢāļāļāļĄāļ āļēāļĒāđāļāļāļāļāļāļĢ āļĢāļ§āļĄāļāļāļāļāļĄāļāļ§āđāļāļāļĢ
āļŠāļ§āļāļāļāļāļĨ āļāļāļāļāļāļāļĄāļĨāļāļēāļĢāđāļāļāļēāļāļāļāļĄāļŦāļĨāļēāļāļŦāļĨāļēāļĒāđāļĨāļ°āļĄāļ āļēāļāļ§āļāļĄāļēāļ āđāļāļāļēāļĢāļāļāļ°āļāļāļŦāļēāđāļĨāļ°āļ§āđāļāļĢāļēāļ°āļŦ
āļāļāļĄāļĨāļāļāđāļāļāđāļāđāļāļĒāļēāļ āļĢāļ§āļĄāļāļāļāļāļĄāļĨāļāļēāļāļ āļēāļĒāļāļāļāļāļāļāļāļāļēāļĢāļ āļēāļĄāļēāđāļāļāļĢāļ°āđāļĒāļāļ āļŦāļĢāļāđāļĄāļāļĢāļ°āļāļāļ āļĒāļāļāļāļēāļĄ
āļāļāļāļĢāļ°āļāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļĨāļ°āļāļēāļĢāđāļāļēāđāļāļāļēāļāļāļāļāļ§āļāļāļāļĢāļ°āļŠāļāļ āđāļāļ āļĄāļāļēāļĢāđāļāļēāļŠāļĢāļ°āļāļāļāļāļāđāļāļĢāļāļ
āļāļāļĄāļāļ§āđāļāļāļĢāđāļĄāļāļēāļĒāļāđāļĄāđāļāļĢāļāļāļāļāļēāļ āļāļāļāļāļŦāļēāļāđāļĢāļēāļŠāļēāļĄāļēāļĢāļāļ āļēāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āļŦāļĢāļ
āļāļāļĄāļĨāļāļāļāļāļāđāļāļāļĄāļēāļ āļēāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāļāļāļ āļĒāļāļāļāļēāļĄāļāļāļ°āļ āļēāđāļŦāđāļāļāļāļĢāļ°āđāļĒāļāļāļāļāļāđāļāļāļēāļāļĄāļēāļāļĒāļāļāļ
1.2 āļāļāļŦāļēāđāļĨāļ°āđāļĢāļāļāļāđāļ
āļāļēāļāļāļāļŦāļēāļāļēāļāļāļāļāļāļĄāļĢāļ°āļāļāļāļēāļĢāļāļāđāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļāļāļāļāļāļāļŠāļ§āļāđāļŦāļāđāļāļ
āļĢāļāđāļāļāļāđāļŠāļĒāļāļēāđāļāļāļēāļĒ (Commercial) āļŦāļĢāļāđāļāļĢāļāđāļāļāđāļĄāđāļŠāļĒāļāļēāđāļāļāļēāļĒ (Open Source) āļāļ§āđāļāļāļ āļ
āļāļĢāļŦāļēāļĢāļāļāļāļēāļĢāđāļāļāļāļāļāļēāļāļĒāļāļĒāļēāļ āļāļēāļĢāļāļāļ°āļ§āđāļāļĢāļēāļ°āļŦāđāļŦāļāļāļēāļĢāļāđāļĄāļāđāļāļāļāļāļŦāļēāļŦāļĢāļāđāļŦāļāļāļēāļĢāļāļāļēāļĢāđāļāļĄāļāļ
āđāļāļāļāļāļāļāļāļāļāļāļĢ āđāļāļĒāļāļēāļĢāļāļāļ°āđāļāļēāđāļāļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļāđāļāļĨāļ°āļāļāļāļĢāļ āļāļāļāļāđāļ
āđāļ§āļĨāļēāđāļāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāđāļāļāļāļŦāļēāļāļāļāļāļēāļāļĄāļēāļ āļāļēāđāļāļāļāļāļāļĢāļāļāļĄāļāļāļāļĢāļāļ āļēāļāļ§āļāļĄāļēāļ āļāļāđāļāđāļāļāđāļāđāļāļĒāļēāļ
āđāļĨāļ°āđāļŠāļĒāđāļ§āļĨāļē āļāļāđāļāđāļāļāđāļāļ§āļāļāđāļāļĢāļāļāļēāļĢāļāđāļāļāļāļāļāļēāļĢāļ°āļāļāļāļāļāļēāļĢāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļāļāđāļŦ
āļāļāļāđāļāļāļĒāļāļāļāļēāļĢāđāļāļāļēāļ āđāļĨāļ°āļāļēāļĢāļāļāđāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļāļĄāļāļ§āđāļāļāļĢ āđāļŦāļāļēāļĒāļāļāļāļēāļĢāļāļĢāļāļēāļĢāļāļāļāļēāļĢāđāļĨāļ°
āļāļĢāļ°āļŦāļĒāļāļāļēāđāļāļāļēāļĒ
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)
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) āđāļĨāļ°āļĢāļēāļĒāļāļēāļāļŠāļĢāļāļāļāļĄāļĨāđāļ
4
1.6 āđāļāļĢāļāļŠāļĢāļēāļāļāļāļāļŠāļēāļĢāļāļāļāļ
āđāļāļĢāļāļŠāļĢāļēāļāļŠāļēāļĢāļāļāļāļāļāļāļāļāļĄāļāļāļŦāļĄāļ 5 āļāļāļāļ§āļĒāļāļ āļāļĨāļēāļ§āļāļāļ āļēāļāļĢāļ§āļĄāļāļāļāđāļāļĨāļ°āļāļāļāļāļ
āļāļāļ 2 āļāļĨāļēāļ§āļāļ āļāļāļāļēāļāđāļĨāļ°āļāļĪāļĐāļāļāļēāļ āđ āļāđāļāļĒāļ§āļāļāļ
āļāļāļ 3 āļāļĨāļēāļ§āļāļ āļĢāļ°āļāļāļāļ āļēāđāļŠāļāļ āļ āļēāļāļĢāļ§āļĄāļāļāļāļĢāļ°āļāļāđāļāļĢāļāļāļēāļāļāļāļāļāđāļāļāđāļĨāļ°āļāļāļāļē āđāļāļāđāļāļĄ
āļāļĢāļ°āļŠāļāļāļ āļēāļāđāļāļāļēāļĢāļāļāđāļāļ āđāļĨāļ°āļāļĢāļŦāļēāļĢāļāļāļāļēāļĢāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļāļĄāļāļ§āđāļāļāļĢ
āļāļāļ 4 āļāļĨāļēāļ§āļāļ āļāļĨāļāļēāļĢāļāļāļĨāļāļ āļāđāļāļ āļēāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļāļāļēāļāđāļāļĢāļ°āļāļāļ āļēāļĨāļāļ
āļāļāļ 5 āļāļĨāļēāļ§āļāļ āļŠāļĢāļāļāļĨāļāļēāļĢāļ āļēāđāļāļāļāļēāļ āđāļāļāļēāļĢāļāļāļĨāļāļāđāļĨāļ°āļāļĢāļ°āđāļĄāļāļāļĨāđāļāļāļēāļāđāļāļĢāļ°āļāļāļ āļēāļĨāļāļāđāļĨāļ°
āđāļāļ§āļāļēāļāđāļāļāļēāļĢāļĻāļāļĐāļēāđāļĨāļ°āļāļāļāļēāļĢāļ°āļāļāļāļāđāļ
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 āđāļāļāļēāļĢ
āļ āļēāļāļēāļĢāļŠāļāļāļāļĄāļĨ
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
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
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
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 āđāļāļāļāļēāļ āđ
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
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]"
}
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 āļāļāļāļāļŦāļĄāļāļāļ āļēāđāļŦāđāļŦāļāļ§āļē āļāļ§āļĒāļ āļēāđāļŦ
āļāļŠāļĄāļāļŠāļēāļāđāļāļāļĒāļēāļāļāļēāļĒāļāļēāļĒāđāļāļāļāđāļāļāļāļĨāđāļāļāļāļāļēāļĄāļāļāļēāļĢāļāļāļŦāļēāđāļĨāļ°āļ§āđāļāļĢāļēāļ°āļŦāļāļāļāļāļēāļĢ
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
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 āļŠāļēāļĄāļēāļĢāļāđāļāļāļāļāļĄāļĨāđāļŦāļāļāļēāļĢāļ āđāļāļāđāļŦāļāļāļēāļĢāļāđāļāļāļāļĨāđāļāļāļ, āđāļŦāļāļāļēāļĢāļāļŪāļēāļĢāļāđāļ§āļĢ, āđāļŦāļāļāļēāļĢāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļĒāđāļĨāļ°āđāļŦāļāļāļēāļĢāļāļĢāļ°āļāļ
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
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)
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 āđāļ)
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
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, āđāļāļāļāļāļāļ āļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāđāļāļāļāļēāļāļāļēāļĢāļāļ āļēāļĨāļāđāļāļĢāļāļāļ§āļēāļĄāļāļĒāļĄ āđāļāļāļāļāļēāļāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāđāļāļāļāļēāļāļāļēāļĢāļāđāļāļāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāļāļāļŠāļāļāđāļāđāļāļāļēāļĢāļāļēāļāļāļēāļĢāļāđāļŦāļāļāļēāļĢāļāļāļāļēāļāđāļāļāļāļāđāļāļāļāļēāļāļ āļĢāļāđāļāļāļāđāļāļāļāļĨāļĨāļāļāđāļāļāļāļāđāļĨāļ°āļāļāļĄāļĨāļāļēāļāļāļĢāļāļĢāļĢāļĄāļāļēāļ āđ āļŠāļēāļĄāļēāļĢāļāļ āļēāļĄāļēāđāļāđāļāļāļāļĢāļ°āđāļĄāļāļāļ§āļēāļĄāđāļŠāļĒāļāđāļāļāļāļēāļāļ āļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāđāļāļāļāļēāļāļāļēāļĢāļāļĒāļāļāļ§āļĒāđāļŦāļāļāļāļāļĢāļŠāļēāļĄāļēāļĢāļāļāļāđāļāļāđāļāļāļĢāļ āļāļēāļĢ
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 āļāļēāļāđāļĄāđāļŦāļĄāļēāļ°āļāļāļāļēāļĢāđāļāļāļēāļ āļāļ§āļĒāđāļŦāļāļ āļāļāļĄāļāļ§āļēāļĄāļ āļēāđāļāļāļāļāļāļāļĄāļāļēāļĢāļāļāļāļēāļĢāļāļēāļĢāļ āļēāļĻāļāļĒāļāļĨāļēāļāļāļ āļāļāļāļ°āļāļ§āļĒāļ āļēāļāļ§āļĒāļāļ§āļēāļĄāļŠāļ°āļāļ§āļāļŠ āļēāļŦāļĢāļāļāļāđāļĨāļĢāļ°āļāļāđāļāļāļēāļĢāļ§āđāļāļĢāļēāļ°āļŦāđāļĨāļ°āļāļāļŦāļēāļāļāļĄāļĨāļāļāļāļāļāļēāļĢ
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 āļāļēāļĄāļāļ§āļēāļĄāļāļāļāļāļēāļĢāļāļāļāļāđāļ
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)
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 } }
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
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
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
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â
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 āļāļ°āļāļāđāļāļāļāļāļ§āļĒ _
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 āđāļĨāļ°āđāļĒāļāļ§āđāļāļĢāļēāļ°āļŦāļāļēāļĨāļāđāļāļāļāļāđāļāļĢāļĻāļāļ
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,
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
32
āļāļāļ 3
āļĢāļ°āļāļāļāļ āļēāđāļŠāļāļ
3.1 āļ āļēāļāļĢāļ§āļĄāļāļāļāļĢāļ°āļāļ
āļāļēāļĢāļāļāļāđāļāļāđāļĨāļ°āļāļāļāļēāļĢāļ°āļāļāļāļāļāļēāļĢāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļāđāļāļĢāļāļāļēāļĢāļ āļāļ°āļāļāļāļĻāļāļĐāļē
āđāļāļĢāļāļŠāļĢāļēāļāļāļēāļĢāļ āļēāļāļēāļāļāļāļāļāļāļāļāđāļ§āļĢ Open Source āđāļāđāļ ELK āđāļĨāļ° Apache Kafka āļ āļēāļĄāļēāļāļāļāđāļāļāļāļēāļĢ
āđāļāļāļĄāļāļāđāļŦāļ āļēāļāļēāļāļĢāļ§āļĄāļāļāđāļ āđāļŦāļāļĢāļāļāļ§āļēāļĄāļāļāļāļāļēāļĢāļāļāļāļāļāļāļāļĢ āļāļāļ§āļēāļĄāļāļāļāļāļēāļĢāđāļāļāļāļēāļāļāļ āđāļāļĒāļāļāļ
āļāļāļāđāļāļāļ§āļāļāļēāļĢāļŠāļāđāļĨāļ°āļĢāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļĨāļ°āļāļēāļĢāļāļāđāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļĒāļēāļāđāļĢāđāļŦāļāļēāļĒāļāļ
āļāļēāļĢāļāļĢāļŦāļēāļĢāļāļāļāļēāļĢāđāļĨāļ°āļāļĢāļ°āļŦāļĒāļāļāļēāđāļāļāļēāļĒ āļāļāļāļ°āļĄāļĢāļāđāļāļāđāļĨāļ°āļāļāļāļāļāļāļēāļĢāļ āļēāļāļēāļāđāļĨāļ°āđāļāļāļēāļāļāļāļ āļēāļ
āļāļēāļāļĨāļēāļ
āļ āļēāļāļ 17 āļ āļēāļāļĢāļ§āļĄāļāļēāļĢāļ āļēāļāļēāļāļāļāļāļĢāļ°āļāļāđāļāđāļāļĢāļāļāļēāļ
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
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 āđāļ
35
āļ āļēāļāļ 20 āļŦāļāļēāļāļēāļĢāđāļāļāļēāļāļāļāļāļāļāļāļāđāļ§āļĢ Kibana
3.3.3 āļāļēāļĢāļāļāļāļāļĢāļ°āļāļ NGINX
āļāļāļāļāļĢāļ°āļāļ NGINX āļāļāđāļāļĢāļāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļĄāļāļēāļĒāļŦāļĢāļāđāļāļĢāļāļāļāļāļĄāļāļ§āđāļāļāļĢāļ āļēāļĨāļāļ (Virtual Machine) āđāļāļāđāļāđāļāļāļēāļĢ Reverse Proxy āđāļāļĒāļāļĢāļ°āļāļ Kibana āļ Port 5601 āđāļāļāđāļāļāļāļāļēāļĢāļāļāļāļēāļĢāđāļāļāļēāļāļāļēāļ HTTP āđāļāļĒāļ āļēāļāļēāļĢ redirect āđāļāļ HTTPS āļāļāđāļāļĄāļ āļāļāļ āļēāļāļāļēāļāļĨāļēāļ
āļ āļēāļāļ 21 āļāļēāļĢāļāļāļāļē NGINX
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}
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)
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
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 āļĄāļāļĢāļ°āđāļĒāļāļāļāļāļ
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
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 āđāļāļĒāđāļ
āļĨāļ°āđāļāļĢāļāļāļĄāļāļēāļĢāļāļāļāļāļāļāļāļāđāļ§āļĢ āļāļāļ
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 āļŦāļāļēāļĨāļāļāļāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ
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
44
āļ āļēāļāļ 35 āļ āļēāļāļŦāļāļēāļāļ Remote Gateway āđāļāļĒāļāļĢāļ°āļāļāļāļēāļ āđ āđāļāļāļāļāļŠāļāļ
āļ āļēāļāļ 36 āļ āļēāļāļŦāļāļēāļāļāļāļēāļĢ remote āļāļēāļ Remote Gateway āđāļāļĒāļāļĢāļ°āļāļāļāļēāļ āđ āđāļāļāļāļāļŠāļāļ
- āļ āļēāļāļēāļĢ Run Script āļāļ Attacker (Kali Linux) āđāļāļāļāļāļŠāļāļāđāļāļĄāļāđāļāļĒāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ
Linux āđāļĨāļ° Snort-NIDS āļ āļēāļāļēāļĢāļāļĢāļ§āļāļāļāđāļĨāļ°āļŠāļāļāļāļĄāļĨāđāļāļĒāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļĢāļēāļāļĢ
āļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āļ āļēāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āļŠāļāļāļāļĄāļĨāđāļŠāļāļāļāļĨāđāļāļĒāļāļŦāļāļēāđāļŠāļāļāļāļĨ Dashboard āļāļāļ āļēāļāļ 45
āđāļĨāļ°āļĄāļāļāļĄāļĨāļāļāļāļāļ āļēāļāļ 37 - 44
45
āļ āļēāļāļ 37 āļ āļēāļāļēāļĢ run script āļāļ Attacker (Kali Linux)
āļ āļēāļāļāļēāļāļĨāļēāļāļ āļēāļāļēāļĢ SSH āđāļāļāļĢāļ°āļāļāđāļāļāđāļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ (SNORT-NIDS) āđāļĨāļ°āļ āļēāļāļēāļĢ
āļāļĢāļ§āļāļŠāļāļāļāļēāļāļāļāļĄāļĨāđāļŦāļāļāļēāļĢāļāļāļāļĢāļ°āļāļ
āļ āļēāļāļ 38 āļāļĢāļ§āļāļŠāļāļāđāļŦāļāļāļēāļĢāļāļāļāļĢāļ°āļāļāđāļāļāđāļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ SNORT-NIDS
46
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāđāļāļĒāļ§āļāļāļāļāļ
āđāļŦāļāļāļēāļĢāļāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāļāļ Gateway Firewall
āļ āļēāļāļ 39 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāļŠāļāļĄāļēāļāļēāļ Gateway Firewall
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāđāļāļĒāļ§āļāļāļāļāļ
āđāļŦāļāļāļēāļĢāļāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāļāļāļĢāļ°āļāļāđāļāļāđāļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ (SNORT-NIDS)
āļ āļēāļāļ 40 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāļŠāļāļĄāļēāļāļēāļ SNORT-NIDS
47
āļ āļēāļāļ 41 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļāļāļŠāļāļĄāļēāļāļēāļ SNORT-NIDS
āļ āļēāļāļ 42 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļāļāļ āļēāļāļēāļĢāđāļĒāļāļāļĨāļāđāļĨāļ§āļāļŠāļāļĄāļēāļāļēāļ SNORT-NIDS
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāđāļāļĢāļāļāļĨāļāļāļēāļĒāļāđāļāļĒāļ§āļāļāļāļāļāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļ
āļ āļēāļāļ 43 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāļāļāđāļāļĄāļāļāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ Linux
48
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāđāļāļĒāļ§āļāļāļāļāļ
āđāļŦāļāļāļēāļĢāļāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāļāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ Linux
āļ āļēāļāļ 44 āļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļāļāļ āļēāļāļēāļĢāđāļĒāļāļāļĨāļāļāļŠāļāļĄāļēāļāļēāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ Linux
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāđāļāļĒāļ§āļāļāļāļāļ
āđāļŦāļāļāļēāļĢāļāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāļāļāļŦāļāļēāđāļŠāļāļāļāļĨ Kibana āļāļēāļāļāļāļĄāļĨāļāļāļāļŠāļāļĄāļēāļāļēāļ SNORT-NIDS
āļ āļēāļāļ 45 āļāļĢāļ§āļāļŠāļāļāļŦāļāļēāđāļŠāļāļāļāļĨāļāđāļāļĒāļ§āļāļāļāļāļāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāļāļ§āļĒ Brute Force
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
50
āļ āļēāļāļ 48 āļāļāļĄāļĨāļāļāļŠāļāļĄāļēāļāļēāļ Apache Kafka āđāļāļēāļĄāļēāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļāļĢāļ°āļāļ
4.2.2 āļāļĨāļāļēāļĢāļāļāļĨāļāļāļāļēāļĢāđāļāļāđāļāļāļāđāļŦāļāļāļēāļĢāļāļāļēāļĢāđāļāļĄāļ
āđāļĄāļāļ āļēāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļāđāļĨāļ§āļāļāļĄāļĨāļāļēāļĢāđāļāļĄāļāļāļ āļēāļāļēāļĢāđāļĒāļāļāļĨāļāļāļ§āļĒ Logstash āđāļĨāļ§āļāļ°āļ āļēāļāļēāļĢ
āļŠāļĢāļēāļ Output Filter āđāļāļāđāļāļāđāļāļāļāļāļĄāļĨāļāļāđāļāļāļēāļĢāļ āļēāļāļāļĄāļĨāļāļĄāļēāļ āļēāļāļēāļĢāđāļāļāđāļāļāļāļāļēāļāļĢāļ°āļāļ Line Notify
āļ āļēāļāļ 49 āļŠāļĢāļēāļ Output Filter āđāļāļāļ āļēāļāļāļĄāļĨāđāļŦāļāļāļēāļĢāļāļĄāļēāđāļāļāđāļāļāļāļāļĄāļĨāļāļ
āļ āļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļāļĄāļĨāļāļāļāđāļŦāļāļāļēāļĢāļāļāļ āļēāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāđāļāļĄāļ āļāļ°āđāļŦāļāļāļāļĄāļĨāļāļāļāļŠāļāļĄāļēāļāļēāļ
āļĢāļ°āļāļāđāļāļāđāļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ SNORT-NIDS āļāļāļŠāļāļĄāļēāļĒāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨ
āļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāđāļāļĢāļāđāļāļāļāļāļĄāļĨāļāļāļāļāļĢāļ°āļāļ
51
āļ āļēāļāļ 50 āļāļāļĄāļĨāļāļāļāđāļāļāļēāļāļāļēāļĢāļ āļē Output Filter āļāļāđāļāļāđāļ§āļāļāļĢāļ°āļāļ
āļ āļēāļāļēāļĢāđāļāļēāđāļ§āļ āđāļāļāļāļāļ Line Notify āđāļ āļāļāļ API Token āļ āļēāļĄāļēāđāļāļāļēāļāļāļāļĢāļ°āļāļāļāļāļŦāļē
āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļāļĄāļĨāļāļēāļĢāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āļ āļēāļāļēāļĢāļŠāļĄāļāļĢāđāļāļĒāđāļ Account Line āļāļāļāđāļĢāļē
āđāļāļāđāļāļāļēāļĢāļŠāļĄāļāļĢ āđāļāļĒāļāļēāļĢāļāļāļāļāļāļāļāļāđāļĢāļēāđāļĨāļ§āđāļĨāļāļ My Page āđāļŠāļĢāļāđāļĨāļ§āļāļāļ Generate Token āļāļāļ āļēāļāļ
51 - 53
āļ āļēāļāļ 51 āđāļāļēāļŠāđāļ§āļāđāļāļ Line Notify āđāļāļāļŠāļĄāļāļĢāļŠāļĄāļēāļāļ
āļ āļēāļāļ 52 āļŦāļĨāļāļāļēāļāļŠāļĄāļāļĢāļŠāļĄāļēāļāļāđāļŦāđāļĨāļāļāļ My Page
52
āļ āļēāļāļ 53 āļ āļēāļāļēāļĢāļŠāļĢāļēāļ Token āđāļāļĒāļāļēāļĢāļāļāļ Generate Token
āļŦāļĨāļāļāļēāļāļāļ Generate Token āļāļ°āļĄāļŦāļāļēāļāļēāļāđāļŦāļāļāļāļāđāļĨāļ°āļŠāļēāļĄāļēāļĢāļāđāļĨāļāļāļāļĨāļĄāđāļāļāļēāļĢāļŠāļāļāļāļĄāļĨāļāļēāļĢ
āđāļāļāđāļāļāļāđāļŦāļāļāļēāļĢāļāļāļēāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļēāļĢāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ āđāļāļĒāļāļēāļĢ
āļāļāļĨāļāļāļāļāļ°āļ āļēāļāļēāļĢāļŠāļāđāļāļ Line āļĄāļēāļāļāļ§āđāļāļ
āļ āļēāļāļ 54 āļāļēāļĢ Generate Token āļāļāļ Line Notify
āļ āļēāļāļ 55 āļāļēāļĢ Generate Token āļāļāļ Line Notify āļāļ°āđāļ Token āļĄāļēāđāļāļāļēāļ
53
āļ āļēāļāļ 56 āļāļ°āđāļ Token āļāļ āļēāļāļēāļĢāļŠāļĢāļēāļāļāļāđāļĨāļ°āļāļēāļĢāđāļāļāļĄāļāļāđāļāļĒāļāļāļĨāļĄāļŦāļĢāļāļāļāļāļĨāđāļ Line Account
āļ āļēāļāļēāļĢāļŠāļĢāļēāļ PHP āļŠāļāļĢāļāļ āđāļāļāļ āļēāļāļēāļĢāļŠāļāļāļēāļĢāđāļāļāđāļāļāļāđāļŦāļāļāļēāļĢāļāļāļ āļēāļāļēāļĢāļāļāļĨāļāļāđāļāļāļ 4.2.1
āļāļēāļāļĢāļ°āļāļāļāļāļŦāļē āļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļĨāļ°āđāļŠāļāļāļāļĨāļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢāļāļēāļ API Token āļāļāļ Line Noti-
fy āđāļāļĒāļ Line Account
āļ āļēāļāļ 57 āļŠāļĢāļēāļ PHP Script āđāļāļāļāļāļĨāļāļāļāļēāļĢāđāļāļāđāļāļāļāļāļēāļ Line Notify API Token
54
āļŦāļĨāļāļāļēāļāļ āļēāļāļēāļĢāļāļāļĨāļāļāļāļēāļĄāļāļ 4.2.2 āļāļ°āļĄāļāļēāļĢāđāļāļāđāļāļāļāļāļēāļĄāđāļŦāļāļāļēāļĢāļāļāļāļāļŠāļāļāđāļĨāļ°āļĄāļāļēāļĢāđāļāļ
āđāļāļāļāļāļēāļāļĢāļ°āļāļ Line Notify āđāļāļĒāļ Line Account āļāļ āļēāļāļēāļĢāļŠāļĢāļēāļāđāļ§
āļ āļēāļāļ 58 āļ āļēāļāļēāļĢāļāļāļĨāļāļāļāļēāļĢāđāļāļĄāļāļāļ°āļĄāļāļēāļĢāđāļāļāđāļāļāļāļāļēāļ Line Notify āđāļāļĒāļ Line Account
āļ āļēāļāļ 59 āļ āļēāļāļēāļĢāļāļāļĨāļāļāļāļēāļĢāđāļāļĄāļāļāļ°āļĄāļāļēāļĢāđāļāļāđāļāļāļāļāļēāļ Line Notify āđāļāļĒāļ Line Account
55
4.2.3 āļāļĨāļāļēāļĢāļāļāļĨāļāļāļāļēāļĢāļāļāļ āļēāļĢāļēāļĒāļāļēāļ
āļ āļēāļāļēāļĢāļāļāļĨāļāļāļŠāļĢāļēāļāļĢāļēāļĒāļāļēāļāđāļāļĒāļŠāļāļāļāļāđāļāļāđāļāļĨ PDF āđāļāļĒāļāļēāļĢāđāļĨāļāļāđāļĄāļ Dashboard -> NIDS-
SNORT āđāļāļāļŠāļĢāļēāļāļĢāļēāļĒāļāļēāļāļāļēāļĢāļāļāļĨāļāļāļāļēāļĄāļŦāļ§āļāļ 4.2.1 āļāļāļ āļēāļ 61 - 63
āļ āļēāļāļ 60 āļāļēāļĢāļŠāļĢāļēāļāļĢāļēāļĒāļāļēāļāđāļāļāļĢāļāđāļāļ PDF
āļ āļēāļāļ 61 āļāļēāļĢāļŠāļĢāļēāļāļĢāļēāļĒāļāļēāļāđāļāļāļĢāļāđāļāļ PDF āđāļŠāļĢāļāļŠāļ āļŠāļēāļĄāļēāļĢāļ Download āđāļ
56
āļ āļēāļāļ 62 āļŦāļāļēāļĢāļēāļĒāļāļēāļāļāļēāļĢāđāļŠāļāļāļāļĨāđāļāļāļĢāļāđāļāļ PDF
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) āļāļŠāļēāļĄāļēāļĢāļāļ āļēāļĄāļēāđāļāļāļēāļāđāļāđāļĨāļĒāđāļāļĒāđāļĄ
āļ āļēāđāļāļāļāļāļāļāļāļāļāļĢāļ°āļāļāđāļāļāđāļŦāļĒāļāļĒāļēāļ
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) āđāļĨāļ°āļĒāļāļĒāļēāļāđāļāļāļēāļĢāļāļāļāļēāļĢ āđāļŦāļŠāļēāļĄāļēāļĢāļāđāļŠāļāļāļāļĨāļāļāļāļĄāļēāđāļ
āļ āļēāļāļĢāļ§āļĄāđāļāļāļĒāļēāļāļĄāļāļĢāļ°āļŠāļāļāļ āļēāļ
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/
60
āļāļāļĐāļĢāļĒāļāđāļĨāļ°āļ āļēāļ āļēāļāļāļāļ§āļēāļĄ
ELK Elasticsearch, Logstash, Kibana
Logs āļāļāļĄāļĨāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ
Node Server
JSON JavaScript Object Notation
Index Database
NIDS
REST
Regex
Src
Dst
Network Intrusion Detection System
Representational State Transfer
Portable Document Format
Regular Expression
Source
Destination
- 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
- 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
- 3 -
āļŠāļĢāļēāļāđāļāļĨ config āđāļāļāļēāļĢāļĢāļāļāļāļĄāļĨ (Input) āļāļēāļĢāđāļĒāļāļāļāļĄāļĨ (Filter) āđāļĨāļ°āļāļēāļĢāļŠāļāļāļāļāļāļāļĄāļĨ (Output)
āđāļ§āļ /etc/logstash/conf.d/ āļāļāđāļāđāļ Input filebeat, Input Syslog, Input Kafka
- 4 -
Filter āļāļāļ Gateway Firewall
Filter āđāļĨāļ° Output āļāļāļ Kafka Streaming
Filter āđāļĨāļ° output āļāļāļāļĢāļ°āļāļāđāļāļāđāļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ SNORT-NIDS
- 5 -
Filter āđāļĨāļ° output āļāļāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ Linux
1.3 āļāļēāļĢāļāļāļāļāđāļĨāļ°āļāļēāļĢāļāļāļāļē Kibana āđāļāļāđāļāđāļāļāļēāļĢāđāļŠāļāļāļāļāļĄāļĨāļāļēāļĢāļāļĢāļēāļāļĢāļāļēāļāļāļāļĄāļāļ§āđāļāļāļĢ
# sudo yum -y install kibana
- 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
- 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
- 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:
- 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
- 10 -
php /root/alert/rawlog.php
sleep 5
rm -rf /var/log/rawlog/*.log
- āļāļāļāļē crontab -e
* * * * * /root/alert/rawlog.sh
- 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
- 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 āļāļēāļĄāļ āļēāļ
- 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-(āļ.āđāļāļāļ.āļ§āļ)
- 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-(āļ.āđāļāļāļ.āļ§āļ)
- 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-(āļ.āđāļāļāļ.āļ§āļ)
- 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-(āļ.āđāļāļāļ.āļ§āļ)
- 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-(āļ.āđāļāļāļ.āļ§āļ)
- 18 -
13. āđāļāļĨ filebeat.yml āļāļāļĢāļ°āļāļāļāļĢāļ§āļāļāļāļāļēāļĢāļāļāļĢāļāđāļāļĢāļāļāļēāļĒ NIDS-Snort āđāļĨāļ°āđāļāļĢāļāļāļĨāļāļāļēāļĒ Linux
14. āđāļāļĨ winlogbeat.yml āļāļāđāļāļĢāļāļāļĨāļāļāļēāļĒ Windows 10
- 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 āļāļāļ āļēāļ
- 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 āļāļāļ āļēāļ
- 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
- 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)