레이블이 mingw인 게시물을 표시합니다. 모든 게시물 표시
레이블이 mingw인 게시물을 표시합니다. 모든 게시물 표시

ElasticSearch 과 Kibana 사용하기

ElasticSearch 는 Java 로 만든 Apache Lucene(루씬)을 기반으로한 분산 검색엔진이다.
데이터를 JSON 형식으로 저장하여 스키마 프리하며 확장이 용이하며 검색 기능이 꽤 강력하여 여러곳에서 사용되고 있다.
Kibana 는 ElasticSearch 를 쉽게 사용할 수 있도록 도와주는 일종의 시각화 도구이다.

##########

# ElasticSearch 설치
# 기본적으로 Java 로 만든 루씬을 사용하기 때문에 Java 실행 환경이 우선되어야 한다.
# JAVA_HOME 환경 변수가 등록되어 있는지 확인하고 없으면 JDK 를 설치하자.
# https://www.elastic.co/downloads/elasticsearch  다운로드 후 압축만 풀어 사용하면 된다.
# Elastic 시리즈의 다른 제품도 많은데 ElasticSearch 와 연동하기 쉽다.
# windows에서는 elasticsearch-2.3.3.zip 기준
# 커맨드라인으로 서버 실행하기
bin\elasticsearch.bat
# 커맨드라인으로 실행하면 다음과 같이 자바 프로세스가 수행된다.
"c:\Program Files\Java\jdk1.7.0_21\bin\java"   -Xms256m -Xmx1g -Djava.awt.headless=true -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true  -Delasticsearch -Des-foreground=yes -Des.path.home="C:\elasticsearch-2.3.3" -cp "C:\elasticsearch-2.3.3/lib/elasticsearch-2.3.3.jar;C:\elasticsearch-2.3.3/ㅁlib/*" "org.elasticsearch.bootstrap.Elasticsearch" start
# 윈도우 서비스로 등록하기(삭제는 remove 옵션)
bin\service.bat install
# 서비스로 서버를 시작하면 다음과 같은 프로세스가 수행된다.
elasticsearch-service-x64.exe

# osx 에서는
brew install elasticsearch
brew services start elasticsearch

# centos 에서는(5.2.2 기준, java 필요시 yum install java)
curl -O "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.tar.gz"
tar zxvf elasticsearch-5.2.2.tar.gz
# restart
cat elasticsearch.pid | xargs kill
./elasticsearch-5.2.2/bin/elasticsearch -d -p elasticsearch.pid

# 설정 파일 수정
vi config\elasticsearch.yml
# osx 에서는 (brew info elasticsearch 로 config 경로 확인)
vi /usr/local/etc/elasticsearch/elasticsearch.yml
cluster.name: ysoftman-cluster1
network.host: 10.10.10.10
http.port: 9200

# 서버 확인
# 다음과 같이 접속해보면 json 형식으로 클러스터명과 버전을 확인할 수 있다.
http://10.10.10.10:9200/

# 플러그인 설치(centos 에서는 bin/elasticsearch-plugin 사용)
plugin.bat install --verbose analysis-icu
# elasticsearch 2.3.3 버전에서 아래 플러그인이 지원되지 않아 skip
#plugin.bat install --verbose Aconex/elasticsearch-head
#plugin.bat install --verbose lukas-vlcek/bigdesk

# 설치된 플러그인 리스트
plugin.bat list

##########

# Kibana 설치
# windows 에서는
https://www.elastic.co/downloads/kibana 다운로드 후 압축풀어 사용한다.

# 설정 파일
vi config/kibana.yml
# osx 에서는 (brew info kibana 로 config 경로 확인)
vi /usr/local/etc/kibana/kibana.yml
server.port: 5601
server.host: "10.10.10.11"
elasticsearch.url: "http://10.10.10.10:9200"

# 시작(ElasticSearch 디폴트 10.10.10.10:9200 로 연결)
bin\kibana.bat

