Elasticsearch Sql ElasticSearch 6.3.x 버전부터 X-Pack을 통해 SQL-Like Query 기능을 제공한다. Index 에 대해서 SQL 질의를 바로 하는 것이 아니라, ElasticSearch 에 최적화된 DSL 로 translate 한 뒤 해당 DSL을 이용해 조회한다. SELECT SQL만 가능하고, multi-index 조회 (join SQL)은 수행되지 않는다. 또한 스칼라 서브쿼리 등 조금만 복잡해져도 잘 안 됨. Kibana와 Curl REST API 를 […]
[MySQL] mysqldump
mysqldump mysqldump 프로세스가 실행된 순간의 데이터베이스 스키마 및 데이터를 SQL로 추출한다. 이 방식으로 백업하는 경우, DB에 TX가 발생하지 않는 상황에서 하는 것이 좋다. (AP 서비스 종료 후 백업하는 것을 권장) Usage 전체 데이터베이스 백업 mysqldump -uroot -p -A > full_database.sql 특정 데이터베이스 백업 mysqldump -uroot -p specific_database_name > specific_database_name.sql 특정 테이블 백업 mysqldump -uroot -p […]
[Windows] OpenSSH Client
Windows openssh client Windows 에서도 opessh client 를 기본 제공한다. 가볍게 사용하기 위해서 putty를 쓸 필요는 거의 없어진 것 같고, X 를 사용하는게 아니라면 .bat 파일을 생성해서 관리하는 것도 나쁘지는 않은 것 같은데 아직은 X Shell 평가판이 익숙해서 더 좋은 것 같다. C:\Windows\System32\OpenSSH 경로에 가보면 다음과 같이 scp, sftp도 있음. — scp.exe sftp.exe ssh-add.exe ssh-agent.exe […]
[Fluentd] Usecase – forward
Fluentd Usecase forward 플러그인 활용하기 망이 분리되어있거나 ssl 등의 네트워크 보안을 활용하는 경우 또는 스토리지에 연결되는 채널을 간소화하여 관리하기 위해 forward 플러그인을 활용할 수 있다. fluentd config remote fluentd agent remote fluentd agent는 해당 agent가 설치된 호스트의 파일 로그를 수집할 수도 있고 별도의 플러그인으로 다양한 로그들을 수집한다. 이를 스토리지에 직접 저장할 수 없는 경우 다른 […]
[Fluentd] Usecase – http
Fluentd Use Case http 플러그인 활용하기 지정한 Listener Port 를 통해 POST 되는 데이터를 수집한다. openAPI openAPI 를 이용해 REST 하게 받아온 데이터를 다시 Fluentd http listener 에 전달해줌으로써 데이터를 수집한다. 데이터 소스 vi /app/python/sources/JayWalkingAll.py JayWalkingAll #!/app/python/bin/python from urllib.request import urlopen from urllib.parse import urlencode,quote_plus,unquote import urllib import requests import json url = ‘http://apis.data.go.kr/B552061/jaywalking/getRestJaywalking’ my_service_key […]
[Fluentd] Usecase – tail
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 갯수나 특정 필드에 대한 개별적인 관리를 할 수 있다. […]