π‘ λ³Έ λ¬Έμλ ELK Stack μ€ 'Logstash'μ λν κ°λ μ κ°λ¨νκ² μ 리ν΄λμ κΈμ λλ€.
νμμ ELK Stackμ κ΄μ¬μ΄ μκ±°λ Logstashλ₯Ό μ λ¬Ένκ³ μΆμΌμ λΆλ€μ μ°Έκ³ λΆνλ립λλ€.
1. Logstash μκ°
1.1 Elastic Stack (ELK Stack)
- E(Elasticsearch): λ°μ΄ν° μ μ₯ λ° κ²μ
- L(Logstash): λ°μ΄ν° μμ§
- λ‘κ·Έ μ€νμλ λ°μ΄ν°μ μ λ ₯, λ³ν, μΆλ ₯μ μ€μκ° νμ΄νλΌμΈμΌλ‘ μ²λ¦¬νλ μ€νμμ€ λ°μ΄ν° μμ§ μμ§.
- λ€μν μ λ ₯ μμ€μμ λμμ λ°μ΄ν°λ₯Ό μμ§(Ingest)νμ¬ λ³νν ν μμ£Ό μ¬μ©νλ "μ€νμ(Stash)-보κ΄μ"(Elasticsearch)λ‘ μ μ‘
- K(Kibana): λ°μ΄ν° μκ°ν λ° λ¦¬ν¬ν
λΆμ
- ν€λ°λλ μλΌμ€ν±μμΉμ μ°λνμ¬ λμνλ λ°μ΄ν° μκ°ν(리ν¬ν ) λ° λΆμ
1.2 Logstash: λ°μ΄ν° μμ§
- Logstashλ μ λ ₯(input) κΈ°λ₯μμ λ€μν λ°μ΄ν°μ λ‘κ·Έλ₯Ό μ λ ₯ λ°κ³ νν°(filter) κΈ°λ₯μ ν΅ν΄ λ°μ΄ν°λ₯Ό κ°κ³΅νκ³ , μΆλ ₯(output) κΈ°λ₯μ ν΅ν΄ μνλ λͺ©μ μ λ§κ² λ€μν λ°μ΄ν° μ μ₯μλ‘ λ°μ΄ν°λ₯Ό μ μ‘νλ λꡬμ λλ€.
- Logstashκ° μΆλ ₯ APIλ‘ Elasticsearchλ₯Ό μ§μνκΈ° μμνλ©΄μ λ§μ κ³³μμ Elasticsearchμ μ
λ ₯ μλ¨μΌλ‘ Logstashλ₯Ό μ¬μ©νκΈ° μμνμ΅λλ€.
2. Logstash κ°λ
2.1 Logstash: Dataflow κ΄λ¦¬ μμ§
- λ°μ΄ν° νλ¦μ μν μ€νμμ€ μ€μ μ²λ¦¬ μμ§
- dataflow νμ΄νλΌμΈμ ꡬμΆνμ¬ μ΄λ²€νΈ λ°μ΄ν°μ λ³ν λ° μ€νΈλ¦Ό μ€μ
- λ€μν λ°μ΄ν° μμ μ κ·Ό
- μμ λ²νΌλ§μ ν΅ν μνμ μΈ μ€μΌμΌλ§
- ν΅ν© μ²λ¦¬λ₯Ό μν ννν 200κ° μ΄μμ νλ¬κ·ΈμΈ
2.2 Logstash ꡬμ±
Logstashμ μ€μ (.conf)μ μ λ ₯(Input), κ°κ³΅(Filter), μΆλ ₯(Output) μΉμ μΌλ‘ λλλλ°, μ΄μ λν μμΈν μ€λͺ κ³Ό λμμ μ°Έκ³ ν μ μλ Pluginλ€μ μ 리ν΄λ³΄μμ΅λλ€. Logstashλ₯Ό νμ©νμ¬ λ€μν λ‘κ·Έμ νμΌμ κΈ°λ°μΌλ‘ λ°μ΄ν° ꡬ쑰λ₯Ό ꡬμΆνκ³ λ³ννμ¬ μ¬λ¬κ°μ§ κ²°κ³Ό κ°λ€μ νμΈν μ μμ΅λλ€.
2.2.1 μ λ ₯ (Input)
Logstashλ λ°μ΄ν°λ₯Ό λμ μΌλ‘ μμ§, μ ν, μ μ‘νμ¬ μ λ°μ μΈ μ²λ¦¬λ₯Ό μμ½κ² μ²λ¦¬ν΄μ€λλ€. μΌλ°μ μΈ λ€μμ μμ€μμ λμμ μ΄λ²€νΈλ₯Ό κ°μ Έμ€λ λ€μν μ λ ₯μ μ§μν©λλ€. Log, Metrics.Web Applications, Data Source μ€νΈλ¦¬λ° λλ λ°©μμΌλ‘ μμ§ ν μ μμ΅λλ€.
Input plugins μλ Files, SQL Queries, HTTP requests, Elasticsearch, *Beats, Metrics systems, Logstash pipelines λ± λ€μν κ³³μμ λ°μ΄ν°λ₯Ό μμ§ν μ μμ΅λλ€.
2.2.2 κ°κ³΅ (Filter)
Logstashλ λ°μ΄ν°κ° μ΄λνλ κ³Όμ μμ λΆμκ³Ό μλ³μ ν΅ν΄ ꡬ쑰λ₯Ό ꡬμΆνκ³ μ΄λ₯Ό λ°νμΌλ‘ λ³ν ν΅ν©νμ¬ κ°λ ₯ν λΆμμ μ 곡ν©λλ€. νμμ΄λ 볡μ‘μ±μ κ΄κ³ μμ΄ λ°μ΄ν°λ₯Ό λμ μΌλ‘ λ³νν©λλ€.
Filter plugins μΌλ‘ Log νμ±, λ°μ΄ν° νμ₯, ν κ·Έ μΆκ° λ±μ κΈ°λ₯μ μ§μνκ³ μμ΅λλ€.
2.2.3 μΆλ ₯ (Output)
μνλ λ°μ΄ν°λ₯Ό λΌμ°ν ν μ μλλ‘ λ€μν μΆλ ₯μ μ 곡νλ©°, μ΄λ Pluginsμ ν΅ν΄ νμΈν μ μμ΅λλ€.
Outputs plugins μλ Elasticsearch, Data 보κ΄μ (ex. Amazon S3 , Google storages), Alterting & Monitoring System λ±μ΄ μμ΅λλ€.
λ€μν μΆλ ₯μ μ§μνμ¬ μ¬λ¬ μ μ₯μλ‘ λ°μ΄ν°λ₯Ό λ€μ΄μ€νΈλ¦Ό ν μ μμΌλ©° ,νλ¬κ·ΈμΈ νμ΄νλΌμΈ μν€ν μ²λ₯Ό μ§ν₯νλ©° λ€μν μ λ ₯,κ°κ³΅,μΆλ ₯μ μ‘°μ νλ©΄μ μ‘°νλ‘κ² μ΄μμ΄ κ°λ₯ν©λλ€
2.2.4 λΉμΈ (Beats): λ°μ΄ν° μμ§κΈ°(μλ°±λμ μ₯μΉλ‘λΆν° λ°μ΄ν° μμ§ λ° μ‘μ )
- λ°μ΄ν°λ₯Ό μμ§νμ¬ Logstash/Elasticsearchμ μ μ₯νμ¬ λͺ¨λν°λ§ νλ μμ€ν
μ
λλ€.
- Logstashμ Inputμ ννλ‘ λ£μ μ μμΌλ©°, κ°λ²Όμ λ°μ΄ν° λ³νμ΄ νμμμ κ²½μ° Logstashλ₯Ό λ체νκΈ°λ ν©λλ€.
- νμ¬ Elastic μμλ Packetbeat, Libbeat, Filebeat, Metricbeat, Winlogbeat, Auditbeat λ±μ κ°λ°νμ¬ λ°°ν¬νκ³ μμ΅λλ€.
2.3 Logstash λμ
- μ λ ₯μΌλ‘ λ°μ λ°μ΄ν°λ₯Ό μ½λ±μΌλ‘ λ³νν΄μ€ ν μμ νμ μ μ₯.
- νμ΄νλΌμΈλ§λ€ Batcherμμ μμ νμ μλ λ΄μ©μ λͺκ°μ© λ¬Άμ.
- μ΄ν elasticsearchμ _bulk APIλ‘ λ°μ΄ν°λ₯Ό 보λ
+ μ½λ± (Codec): λ°μ΄ν° μΈμ½λ© & λμ½λ©
- μ λ ₯κ³Ό μΆλ ₯μμ λ°μ΄ν°λ₯Ό λ³νν΄μ£Όλ μμ μ ν©λλ€.
- JSON, Avro, msgpack, Netflow, CloudTrail λ±μ λ€μν ννμ λ°μ΄ν°λ₯Ό μ§μν©λλ€.
2.4 Logstash λ°λͺ¨
- μ°Έκ³ (μμ 14:30): https://www.elastic.co/kr/webinars/getting-started-logstash?baymax=rtp&elektra=docs&storm=top-video&iesrc=ctr
μ°Έκ³
- [Elastic official] Logstash: https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html
- Input plugin Ref. https://www.elastic.co/guide/en/logstash/current/input-plugins.html
- Filter plugin Ref. https://www.elastic.co/guide/en/logstash/current/filter-plugins.html
- Output plugin Ref. https://www.elastic.co/guide/en/logstash/current/output-plugins.html
- Logstash Basic video: https://www.elastic.co/kr/webinars/getting-started-logstash?baymax=rtp&elektra=docs&storm=top-video&iesrc=ctr