ELK 설치
1. What is ELK?
= Elasticsearch + Logstash + KibanaElasticsearch: Apache Lucene 기반의 검색 서버
Logstash: log 수집기
Kibana: BI tool
2. Downloads
; Ubuntu docker 에 설치* Elasticsearch:
$> wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz* Logstash:
* Kibana:
3. Install
docker instance 2개: 1 for apache + logstash, 2 for elasticsearch + kibana
docker instance 에 java 필요 (4번 java 8 설치 참조)
§ Apache2 설치 - 데모서버
$> sudo apt-get update$> sudo apt-get install apache2
* log format 추가
- elasticsearch 가 JSON 형식의 API를 사용하기 때문
- /etc/apache2/apache2.conf 파일에 아래 log format 추가
- LogFormat "{ \"time\":\"%t\", \"clientip\":\"%a\",\"host\":\"%V\", \"request\":\"%U\", \"query\":\"%q\", \"method\":\"%m\", \"status\":\"%>s\", \"userAgent\":\"%{User-agent}i\", \"referer\":\"%{Referer}i\" }" json_format
* log file 추가
- /etc/apache2/sites-enabled/000-default.conf 파일에 아래 log 파일 추가
- CustomLog ${APACHE_LOG_DIR}/jsonaccess.log json_format
$> sudo /etc/init.d/apache2 restart
cf)
index.html 위치: /var/www/htmllog 위치: /var/log/apache2/access.log
파일 위치변경: /etc/apache2/sites-enabled/000-default.conf 파일에서 log 위치 및 home directory 위치 변경 가능
Timezone 변경: /etc/apache2/envvars 에서 TZ="Asia/Seoul" 추가
모든 변경 후에는 서버 재시작: /etc/init.d/apache2 restart
§ logstash 설정
$> tar -xzvf logstash-6.3.0.tar.gz
$> mv logstash-6.3.0 logstash
$> cd logstash
$logstash> mkdir conf$logstash> touch conf/logstash.conf
* logstash.conf 파일에 input / filter / output 을 아래와 같이 설정
input{
file{
path => "/var/log/apache2/jsonaccess.log"
type => apache
codec => json
start_position => beginning
}
}
filter{
geoip{source => "clientip"}
}
output{
elasticsearch{ hosts => "192.168.56.102:9200" } // hosts에는 맞는 주소값 입력
stdout { codec => rubydebug }
}
$logstash> bin/logstash -f conf/logstash.conf
§ elasticsearch 설정
$> tar -xzvf elasticsearch-6.3.0.tar.gz
$> mv elasticsearch-6.3.0 elasticsearch
$> cd elasticsearch
$elasticsearch> echo "bin/elasticsearch -d -p es.pid" > start.sh
$elasticsearch> echo "kill `cat es.pid`" > stop.sh
$elasticsearch> chmod 755 start.sh stop.sh
$elasticsearch> start.sh
* 외부 접근 설정
config/elasticsearch.yml 파일의 network.host 를 0.0.0.0 으로 변경
* vm.max_map_count 에러 발생시 (docker 의 경우) host 에서 아래 실행
$> sudo sysctl -w vm.max_map_count=262144
§ kibana 설정
$> tar -xzvf kibana-6.3.0_linux-x86_64.tar.gz
$> mv kibana-6.3.0_linux-x86_64 kibana
$> cd kibana
$kibana> bin/kibana > 2>&1 &
* 외부 접근 설정
config/kibana.yml 파일의 server.host=0.0.0.0 으로 변경
4. Java 8 설치
$> sudo add-apt-repository ppa:webupd8team/java$> sudo apt-get update
$> sudo apt-get install oracle-java8-installer
* profile 파일에 JAVA_HOME 추가
- export JAVA_HOME=/usr/lib/jvm/java-8-oracle
- export PATH=$PATH:$JAVA_HOME/bin
댓글
댓글 쓰기