-
http://slides.com/openstack/sktechx11th 를 보고 공부한 내용입니다 🙄
사전 작업: aws, twitter 가입 :)
1. 트위터 앱 생성하기
아래 링크로 이동하면 트위터 앱을 어렵지않게 만들 수 있다. acess token이 생성된다. 잘 메모해두자.
잘 메모해두자!
2. AWS EC2에서 인스턴스 생성하기
인스턴스를 생성하고 나면 ssh-key를 다운로드할 수있다. 잘 저장해두자
*N. ssh 접속 후 key 옮기기..
여기서부턴 나의 추가작업이다. 나는 윈도우 환경에서 ubuntu on window를 다운받아서 사용한다 :)
더보기- ssh 서비스를 실행시켜준다.
$ service ssh start
* permission denied(publickey) 가 뜨는 경우 /etc/ssh/sshd_config 에서 PasswordAuthentication을 no에서 yes로 변경해준다.
- filezila를 이용해서 ubuntu on window로 twitter에서 받은 ssh-key.pem을 옮겨준다.
3. AWS EC2에 접속하기
AWS EC2에 가서 인스턴스 하나를 누르면 public 주소가있다. 아까 다운 받은 ssh key와 이 주소를 이용해 쉘에서 접속한다.
$ ssh -i ssh-key.pem ubuntu@xx.xxx.xx.xxx
3-1. JDK 설치하기
$ sudo apt-get update
$ sudo apt-get upgrdae
$ sudo apt-get install openjdk-11-jdk5. 본 사이트를 기반으로 logstash 설치
(시기에 따라 아래 내용이 구버전일 수 있기에 본 사이트 접속해서 하는것이 따봉👍)
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
$ sudo apt-get install apt-transport-https
$ echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
$ sudo apt-get update && sudo apt-get install logstash6. 데이터 생성
이 블로그 에서 설명한 바에 의해 conf 파일이 바뀌면 자동으로 다시 로드할 수 있도록 변경
/etc/logstash에 가면 logstash-sample.conf가 존재한다. 이를 copy해서 수정한다!
이름은 twitter등을 붙여 변경해도된다. /etc/logstash/pipeline.yml에 보면 conf 아래 .conf 확장자는 모두 실행되도록 되어있는 것을 확인하면 이해할 수 있다 :)
사용할 키는 아래 두가지다 이를 아래 input key로 넣어주면 된다.
input { twitter { consumer_key => "5Vwx위지원h" consumer_secret => "7k1gKYT의 블로그H1veK34Ym0eMq5TCPfZcnYc4v" oauth_token => "14999541943208맨날Lm" oauth_token_secret => "bnHCgK8bq삽질만 하지용jI" keywords => ["russia"] full_tweet => true } } output { file { path => "/tmp/twitter-%{+YYYY-MM-dd}.json" codec => json_lines } }
실행은 다음과같이 한다. (처음에 가이드문서에 sudo service logstash start를 하라고 하셨는데 오류나서 프로세스 터질뻔하..물론 내가 conf를 잘못짰다 ,,여담으로 어떻게 잘못짰냐면 input{ 이 부분에 i 앞에 띄어쓰기가 있었다 ㅡㅡ;;)
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash-twitter.conf
그럼 아래와같이 로그가 뜨고..
[INFO ] 2022-03-17 07:41:01.476 [[main]-pipeline-manager] javapipeline - Pipeline started {"pipeline.id"=>"main"} [INFO ] 2022-03-17 07:41:01.531 [[main]<twitter] twitter - Starting twitter tracking {:track=>"russia"} [INFO ] 2022-03-17 07:41:01.683 [Agent thread] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]} [INFO ] 2022-03-17 07:41:04.975 [[main]>worker0] file - Opening file {:path=>"/tmp/twitter_file.2022-03-17.json"}
해당 파일을 보니 데이터가 무지많이 쌓여있다.
References
'2022년 > Developement' 카테고리의 다른 글
소프트웨어 장인 (0) 2022.04.12 로그 데이터의 중요성 (0) 2022.04.11 TIL(Today I Learned) (0) 2022.03.14 요즘 내가 즐겨 보는 것들 (0) 2022.03.08 [Daily Coding] 노션으로 코딩테스트 공부 정리하기 (5) 2022.02.10