본문 바로가기
Data/ELK

[2021.05.14] 인턴 +74 AWS Linux(Ubuntu:20.04) ELK 설치 및 실행방법

by injekim97 2021. 5. 14.
반응형

[2021.05.14] 인턴 +74  AWS Linux(Ubuntu:20.04) ELK 설치 및 실행방법

 

 

처음에는, localhost(PC) -> AWS RDS로 접근하여 모든 데이터를 가져오려고 했다.

1. AWS 터미널에서 MYSQL 접속

2. 권한을 부여할 계정만듬

3. 방금 만들어진 새로운 계정에 모든 권한 부여,

-> 에러발생(stackoverflow에 올린 질문)

https://stackoverflow.com/questions/67517572/how-do-i-grant-permissions-to-users-in-mysql

 

How do I grant permissions to users in mysql?

How do I grant permissions to users in MySQL? This is the order in which I tried: First, connect from EC2 SERVER to MYSQL CLIENT RDS. After connecting, MYSQL created a user to give you permission....

stackoverflow.com

 

그래서 과감하게 이방법을 포기하고, AWS Linux에서 ELK를 설치하여 데이터를 가져오는 방법을 생각했다

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

* aws 에 접속해서 터미널 들어가는 방법
-> EC2 -> 인스턴스 -> 인스턴스 ID(링크)클릭 -> 인스턴스 연결

 

<인스턴스 ID 들어갔을 때의 모습>

-> 여기서 연결을 누르면 터미널이 열린다. (개인정보로 모든 데이터는 삭제함)

 

하지만, 이방법은 불편해서 Git Bash를 이용해서 들어가는 방법을 알아보자.

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

* aws 에서 Git bash로 접속하기

-> EC2 -> 인스턴스 -> 인스턴스 ID(링크)클릭 -> 퍼블릭 Ipv4주소 복사

 

 

-> 그런 다음, 기존에 AWS를 만들 때 .pem 파일을 저장했을 것이다.

ssh -i .pem ubuntu@퍼블릭Ipv4주소

 

 

* AWS Port 번호 추가하는 방법

-> EC2 -> 인스턴스 -> 인스턴스 ID(링크)클릭 -> 보안 -> 보안그룹(링크)클릭 -> 인바운드 규칙 -> 인바운드 규칙 편집

 

-> 규칙 추가 (9200elasticsearch, 5601: kibana) -> ★꼭 위치무관으로 해야함(사용자 지정X)★

 

 

자, 이제 AWS에서 터미널로 접속하는 방법과, Git Bash(깃 배쉬)를 통해 Linux에 접속하는 방법을 알아보았다. 

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

 

https://injekim97.tistory.com/183

 

[2021.04.14] 인턴 +44 Linux(Ubuntu18.04) - ELK 설치(MySQL 연동 포함) & Virtual Machine (Azure) :: 기초부터 다지

 

injekim97.tistory.com

-> 위의 링크에서 Linux(Ubuntu Version :18.04)이다.

-> 똑같은 Linux에서 ELK를 설치하는 것이므로, 똑같이 따라 진행 했지만 JAVA 설치부터 에러가 발생

 

 

* sudo add-apt-repository ppa:webupd8team/java  (20.04일 경우 해당 명령어로 java 설치 X)

-> ppa 설치는 18.04 이하만 지원함

 

 

* 이미 위의 명령어로 설치를 시도 했으면, 아래와 같은 에러 발생하며 설치한 파일을 지워줘야한다.

the repository 'http://ppa.launchpad.net/webupd8team/java/ubuntu focal Release' does not have a Release file.

 

 

* Release 지우는 방법

-> cd /etc/apt/sources.list.d 이동

-> ls 후에, rm -f webupd8team~~~ 시작되는걸 지우면 된다.

 

 

 

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

그런 후에,  apt-get을 업데이트 및 업그레이드 후, 다른 방법으로 java를 설치해줘야 한다.(1~3 사진 생략)

 

 

 

1.Linux(Ubuntu:20.04)에서 java 설치하는 방법 ★

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openjdk-11-jdk
java -version

 

 

2. ELK 설치전에 각 홈페이지 들어가서 최신 버전 확인 후, 설치 하기

 

elasticsearch 설치

-> https://www.elastic.co/kr/downloads/elasticsearch

 

