Fluentd Use Case tail 플러그인 활용하기 in_tail 플러그인은 텍스트 파일을 읽어 수집할 수 있는 기본 플러그인이며, 로그파일과 같이 갱신되는 파일을 증분만 계속해서 수집할 수도 있다. csv 데이터 분석 데이터셋이나 기초 데이터셋과 같이 일회성 또는 배치성으로 수집하는 csv 텍스트 파일을 수집하는 방법이다. 수집 데이터 소스 head -n 5 accidentology.csv timestamp,Date,Hour,Dept,Com,Address,Zip code,Corner,Segment,Address1,Address2,Vehicle 1 description,Vehicle 1,Vehicle 2 Description,Vehicle […]
[Fluentd] Usecase – exec
Fluentd Use Case exec 플러그인 활용하기 in_exec 플러그인을 활용하면 사용자가 수집하고자 하는 정확한 정보를 만들어내서 수집할 수 있다. linux_free linux 모니터링 명령어인 free 의 결과를 주기적으로 수집해본다. 데이터 소스 스크립트 vi /app/fluentd/scripts/free.sh #!/bin/bash DATE=date "+%Y-%m-%d %H:%M:%S" DATA=free -k | grep "Mem:" | awk '{print $2,$3,$4,$5,$6,$7}' echo $DATA $DATE fluentd config # linux_free ## Input @type […]
[Fluentd] Usecase – rsyslog
Fluentd Use Case rsyslog 플러그인 활용하기 fluentd 는 기본적으로 rsyslog 를 수신하고 파싱할 수 있는 플러그인이 설치된다. rsyslogd 자체적으로 로그를 모을수 있는 기능이 있으므로 aggregator 서버를 통해 rsyslog 를 1차적으로 모은 다음, 몇 대의 aggregator 서버에서 fluentd 에게 로그를 전달해줄 수 있도록 한다. rsyslog data 흐름은 다음과 같다. 여러 대의 syslog 발생 서버 -> 몇 […]
[ElasticSearch] Configuration
ElasticSearch 설정/관리 elasticsearch.yml 아래는 엘라스틱서치 바이너리 내에 yml.template 로 기본 기재된 파라미터 Parameter Name Default Value cluster.name my-application node.name node-1 node.attr.rack r1 path.data /path/to/data path.logs /path/to/logs bootstrap.memory_lock true network.host 192.168.0.1 http.port 9200 discovery.zen.ping.unicast.hosts [“host1”, “host2”] discovery.zen.minimum_master_nodes gateway.recover_after_nodes 3 action.destructive_requires_name true cluster.name 클러스터 이름. 이 이름이 같아야 멤버 노드드들이 조인이 가능하다. 다른 엘라스틱서치 시스템 노드의 클러스터 […]
[ElasticSearch] Index Template
ElasticSearch Index templates Index template은 새로운 index가 생성될 때에, index 설정 또는 특정 필드의 데이터 타입을 정의해준다. ElasticSearch에 Logstash 등 수집기로 데이터 수집 전 index가 사전 생성될 필요가 없다. 그런데 그냥 수집하면 숫자나 날짜는 알아서 파싱을 하는데 나머지 대부분은 text로 해석한다. index template를 생성함으로써 index별로 Shard 갯수나 특정 필드에 대한 개별적인 관리를 할 수 있다. […]
[ElasticSearch] 실행 종료 스크립트
Elaticsearch 파라미터 변경해가며 테스트하는데, 실행 종료가 번거로워서 만들어본 스크립트 pid 파일을 남기는 프로세스에 응용해볼 수 있을 것 같다. 아래 스크립트를 이용하려면 어쨋든 $ES_PID 경로에 pid 파일을 남기도록 사전에 설정해주어야 한다. #!/bin/bash ES_HOME=/elastic/elasticsearch ES_PROC=$ES_HOME/bin/elasticsearch ES_PID=$ES_HOME/elasticsearch_pid if [ "$1" = "start" ];then if [ -e $ES_PID ];then echo "Start up failed, please check if ElasticSearch (PID:`cat $ES_PID`) […]
[Python] urllib
urllib urllib 라이브러리를 이용해 web 데이터를 python에서 손쉽게 활용 가능. urllib 내에 총 4개의 모듈이 존재. request parse request 웹을 열어서 데이터 읽어오는 역할. 웹에서 얻은 데이터 객체 정보 전달 test source code #!/apps/python/bin/python import urllib.request req = urllib.request res = req.urlopen(“http://oboki.net”) print (res) ## 서버 정보 반환 svr = res.getheaders() for i in svr: […]
[Python] 공공데이터포털 openAPI 이용하기
공공데이터포털 openAPI 이용하기 Python 활용신청 회원가입 후 개발계정 발급 신청 필요 오픈API 제공 데이터셋 선택 사용 목적 등 신청 사유 작성하여 접수. 몇 시간 걸림. 일반 인증키 발급 키 발급 신청 이후 한 시간 정도 지나야 사용 되는 듯. 개발 가이드 doc 보고 따라하면 되는듯 보행자무단횡단사고다발지역정보 Rest 조회 예 아래 URL을 웹 브라우저에서 조회 http://apis.data.go.kr/B552061/jaywalking/getRestJaywalking?serviceKey=’YourServiceKey’&searchYearCd=2015052&siDo=11&guGun=320 […]
[ElasticSearch] ElasticSearch 6 버전에서 Head Plugin 설치
ElasticSearch Plugin Head Installation head plugin 을 이용해서 cluster 상태, index 정보, 간단한 쿼리 수행 등의 기능을 편리하게 사용할 수 있다. elasticsearch 6 버전에서는 plugin installer를 이용한 설치가 불가능하여 굳이 사용하기 위해서는 별도 웹 서비스가 필요하다. nodejs 를 통해서 웹서비스를 하고, 웹 소스는 github 에서 별도로 내려받는다. elasticsearch 6 버전부터는 X-PACK, Kibana 확장을 통해 인덱스 […]