![π λ‘κ·Έ μκ°νλ μ μ€μν κΉ?](/github-blog//assets/img/log-visualization.png)
π λ‘κ·Έ μκ°νλ μ μ€μν κΉ?
λ‘κΉ μ ν΅ν΄ κ°λ°μλ κ°λ° κ³Όμ νΉμ κ°λ° νμ λ°μν μ μλ μμμΉ λͺ»ν μ ν리μΌμ΄μ μ λ¬Έμ λ₯Ό μ§λ¨ν μ μκ³ , λ€μν μ 보λ₯Ό μμ§ν μ μλ€. λ¨μν λ‘κ·Έλ₯Ό νμΈνλ€λ κ²μ μΆμμ μΈ νμλ‘ λ³΄μΈλ€. κΈ°λ‘μ λ¨κΈ°λ κ²μ΄ μλ ꡬ체μ μΌλ‘ μ΄λ€ μ 보λ₯Ό μ΄λ»κ² νμΈνκ³ κ΄λ¦¬νλμ§κ° λ‘κΉ μ ν΅μ¬μ΄λΌκ³ μκ°νλ€.
λ‘κ·Έλ μκ°μ κ²½κ³Όμ λ°λΌ μμ§λ λ°μ΄ν°μ ν μ’ λ₯λ‘ λ³Ό μ μλ€. κ·Έλ¬λ©΄ λ°μ΄ν° μκ°νμ μ₯μ μ 곧 λ‘κ·Έ μκ°νμ μ₯μ μΌλ‘ λ³Ό μ μλ€. λ‘κ·Έ μκ°νλ μ΄λ€ μ₯μ μ΄ μμκΉ?
π λ°©λν λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² νμΈν μ μλ€.
ν λ¬κ° λ°μν μλ¬μ λν λ‘κ·Έλ₯Ό κ°κ° μμΉνμ κ·Έλννλ‘ λνλΈ κ²μ΄λ€. κ³Όμ° μ΄λ€ κ²μ΄ λ λΉ λ₯΄κ² μ΄ν΄νκ³ λ§μ μ 보λΆμμ΄ κ°λ₯νκ°? μΌλ°μ μΌλ‘ κ·Έλνλ‘ ννν μλμͺ½μ΄ λ λΉ λ₯΄κ³ λμ λ²μμ λν΄ μ΄ν΄νκΈ° μ½λ€. μνλ κΈ°κ°μ νΉμ ν΄μ λ‘κ·Έλ₯Ό λΆμν λλ μκ°νλ₯Ό νλ€λ©΄ ν¨μ¬ λΉ λ₯΄κ³ μ ννκ² μ΄ν΄κ° κ°λ₯νλ€. λΉ λ°μ΄ν°μ νμ©μμ μκ°νκ° κ°μ‘°λλ μ΄μ λ μ¬κΈ°μ μλ€.
π‘ μ λ¬Έ μ§μμ΄ μμ΄λ μ½κ² λΆμλ λ°μ΄ν°λ₯Ό μ΄ν΄ν μ μλ€.
μΈκ°μ κ°κ°κΈ°κ΄μ ν΅ν΄ νλνλ μ 보μ 80% μ΄μμ΄ μκ°μ ν΅ν΄μ μ»λ μ§κ·Ήν μκ°μ μΈ λλ¬Όμ΄λ€. κ·Έλ§νΌ μκ°νμ ν¨κ³Όλ ν¬λ©° κ°λ°μ μ
μ₯μμλ μκ°νλ₯Ό ν΄λ νΈμ΄ μ΄ν΄κ° λ μ½λ€. νμ§λ§ μμΉ« μλͺ»λ νν λλ¬Έμ μκ°μ μν΄ λ°μνλ μ€λ₯
λ₯Ό λ²νλ μν©μ΄ λ°μν μ μμΌλ μ μν΄μΌ νλ€.
μμ μμλ₯Ό μ΄ν΄λ³΄μ. κ°λ°μλ‘μλ μ΄λ€ μμΈλ‘ μΈν΄ μλ¬κ° λ°μνλμ§ μ΄ν΄ν μ μλ€. κ·Έλ¬λ κ°λ°μκ° μλ μ¬λμ΄ ν΄λΉ λ°μ΄ν°λ₯Ό λΆμνλ€λ©΄ μ΄ν΄νλλ° μ¬μ μ§μμ΄ νμνλ€. κ·Έλ¬λ μλ μμμ²λΌ μκ°νν΄λλ©΄ μ¬μ μ§μμ΄ μμ΄λ μ΄ν΄ν μ μλ€λ μ₯μ μ΄ μλ€.
λꡬλ μ½κ² λ°μ΄ν° μΈμ¬μ΄νΈλ₯Ό μ°Ύμ μ μλ€λ κ²μ λ°μ΄ν° νμ©λ²μκ° λμ΄μ§κ³ μλ‘μ΄ κ°μΉ μ°½μΆμ λ²μκ° νλλλ€κ³ μκ°ν μ μλ€.
π μ νν λ°μ΄ν° λΆμ κ²°κ³Όλ₯Ό λμΆν μ μλ€.
μΌλ°μ μΌλ‘ λ°μ΄ν°λ₯Ό μκ°ννλ€λ©΄ λΆμμ μ©λ보λ€λ λ¨μκ² λ³΄μ¬μ£ΌκΈ° μν μ©λλ‘ μ¬μ©λλ€κ³ μκ°νκΈ° μ½λ€. νμ§λ§ λ°μ΄ν° μκ°νλ λ¨μν λΆμ κ²°κ³Όλ₯Ό μ λ¬νκΈ° μν λͺ©μ μΈμλ μ νν λΆμμ μν λ°μ΄ν° νμ λ°©λ²μΌλ‘ νμ©λλ€. μλ₯Ό λ€λ©΄ νκ· , νμ€νΈμ°¨, μκ΄κ΄κ³κ° λμΌν μμ½ ν΅κ³λ₯Ό κ°μ§ λ°μ΄ν°μ μ κ°μ§κ³ μ°μ λλ‘ μκ°νλ₯Ό νλ€λ©΄ μκ°μ ν¨ν΄μ΄ λͺ νν λ€λ₯Έ κ²μ μ μ μλ€. μλ μ΄λ―Έμ§λ 1973λ F.J.Anscombeκ° κ°λ°ν Anscomesβ Quarter λ€.
π ν¨κ³Όμ μΈ λ°μ΄ν° μΈμ¬μ΄νΈ 곡μ λ‘ μμ¬κ²°μ μ μ§νν μ μλ€.
λ³΄κ³ μλ₯Ό μ μΆνκ±°λ λ°νλ₯Ό ν λ μ€λͺ κ³Ό ν¨κ» μ λ¬λλ λ¬Έμμ μκ°ν μ°¨νΈλ λ©μμ§ μ λ¬μ ν¨κ³Όμ μΌλ‘ λ·λ°μΉ¨νλ κ·Όκ±° μλ£κ° λλ€. λ£λμ΄κ° μ½κ² μ΄ν΄ν μ μλλ‘ λμμ£Όκ³ , 곡κ°μ μ»μ μ μλ€.
λ€μν λ‘κ·Έ λ°μ΄ν°λ₯Ό νκ³³μμ μ΄ν΄λ³΄λ €λ©΄ λμ보λλ₯Ό νμ©ν μ μλ€. λμ보λλ λ€μμ μ‘°μ§ κ΅¬μ±μμ΄ λμ보λλ₯Ό 곡μ νλ©° κ°κΈ° λ€λ₯Έ κ΄μ μμ λ°μ΄ν°λ₯Ό νμνκ³ μΈμ¬μ΄νΈλ₯Ό λμΆν μ μλ€. μκ°ν μ°¨νΈλ‘ ꡬμ±λλ€λ κ²μ λ°μ΄ν° λΆμ κΈ°μ μ κ°μ§ κ°λ°μ μ΄μΈμ μ¬λλ μ½κ² λ°μ΄ν° νμ©μ ν μ μκ² νλ€. κ°μ μ΄ν΄ν λ΄μ©μ λ°νμΌλ‘ λ°μ΄ν°λ₯Ό κ·Όκ±°λ‘ ν μ€μν μμ¬κ²°μ μΌλ‘ μ΄μ΄μ§ μ μλ€.
βοΈ λ€μν λΆμΌμ λ°μ΄ν°λ₯Ό νμ©ν μ μλ€.
νΉν λ‘κ·Έ μκ°νλ κΈ°μ μ μΈ λ‘κ·ΈλΏλ§ μλλΌ μ¬μ©μ μ 보 λ‘κ·Έμμλ κ·Έ μ§κ°λ₯Ό λ°ννλ€. μ΄λ₯Όν λ©΄ λ¨μ λ¬Έμμ΄λ‘λ§ μ μ₯λλ©΄ μ½κ² μΈμ§νμ§ λͺ»νλ λΆλΆλ€(νλ‘λνΈ μ¬μ©μλ€μ μ€μκ° κ΄μ¬μ¬)μ λ³΄κ³ λΉ λ₯΄κ² μμ¬κ²°μ μ μ§νν¨μΌλ‘μ¨, μ¬μ©μμκ² λ λ§μ κ΄μ¬μ¬ λ ΈμΆμ μ λν μ μλ€.
μ΄λ° λ€μν μ₯μ μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ λ‘κ·Έ μκ°νλ₯Ό λμ νλ κ²μ ν° λμμ΄ λλ€κ³ μκ°νλ€. κ·Έλ λ€λ©΄ λ‘κ·Έ μκ°νλ μ΄λ»κ² νλ κ²μΌκΉ?
λ‘κ·Έ μκ°ν λꡬ
λ§μ μμ λ‘κ·Έλ₯Ό μ²λ¦¬νκΈ° μν΄μλ μ€μν μ§μ€ λ‘κΉ
λ°©μ
μ ν΅ν΄ λ‘κ·Έλ₯Ό μ μ₯νλ€. μ΄ κ³Όμ μμ μ£Όλ‘ Kibana νΉμ Grafana κ° μ¬μ©λλ€. λ μκ°ν λꡬ λ€ Elasticsearch λ₯Ό ν΅ν΄ μκ°νλ₯Ό μ¬μ©ν μ μμΌλ κ°λ¨νκ² Elasticsearch κ° μ΄λ€ κ²μΈμ§λΆν° μμλ³Έλ€.
Elasticsearch (λ‘κ·Έ μ μ₯ λ° κ²μ)
ν μ€νΈ, μ«μ, μμΉ κΈ°λ° μ 보, μ ν λ° λΉμ ν λ°μ΄ν° λ± λͺ¨λ μ νμ λ°μ΄ν°λ₯Ό μν λ¬΄λ£ κ²μ λ° λΆμ μμ§μ΄λ€. λΆμ°νκ³Ό κ°λ°©νμ νΉμ§μΌλ‘ νλ€. Elastic Stack μ ν΅μ¬ κ΅¬μ± μμλ€. Elasticsearch λ‘ νλ¬λ€μ΄μ¨ μμ λ°μ΄ν°λ₯Ό μλ‘ κ΄λ ¨ μλ λ¬ΈμλΌλ¦¬ μμΈνμ¬ λ³΅μ‘ν 쿼리μ λν΄ μμ½ κ²μ ν μ μλλ‘ μ 곡νλ€. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€κ° document μ€μ¬μ΄λΌλ©΄ Elasticsearch λ ν μ€νΈ μ€μ¬μ΄λΌκ³ λ³Ό μ μλ€. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό λ² μ΄μ€λ‘ κ²μμ νμν λΆλΆμ Elasticsearch λ‘ μ§ννλ κ²μ΄ 보ν΅μ΄λ€.
Kibana
μΈκ³μμ κ°μ₯ μΈκΈ° μλ μ€ν μμ€ λ‘κ·Έ λΆμ νλ«νΌμΈ Elastic μμ μ 곡νλ ELK(Elasticsearch Logstash Kibana) μ K(Kibana)λ€. λ°μ΄ν° 쿼리 λ° λΆμμ΄ ν΅μ¬μ΄λ€. λ€μν λ°©λ²μ μ¬μ©ν΄ κ·Όλ³Έ μμΈ λΆμ λ° μ§λ¨μ μν΄ λ°μ΄ν° λ΄μ νΉμ μ΄λ²€νΈ λλ λ¬Έμμ΄μ λν΄ Elasticsearch μμ μΈλ±μ±λ λ°μ΄ν° κ²μμ μ 곡νλ€. μ΄λ¬ν 쿼리λ₯Ό κΈ°λ°μΌλ‘ μ°¨νΈ, ν μ΄λΈ, μ§ν λ±μ λ€μν μκ°ν λ°©μμ ν΅ν΄ λ°μ΄ν°λ₯Ό μκ°ν ν μ μλ€. λ¬Έμ ν΄κ²°, ν¬λ μ, κ°λ°, 보μ λ±μ μ§μμ Kibana λ§ μ 곡νλ€.
Grafana
λ€μν λ°μ΄ν° μ μ₯μμμ μ¬μ©ν μ μλ λ¬΄λ£ μ€ν μμ€ μκ°ν λꡬλ€. μΌλ°μ μΌλ‘ Graphite, InfluxDB, Prometheuse, Elasticsearch μ ν¨κ» μ¬μ©λλ€. Kibana κ° μ 곡νμ§ μμλ λ©νΈλ¦μ λν μ§μμ μ 곡νλ €κ³ νκΈ° λλ¬Έμ CPU Memory, Disk Input/Output, μ¬μ©λ₯ λ±μ λ©νΈλ¦μ€ μ§νλ₯Ό μκ°ννλλ° νΉνλμ΄ μλ€.
μμ λ μκ°ν λꡬλ μ¬μ© λͺ©μ μ λ°λΌ μ°¨μ΄μ μ΄ μκΈ΄λ€. λ°λΌμ λ³ΈμΈμ΄ μκ°ννκ³ μ νλ λ‘κ·Έμ λν΄ μ μλ₯Ό λ΄λ¦¬κ³ , κ·Έκ²μ κ°μ₯ μ ν©ν μκ°ν λꡬλ₯Ό μ μ©νλ κ²μ΄ μ’λ€.
κ²°λ‘
κ°λ°μλ λ‘κΉ
κ³Ό μΈμ λ ν¨κ»νλ€. κ·Έλ λ€λ©΄ λ‘κΉ
μ λΆμνκ³ νμ©ν΄ λκ°λ κ²μ κ°λ°μμ μμ λΌκ³ μκ°νλ€. μλ κ²μ΄ ν
μ΄λΌλ λ§μ΄ μλ―μ΄ μ νν μ 보λ₯Ό λΉ λ₯΄κ² μμκ°λ κ²μ λμ±μ΄ 21μΈκΈ°μ λ§€μ° μ€μνλ€. μμ§ν λ‘κ·Έλ₯Ό λΆμνκ³ λμκ°μ μκ°νκΉμ§ νλ μ°μ΅μ νλ κ²μ λΆλͺ
κ°λ°μμ μ£Όλ³ μ¬λλ€μκ² ν° λμμ΄ λλ¦¬λΌ μκ°νλ€.
μ°Έκ³
- λΉμ λ λ°μ΄ν° μκ°νλ₯Ό ν΄μΌ νλ μ΄μ 5κ°μ§
- λ‘κ·Έκ° λμ§ μμ? ELKλ‘ λ§λ€μ΄λ³΄λ€.
- Grafana vs. Kibana: The Key Differences to Know