Download Elasticsearch Free | Get Started Now | Elastic

Download Elasticsearch or the complete Elastic Stack (formerly ELK stack) for free and start searching and analyzing in minutes with Elastic.

www.elastic.co

 

Kibana를 설치한다.

-> www.elastic.co/kr/downloads/kibana  

 

Download Kibana Free | Get Started Now | Elastic

Download Kibana or the complete Elastic Stack (formerly ELK stack) for free and start visualizing, analyzing, and exploring your data with Elastic in minutes.

www.elastic.co

 

Logstash  설치

-> www.elastic.co/kr/downloads/logstash  

 

Download Logstash Free | Get Started Now | Elastic

Download Logstash or the complete Elastic Stack (formerly ELK stack) for free and start collecting, searching, and analyzing your data with Elastic in minutes.

www.elastic.co

 

 

filebeat 설치

-> www.elastic.co/kr/downloads/beats/filebeat

 

1. Elastic, Logstash , Kibana 링크를 타고 들어감

2. DEB 파일에 마우스 커서를 가져다 놓으면,  deb 파일 링크가 7시 방향에 뜸 -> 링크 복사 후

3. 가상 머신에서, wget 명령어를 이용해, 설치

 

 

 

wget artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-amd64.deb
wget artifacts.elastic.co/downloads/kibana/kibana-7.12.0-amd64.deb
wget artifacts.elastic.co/downloads/logstash/logstash-7.12.0-amd64.deb
wget artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.0-amd64.deb

 

 

-> wget 으로 ELK, filebeat 설치파일을 가져왔다.

이제, dpkg 명령어를 통해 deb 파일들을 풀어 설치해보자

 

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

3. ELK 및 파일 비트 설치

sudo dpkg -i elasticsearch-7.12.0-amd64.deb
sudo dpkg -i logstash-7.12.0-amd64.deb
sudo dpkg -i kibana-7.12.0-amd64.deb
sudo dpkg -i filebeat-7.12.0-amd64.deb

 

 

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

이제, /etc/elasticsearch/Elasticsearch.yml 수정 

-> 경로 이동 중에, 권한이 없다고 하면, ★★★ 해당 디렉토리에 권한을 부여하자 ★★★

sudo chown -R ubuntu:ubuntu /etc/elasticsearch

위의 명령어를 치면 이제 이동이 될 것이다.

 

nano 파일명 사용법(vi == nano)
1. 화살표로 움직여서, 원하는 곳에 문장 입력 후 
2. 컨트롤 + O 누르고 Enter (해당 파일 이름이 쳐져있음 그대로 저장하려면 Enter)
3. 그런 후 , 컨트롤 + X 누르면 저장됨

-> 위의 사진처럼 수정

 

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

이제 elasticsearch를 실행해보자.

실행방법은 /usr/share/elasticsearch/bin 경로로 들어가서,./elasticsearch로 실행함

sudo chown -R ubuntu:ubuntu /usr/share/elasticsearch/bin

-> 위의 명령어로 권한부여

 

sudo chown -R ubuntu:ubuntu /etc/default/elasticsearch

-> 위의 명령어로 권한부여

 

 

sudo chown -R ubuntu:ubuntu /var/log/elasticsearch

-> 위의 명령어로 권한부여

 

sudo chown -R ubuntu:ubuntu /var/lib/elasticsearch

-> 위의 명령어로 권한부여

 

이렇게 실행할 때마다 권한이 없는 경우 권한을 부여하여, 마침내 실행에 성공하였다.

-> 실행하는 Linux를 냅둔 상태에서, Git Bash로 Linux를 하나 더 킨다.

curl -XGET "localhost:9200"

 

-> elasticsearch가 설치 되었다.

 

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

이제, kibana.yml를 setting 해보자.

 

sudo chown -R ubuntu:ubuntu /etc/kibana

-> 위의 명령어로 권한부여

 

자, 이제 /etc/kibana/kibana.yml 수정해보자.

-> 아래의 사진처럼 3개만 설정해주면 된다

 

kibana 실행방법

-> /usr/share/kibana/bin 경로로 들어가기

-> 그런 후에,./kibana로 실행함

 

-> 해당 경로에 kibana.yml을 그대로 복사해줘야한다.

 

-> 보면, 디렉토리를 만들 권한이 없다.

sudo chown -R ubuntu:ubuntu /usr/share/kibana