# osx 에서는
brew install kibana
brew services start kibana

# centos 에서는(5.2.2 기준)
curl -O "https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-linux-x86_64.tar.gz"
tar zxvf kibana-5.2.2-linux-x86_64.tar.gz

# 혹시 열려 있는 kibana 프로세스 확인
ps -ef | grep '.*node/bin/node.*src/cli'

# restart(daemon 설치 포스트 참고)
daemon --name=kibana --pidfile="/home/ysoftman/kibana.pid" --stop
daemon --name=kibana --pidfile="/home/ysoftman/kibana.pid" --chdir="/home/ysoftman" --  "./kibana-5.2.2-linux-x86_64/bin/kibana"

# kibana 확인
http://10.10.10.11:5601/

# 추후 logstash 로 유입된 로그 데이터를 검색(Discover->검색명령)할 수 있다.
# elasticsearch 는
# DSL(Domain Specific Language)의 json 형태의 쿼리로 검색할 수 있고
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html

# lucene 쿼리로도 검색할 수 있다.
https://www.elastic.co/guide/en/kibana/current/lucene-query.html

# 예제
# AND, OR, NOT 은 대문자로 써야하고 각각은 && || ! 로 쓸 수 있다.
# http.response.code 필드가 존재하고, 값은 200,204,302가 아닌것들 검색
(_exists_:http.response.code) AND NOT(http.response.code:200) AND NOT(http.response.code:204) AND NOT(http.response.code:302)

##########

# 테스트 해보기
# curl 바이러리 다운로드(윈도우 기준)
https://bintray.com/artifact/download/vszakats/generic/curl-7.49.0-win32-mingw.7z

# 환경변수 추가(윈도우 기준)
PATH=%PATH%;C:\curl-7.49.0-win32-mingw\bin

# 문서 추가(생성)
# 리눅스는 옵션값에 quote(')를 사용하지만 윈도우는 doublequote(")를 사용해야 한다.
curl -X PUT http://10.10.10.10:9200/2016-05-27/ysoftman/doc1 -d "
{
"no\":123456,
"name\":\"ysoftman\",
"etc\":\"melong\"
}
"

# 문서 조회(curl 대신 브라우저 URL 로 요청해도 된다.)
curl -X GET http://10.10.10.10:9200/2016-05-27/ysoftman/doc1

# 문서 검색(curl 대신 브라우저 URL 로 요청해도 된다.)
curl -X GET http://10.10.10.10:9200/2016-05-27/ysoftman/_search?q=name:ysoftman

# 문서 삭제
curl -X DELETE http://10.10.10.10:9200/2016-05-27/ysoftman/doc1

# 참고
https://www.elastic.co/downloads/elasticsearch
https://www.elastic.co/guide/en/elasticsearch/plugins/2.3/plugin-management.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
https://curl.haxx.se/docs/httpscripting.html#Modify_method_and_headers
http://d2.naver.com/helloworld/273788

vscode Golang

# vscode Golang 사용하기
# vscode-go extension 설치
https://marketplace.visualstudio.com/items?itemName=lukehoban.Go
# vscode 업데이트 후 동작하지 않으면 go extension 삭제하고 재설치
ctrl + shift + p -> ext install (install extension) -> "Rich Go language support for Visual Studio Code" 설치 -> Restart

# 사용자 설정(default setting 값은 수정할 수 없고, overwrite 된다.)
File -> Preferences -> User Settings
{
  "go.buildOnSave": true,
  "go.lintOnSave": true,
  "go.vetOnSave": true,
  "go.buildTags": "",
  "go.buildFlags": [],
  "go.lintFlags": [],
  "go.vetFlags": [],
  "go.coverOnSave": false,
  "go.useCodeSnippetsOnFunctionSuggest": false,
  "go.formatOnSave": true,
  // goreturns 은 goimports(자동 임포트), gofmt(자동 포맷팅)를 사용하고 리턴코드도 자동으로 채워준다.
  "go.formatTool": "goreturns",
  "go.gocodeAutoBuild": false,
  // 맥,리눅스 기준
  //"go.goroot": "/usr/local/go",
  //"go.gopath": "/Users/ysoftman/gopath"
  // 윈도우 기준
  "go.goroot": "c:\\go",
  "go.gopath": "c:\\ysoftman\\Project\\gopath"
}

