본문 바로가기
Data/ELK

[2021.05.28] 인턴 +88 Detect 사용법(MySQL 설치(Linux), DB에 있는 mulit_table 값 넣기, conf파일(python))

by injekim97 2021. 5. 28.
반응형

[2021.05.28] 인턴 +88  Detect 사용법(MySQL 설치(Linux), DB에 있는 mulit_table 값 넣기, conf파일(python))

 

 

 

* Machine Learning(Abnormal) /Detect 를 사용하기 위해선 라이센스 30일을 등록해야한다.

* 등록방법: Machine Learning -> Start trial 클릭 

 

-> Start trial 클릭

 

-> Start trial 클릭

 

 

-> Start my trial 클릭

 

 

-> 라이센스 30일이 등록된 모습이다.

 

 

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

<detections를 쓰기 위해 elasticsearch.yml 과 kibana.yml을 수정>

 

https://www.elastic.co/guide/en/security/7.13/detections-permissions-section.html

 

Detections prerequisites and requirements | Elastic Security Solution [7.13] | Elastic

After changing the xpack.encryptedSavedObjects.encryptionKey value and restarting Kibana, you must restart all detection rules.

www.elastic.co

 

<elasticsearch.yml>

network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
xpack.security.enabled: true

 

 

/etc/kibana/kibana.yml 과, /usr/share/kibana/config/kibana.yml을 수정해줘야 한다.

server.port: 5601
server.host: 0.0.0.0
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana"
elasticsearch.password: "r3c3MuYlTKhliL3zW2nd"
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'



 

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

<apache log 3gb 파일을 넣어보자.>

 

 

 

0. jdbc plugin install(Linux에서 MySQL 설치)

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

 

1.  AWS에서 데이터베이스로 접근하기 위해선,

1-1. 해당 AWS의 .pem 파일을 통해, Git Bash로 접근 후,

2-1. AWSLink와, DB에서 가져올 데이터베이스명(스키마명), 각 테이블이름 들을 알아야한다.

* AWS에 접근하지 않고, Azure에서 AWS에 접근하여 DB를 가져오는 것은 불가능함.(그렇기 때문에 AWS에 .pem으로 접근하여, DB이름, 가져올 DB의 테이블 명을 따와야함)

 

 

 

2. python 코드로 짜여진 conf 파일을 만든다.(multitable insert)

https://injekim97.tistory.com/235

 

[2021.05.17~20] 인턴 +77 최종본 jdbc_plugin multi_table loop in Python (CSV변환 및 editplus 꿀팁 포함)

[2021.05.17~20] 인턴 +77 최종본  jdbc_plugin multi_table loop in Python (CSV변환 및 editplus 꿀팁 포함) 회사에 다니게 되면, 하나의 스키마(데이터베이스)로 정의되어 있는 곳에 수 많은 table 값들이 저..

injekim97.tistory.com

 

0528_output_id,password 추가(jdbc_multi_table).ipynb
0.14MB

 

-> XPACK 기능을 사용해씨 때문에 elasticsearch에 user, password를 적어 값을 부여해줘야함

 

 

<또한, python을 이용한 output(빨간색으로 표시한 부분)을 AWS에 맞게 수정해 줘야함>

jdbc_connection_string => "jdbc:mysql://AWSLINK:3306/db_name?useSSL=false&user=root&password=1234" 
jdbc_user => "root"
jdbc_password => "1234"

 

 

3. 그런다음에, 해당 output 값을 모두 복사하여, /usr/share/logstash/bin 에 sudo vi test.conf , 복붙 후 저장

 

 

 

<logstash 실행을 위한 권한 설정>

sudo chown -R azureuser:azureuser /usr/share/logstash/data/

/usr/share/logstash/bin$ sudo chown -R azureuser:azureuser /var/lib/logstash/
/usr/share/logstash/bin$ sudo chown -R azureuser:azureuser /usr/share/logstash/logstash-core/lib/logstash/settings.rb

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

 

 

4. logstash 실행

4-1. azureuser@ELK-Xpack:/usr/share/logstash/bin 경로로 이동후 아래 명령어 수행

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

 

 

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

에러문제들은 위에서 순차적으로 권한을 부여하면 발생하지 X

 

 

아래와 같은 Error 발생시
/var/log/logstash/logstash-plain.log java.io.IOException: Permission denied

* 해결방법 (권한 부여)

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

 

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

* 해당 에러가 발생할 때 해결방법

[FATAL] 2021-05-21 07:17:18.402 [main] runner - An unexpected error occurred! {:error=>#<ArgumentError: Path "/usr/share/logstash/data/queue" must be a writable directory. It is not writable.>, :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/settings.rb:530:in `validate'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:290:in `validate_value'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:201:in `block in validate_all'", "org/jruby/RubyHash.java:1415:in `each'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:200:in `validate_all'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:326:in `execute'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:274:in `run'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/clamp-0.6.5/lib/clamp/command.rb:132:in `run'", "/usr/share/logstash/lib/bootstrap/environment.rb:88:in `<main>'"]}

 

 

 

error=>#<ArgumentError: Path "/usr/share/logstash/data/queue" must be a writable directory. It is not writable.

-> 해당 디렉토리(/usr/share/logstash/data/queue)에 쓰기 권한이 없어서 오류가 발생

-> 해결 하기 위해 아래와 같은 명령어를 붙여 넣기 하면 된다. 

sudo mkdir /usr/share/logstash/data/queue
sudo chown -R azureuser:azureuser /usr/share/logstash/data/queue

 

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

+@ Linux에서 MySQL 설치

 

https://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

 

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

 

 

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

-> bind-address            = 0.0.0.0    # 외부 접속 허용

 

 

반응형

댓글