[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
그래서 과감하게 이방법을 포기하고, 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
-> 위의 링크에서 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
Kibana를 설치한다.
-> www.elastic.co/kr/downloads/kibana
Logstash 설치
-> www.elastic.co/kr/downloads/logstash
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 경로 지정
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)>
'Data > ELK' 카테고리의 다른 글
[2021.05.20] 인턴 +80 Tag Cloud(WordCloud) 시각화 방법 (0) | 2021.05.20 |
---|---|
[2021.05.17~20] 인턴 +77 최종본 jdbc_plugin multi_table loop in Python (CSV변환 및 editplus 꿀팁 포함) (0) | 2021.05.17 |
[2021.05.06] 인턴 +66 Query DSL을 통해 원하는 필드 값만 추출 하는 방법 (0) | 2021.05.06 |
[2021.05.04] 인턴 +64 Elasticsearch Query DSL 개념 및 사용법 (0) | 2021.05.04 |
[2021.04.16] 인턴 +46 Linux(Ubuntu18.04) - Apache log analysis (geoip 사용) (0) | 2021.04.16 |
댓글