-> 해당 명령어로 권한을 부여 한 후에, config라는 디렉토리 생성

 

-> config 안에 kibana.yml을 복사해줌

 cp kibana.yml /usr/share/kibana/config/kibana.yml

 

 

 

 

 

자, 이제 /usr/share/kibana/bin 경로로 이동 후./kibana를 실행해보자.

-> 성공적으로 Kibana가 실행 됐다.

 

 

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

<해당 에러 발생시 해결방법: 아래의 명령어 사용>

sudo chmod 777 /usr/share/kibana/data/

 

 

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

<kibana 접속 화면>

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

3. logstash 경로 지정 

 

injekim97.tistory.com/184

 

[2021.04.15] 인턴 +45 가상머신(Ubuntu_Azure)에서 MySQL 설치

[2021.04.15] 인턴 +45  가상머신(Ubuntu_Azure)에서 MySQL 설치하기 나의 실습환경은 Azure에서 제공해주는 가상머신(Ubuntu)를 만든 상태이다. dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/ MySQL :: A..

injekim97.tistory.com

 

 

linux(Ubunut)에 MySQL을 설치(나중에 쓰일 수도 있기 때문)

wget dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.16-1_all.deb
sudo apt-get update
sudo apt-get install mysql-server

 

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

MySQL 버전 확인 및 접속방법

mysql --version
sudo /usr/bin/mysql -u root -p

-> 비번 root (접속 완료)

 

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

자, logstash를 실행하기 앞서, jdbc_driver를 설치해야 한다.

 

 

* jdbc_driver 설치 방법

wget dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java_8.0.23-1ubuntu18.04_all.deb

-> wget으로 jdbc_driver를 deb 파일을 받음

 

sudo dpkg -i mysql-connector-java_8.0.23-1ubuntu18.04_all.deb

-> 위의 명령어로 wget 으로 가져온 압축파일.deb를 풀어줌

 

 

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

이제 설치한 jdbc 파일의 path(경로)를 설정하자.

-> 보면 jdbc(mysql-connector-J)의 경로는 usr/share/java/mysql-connector-java-8.0.23.jar

(해당 경로로 test.conf 파일 경로를 수정하자)

 

 

 

AWS RDS 데이터를 가져오기 위해, test.conf 파일을 만들어보자.

-> 여기서 output의 ip는 나의 Linux(Azure) ip 주소이다.

input {
    jdbc {
        clean_run => true
        jdbc_driver_library => "/usr/share/java/mysql-connector-java-8.0.23.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        jdbc_connection_string => "jdbc:mysql://AWSLINK:3306/스키마명?useSSL=false&user=root&password=비밀번호"
        jdbc_user => "root"
        jdbc_password => "비밀번호"
        schedule => "* * * * *"
        statement => "select * from 스키마명"
    }
}

output {
    elasticsearch {
        hosts => "52.188.20.167:9200"
        index => "AWS_DB_0514"
    }
    stdout {
        codec => rubydebug
    }
}


* jdbc_driver_library -> Ubuntu에서 Connector-J 가 깔린 경로로 지정해주면 된다.

 

 

 

 

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

logstash 실행 명령어

./logstash -f test.conf --path.settings /etc/logstash/

 

-> 하지만 실행해보니, 에러 log를 보면, /var/log/logstash/logstash-plain.log 접근권한 X

 

 

sudo chown -R ubuntu:ubuntu /var/log/logstash

 

 

sudo chown -R ubuntu:ubuntu /var/lib/logstash

-> 위의 사진을 보면 writable 할 수 없으니, 한번 해당 경로에 권한을 줘보자.(그런 다음에 재실행)

 

 

 

* 권한을 주니, 다른 에러가 발생

-> 보니까 16번 줄의 conf파일에 오타가 있다.(" 잘 확인하자)

 

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

이제, AWS RDS에 데이터를 접근해서 나의 가상머신(Azure)로 보내보자.

 

1. AWS RDS에 logstash를 실행하기 위해 Linux 창 1개

 ./logstash -f test.conf --path.settings /etc/logstash/

 

2. 가상머신 (Azure)에 elasticsearch로 보내기 위해 Linux 창2개

->./elasticsearch

->./kibana

 

<성공된 모습 AWS RDS -> Azure(elasticsearch)>

 

반응형

댓글