#####

# delve(디버거) 설치(go v1.5 이상 필요)
https://github.com/derekparker/delve/tree/master/Documentation/installation

# 맥의 경우
brew install go-delve/delve/delve

# 리눅스의 경우
go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
cd $GOPATH/src/github.com/derekparker/delve
make install

# 윈도우 mingw-w64
http://sourceforge.net/projects/mingw-w64/
# mingw-w64 설치시 아래와 같이 선택
Version: Latest available (5.3.0 at time of writing)
Architecture: x86_64
Threads: posix (shouldn't actually matter)
Exception: seh (shouldn't actually matter)
Build revision: Latest available (0 at time of writing)
# 설치경로 C:\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0
# 설치 완료 후 환경 변수 PATH 에 경로 추가
# C:\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin
# dlv 라이브러리 빌드 및 설치
# 참고로 다른 버전의 mingw 가 설치되어 path 로 잡혀 있어 실행되면
# 에러가 발생하니 환경변수 path 에서 제외시키던가 다른버전은 삭제하도록 한다.
go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
cd c:\ysoftman\project\gopath\src\github.com\derekparker\delve
set GO15VENDOREXPERIMENT=1
mingw32-make install

# 처음에는 디버거 선택 화면이 나오고 go 선택하면  launch 환경을 편집할 수 있다.
# 설정은 현재 워킹 디렉토리에서 .vscode/launch.json 로 저장된다.
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch",
      "type": "go",
      "request": "launch",
      "mode": "debug",
      "program": "${workspaceRoot}",
      "env": {},
      "args": []
    }
  ]
}

# go 포맷팅(gofmt)
alt + shift + f

# go back
alt + left arrow

# go forward
alt + right arrow

# debugging start
f5

# debugging stop
shift + f5

# debugging step over
f10

# debugging step into
f11

# debugging step out
Shift+F11

# 기타 Command Palette(ctrl + shift + p) 에서 명령어를 찾아 수행

#####

# 필요시 golang 툴 설치
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols

Eclipse 윈도우에서 C++ 환경 만들기

1. 윈도우에서 사용할 수 있는 C++ 컴파일러 구성
MinGW(Minimalist GNU for Windows)로 GNU 일부 툴들을 윈도우 환경에서 사용할 수 있다.
http://www.mingw.org/ 에서 다운받는다.
MinGW Installer Manger 에서 Basic Setup 부분의 항목들을 체크 -> Installation -> Apply 로 설치한다.
설치가 끝나면 bin 경로(C:\MinGW\bin) 를 시스템 환경변수에 추가한다.


2. 이클립스에서 C++ 개발 툴 플러그인 구성(또는 이클립스 CDT 사용)
이클립스 Install New Software -> Work with -> --All Available Sites-- -> Programming Language -> C/C++ 체크하여 설치
이클립스 C/C++ Prerspective 에서
File 메뉴 -> New -> C++ Project -> Project Type -> Executable 중 하나 선택 -> Tool Chains -> MinGW GCC 선택한다.

.c / .cpp 파일 빌드 (ctrl+b) 후 실행(F11) 해보자~

[참고]
맥이나 리눅스에서 debug  실행시 다음과 같은 에러가 발생한다면
"Error with launching command: gdb --version"
gdb 가 없다면 설치하고 위치를 다음 프로젝트 설정에 명시하도록 한다.
Preferences -> C/C++ -> Debug -> GDB -> GDB debugger -> /usr/local/bin/gdb
디버그 설정
Debug Configurations -> C/C++ Application ->  xxx -> Debugger -> GDB debugger -> /usr/local/bin/gdb