본문 바로가기
Data/ELK

[2021.04.16] 인턴 +46 Linux(Ubuntu18.04) - Apache log analysis (geoip 사용)

by injekim97 2021. 4. 16.
반응형

[2021.04.16] 인턴 +46  Linux(Ubuntu18.04) - Apache log analysis (geoip 사용)

 

 

* Linux 복사하기 명령어

cp 파일명 경로

cp geoip_test1.conf /usr/share/logstash/bin

 

 

* Linux 삭제하기 명령어

rm -rf 파일명

 

 

* PC 와 Linux(Ubuntu)에서 ELK를 설치 및 사용 하면서 느낀점

-> 같은 사양이라도 ELK를 Linux(Ubuntu)에서 깔아서 출력하는게 PC보다 렉이 훨 안걸린다.

결론, ELK를 Linux(Ubuntu)에 설치 할 줄 알면, Linux를 적극적으로 사용하자.

 

 

* PC 와 Linux(Ubuntu)에서 geoip를 하기 위해선?

1. kibana에 들어가서 dev tools 검색 후 들어감

2. kibana template를 만들어줌

PUT 1430_linux_geoip
PUT 1430_linux_geoip/_mapping
{
  "properties" : {
    "geoip" : {
      "dynamic" : true,
      "properties" : {
        "location" : {
          "type" : "geo_point"
        }
      }
    }
  }
}

 

3. 해당 만든 인덱스명(1430_linux_geoip)에 맞춰, conf파일 output에 index명을 수정함.

4. 데이터를 넣은 후에, index patterns 클릭해서 -> 만들어 준 후,

5. visualize library 클릭 -> Maps 눌러서 시각화 해주면 됨. 

 

 

 

 

 

---------------------------------------------------------------------------------------------------------------------------

PC에서 Linux(Ubuntu)로 파일 옮기는 방법

injekim97.tistory.com/185?category=935739

 

[2021.04.16] 인턴 +46 PC 에서 Linux(Ubuntu) 파일 전송(파일 질라)

[2021.04.16] 인턴 +46  PC 에서 Linux(Ubuntu) 파일 전송(파일 질라) * 파일질라 설치  (PC LINUX 파일 전송 가능) filezilla-project.org/download.php?type=client Download FileZilla Client for Windows..

injekim97.tistory.com

-> 여기서 보면, 미리 apache log file을 Linux(Ubuntu)로 이동하였다.

 

 

 

 

 

 

-------------------------------------------------------------------------------------------------------------------------

제일 먼저, kibana-template를 수정 해줘야 한다. 

injekim97.tistory.com/166?category=936465

 

[2021.04.02] 인턴 +32 Apache log Analysis log file(3GB) - geoip 사용 O

[2021.04.02] 인턴 +32 Apache log Analysis log file(3GB) - geoip 사용 O 이번 아파치 로그 분석에 대한 실습 자료는 아래 링크에서 받을 수 있다.(Kaggle) www.kaggle.com/eliasdabbas/web-server-access-logs?..

injekim97.tistory.com

-> PC 버전에서 geoip를 사용했던 게시글이다.

-> 여기서처럼 똑같이 template를 만든다.

 

 

template 만드는 법

1. dev tools 검색 후 들어가가서 밑에 꺼 하나씩 입력.

 

 

1. 데이터를 넣기 전에 미리 Dev Tools에 인덱스를 만들어 놓음

Why? -> ELK에서, geoip를 찍을려면, 미리 매핑을 해줘야 하기 때문임.

PUT 1430_linux_geoip

 

 

 

2. 생성된 index(위의 사진 1430_linux_geoip) - geo_point로 사용할 속성 생성

PUT 1430_linux_geoip/_mapping
{
  "properties" : {
    "geoip" : {
      "dynamic" : true,
      "properties" : {
        "location" : {
          "type" : "geo_point"
        }
      }
    }
  }
}



->  만들어진  인덱스 1430_linux_geoip  사용해서, conf파일에 output -> index명이랑 동일하게 수정 ★

 

* 1번 라인에서 처음 만들 때 오류 뜨면 최대한 index명을 간략하게 할 것(너무 길어서 에러 뜨는 거 같음 - 내 생각)

