์ถ์ฒ : ELK ์คํ์ผ๋ก ๋ฐ์ดํฐ ๋ถ์ - Minsuk Heo
https://github.com/minsuk-heo/BigData/tree/master
- ElasticSearch : ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํ์ฉ
- Logstash : ํด๋ผ์ฐ๋ ๋ด์์ ๋ฐ์๋ ๋ก๊ทธ๋ฅผ ์ ๋ฌ๋ฐ์์ ElasticSearch์ ์ ์ฅ
- Kibana : ElasticSearch์ ์ ์ฅ๋ ๋ก๊ทธ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ
Q. Logstash๋ ์ด๋ป๊ฒ ํด๋ผ์ฐ๋์์ ๋ก๊ทธ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์๋?
Filebeat : ๊ฐ๊ฐ์ ์๋ฒ(ex. ํด๋ผ์ฐ๋์์ tomcat์๋ฒ์ DB)์ ์ค์น๋์ด์ ๋ก๊ทธ ํ์ผ์ ๋ณํ๊ฐ ์์๋ ๋ณํ๋ ๋ก๊ทธํ์ผ์ Logstash๋ก ์ ์ก
- ๋ก๊ทธ๋ฅผ ๋ฐ๋ logstash๋ ์ค์ ํ์ํจ
- ์ค์ ํ์ผ :
/etc/logstash/conf.d/logstash.conf
input { beats { port => 5044 } } output { if [beat][hostname] == "ip-172-31-30-178" or [beat][hostname] == "ip-172-31-30-179" { elasticsearch { hosts => "localhost:9200" manage_template => false index => "tomcat-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } } else if [beat][hostname] == "ip-172-31-30-180" { elasticsearch { hosts => "localhost:9200" manage_template => false index => "database-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } } else { elasticsearch { hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } } }
sudo service kibana restart
sudo service elasticsearch restart
sudo initctl restart logstash
sudo service filebeat restart
Q. Disk Size๋ ํ์ ๋์ด ์๊ณ ๋ก๊ทธ๊ฐ ๊ณ์ ์์ด๋ฉด Old Data์ญ์ ์ด๋ป๊ฒ ํด?
Curator : ์์ฝ๊ฒ Data ๋ณด์กด๊ธฐ๊ฐ ๋ฐ Data์ต๋ ์ฌ์ฉ๋์ ์ค์ ํด์ ELK Stack์ Disk๊ณต๊ฐ ๋ถ์กฑ ๋ฌธ์ ๊ฐ ์๋๋ก ํด์ค
Q. ๋ง์ฝ ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ด์ผํ๋ค๋ฉด?
๋งค์ผ ๋ฐ์๋ ๋ก๊ทธ๋ฅผ S3(Amazon)์ ์ ์ฅํด์ ํ์์ ELK Stack ๋ก๊ทธ ๋ฐฑ์ ๋ฐ ๋ณต์ ๊ฐ๋ฅ
pip install elasticsearch-curator
/etc/cron.d
์ ๋ณด ๊ฐ์ฌํฉ๋๋ค.