* 다시 한번 더 말하지만, geoip는 완전한 로그 형태일 때만 사용 가능(%{COMBINEDAPACHELOG} 이 사용 가능할 때.)

 

-> GET 1430_linux_geoip 출력해보면, 해당 인덱스에 geoip 속성이 제대로 추가된 것을 알 수 있다.

-> 이제, 해당 인덱스명과 동일하게 conf 파일 output -> index 부분을 수정 후,

-> logstash로 다시 데이터를 넣어 준 후에, 시각화를 해보자.

 

 

 

 

-----------------------------------------------------------------------------------------------------------------------------------

그러고나서, 미리 Git bash로 창 4개정도 뛰어줌

-> 그런 후에, ssh -i .pem파일명 ubuntu@52.188.20.167로 각각 접속

210416_linux_geoip_test1.conf
0.00MB

-> 위의 사진을 보면, 해당 index 명이랑 template 명과 일치함.

* PC 와 Linux에서 geoip를 하기 위해선? 보면 kibana-template 명과 일치시켜줘야 한다. (그래야 geoip 시각화 가능)

 

-> 파일을 볼 때는 vi 말고, nano 명령어를 통해 보는게 훨 씬 보기 좋다.

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------

자, 이제 template와 , conf 파일을 만들어 줬으니 실행 해보자

 

Logstash 실행 방법(단, elasticsearch, kibana 항상 켜져있어야함)

./logstash -f 1430_linux_geoip --path.settings /etc/logstash

-> 성공적으로 수행 됐다. 

 

만약 logstash 실행 시 아래와 같은 에러가 발생했다면? 

[FATAL] 2020-08-01 13:57:01.895 [LogStash::Runner] runner - Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting.

 

해결 방법 :  ps -ef | grep logstash  후에 (숫자가 두개 나오는데 맨앞에꺼 적어줌) , kill -9 맨앞에꺼

-> 그런 후에 다시, ps -ef | grep logstash 하면 종료된 것을 확인할 수 있음 (logstash재실행)

 

 

-----------------------------------------------------------------------------------------------------

자, 이제 kibana - index patterns 에 들어가서 미리 template를 만든 index 명으로 만들자.

 

 

 

-> 만들어진 속성을 보면 제대로 geo_point가 들어간 것을 볼 수 있다.

-> 이제, maps 에다가 위치를 찍어보자.

 

 

-------------------------------------------------------------------------------------------------------------------------

시각화 사용 방법

-> maps -> create maps 버튼 클릭 -> add layer -> documents -> index pattens(apache_log5 select 해주기) 

 

 

-> Add layer을 누르면, 선명도와 색상 변경 가능

 

-> 변경된 색상이다.

-> 이제 Save & close 버튼을 눌러서 저장하자.

 

 

 

 

-----------------------------------------------------------------------------------------------------------------------

<template로 index를 미리 안만들고 했을 경우>

-> 즉 무조건, template를 만들어 주고, conf랑 index명을 동일 후에, 데이터를 넣어줘야함(미리 데이터 넣어주면 X)

-> 이런 경우, 다시 처음부터 해야한다.

 

 

 

 

 

 

-> template를 안만들고, 미리 데이터를 넣어 줬기 떄문에 

-> geoip.location.lat, geoip.location.lon 을 보면 Type이 number이다. (number면 사용 X)

 

--------------------------------------------------------------------------------------------------------------------

<Linux에서 ELK 아파치 로그 분석 할때, 작업 화면>

-> 참고로, 내 PC가 이상한지는 모르겠지만, 출력이 되다가 멈춘다. (멈춰 보이면, 데이터가 안들어가진다)

-> 7시 방향 사진은 로그인데, 한문장씩 지워야 데이터가 들어감. 

 

 

 

 하다가 도중에 출력이 멈출 때 해결방법? 

* PC인 경우엔, 로그파일이 담긴 메모장을 열어 한 문장 지우고 저장하면, 다시 출력이 된다.

* Linux(Ubuntu 18.04)에서도, vi로 i를 눌러 insert 하지말고 dd 를 눌러 한 문장을 지운후, 저장하면 출력된다.

반응형

댓글