1. 개요

 - ElasticSearch를 사용하던 중 index mapping을 변경 해야하는 문제가 발생.

 - 재인덱싱(reindex)을 해야한다.

 - 데이터 양이 있어, 재인덱싱 시간이 길다.

 - ........

 - alias를 활용해 보자!


2. 기본작업

 1) Alias 만들기 

  - test_v1 이라는 index에 test라는 alias를 만든다.


curl -XPOST 'http://localhost:9200/_aliases' -d '

{

    "actions" : [

        { "add" : 

          { 

            "index" : "test_v1", 

            "alias" : "test" 

          } 

        }

    ]

}'


 2) Alias 확인

  - 호출

curl -XGET 'http://localhost:9200/test?pretty=true'


 - 결과 

{

  "test": {

    "aliases": {

      "test_v1": {}

    }

}


 3) Application

 - Application에서 바라보는 index를 alias로 만든 test로 변경한다.


3. 새롭게 작업할 index를 생성 작업 한다.


4. Alias를 변경한다.

curl -XPOST localhost:9200/_aliases -d '

{

    "actions": [

        { "remove": {

            "alias": "test",

            "index": "test_v1"

          }

        },

        { "add": {

            "alias": "test",

            "index": "test_v2"

            }

        }

    ]

}

'


5. Alias 확인

 - 호출

curl -XGET 'http://localhost:9200/test?pretty=true'


 - 결과

{

  "test": {

    "aliases": {

      "test_v2": {}

    }

}




1. Github 연결시 에러

 - Preferences -> General -> Security -> Secure Storage -> Contents Tab -> Secure관련 데이터 Clean하면 됨.


2. 참고 링크 

 - http://stackoverflow.com/questions/31263221/is-eclipse-bug-471813-related-to-aptana/31267252

1. 개요

 - 개인 라이브러리를 메이븐 중앙 저장소에 올려, 다른 사람들과 손쉽게 공유할 수 있도록 한다.

 - https://bintray.com 와 같은 대행 서비스가 있다.

 - 저장소 관리 솔루션인 sonatype nexus 사에서 제공하는 OSSRH(Open Source Project Repository Hosting)가 있다. 이걸로 업로드 진행 할 예정.


2. 사전 작업

 1) 계정 생성

  - https://issues.sonatype.org/secure/Signup!default.jspa 에 접속한다.

  - 계정을 생성하고, 이슈를 등록한다.

  - "CREATE"를 눌러 이슈를 생성한다.

  - https://issues.sonatype.org/browse/OSSRH-28348 와 같이 입력한다. (project 이름, group Id, url 등 입력)

  - 생성 후 몇시간 또는 며칠이 지나면 이슈 상태가 "Resolved"로 변경되면, 댓글을 달아준다. 그럼 배포 준비 끝


 2) pom.xml 작업하기.

  - 저장소(scm), 개발자정보(), 라이센스 등 필수



 3) $HOME/.m2/settings.xml 에 아래 텍스트 추가


 

 4) snapshot deploy

  - version 항목에 -SNAPSHOT 붙인다.

mvn clean deploy


  - https://oss.sonatype.org/content/repositories/snapshots 에 본인 groupId를 들어가보면 확인 할 수 있다.


3. PGP 등록 및 Signing 하기

 - Maven 프로젝트 각각의 보안을 위해 PGP라는 정보를 통해 확인


 1) PGP 생성

  - https://www.gnupg.org/download/index.html 에서 제공하는 툴로 생성


 2) PGP 등록하기

  - 생성한 키는 http://pgp.mit.edu/ 사이트에 등록해야한다. 일부 툴은 업로드도 제공해준다.


4. 배포하기

mvn clean deploy


5. 스테이징에서 릴리즈하기

 - https://oss.sonatype.org/#welcome 에 접속하여 로그인한다.

 - Staging Repositories 에서 본인 프로젝트 확인

 - 내용 확인 후 "Close" 문제가 없으면 "Release"버튼 활성화 됨.


 - "Release"를 누르면 끝!


6. 확인

 - 10분정도 후에 릴리즈 되고

 - 2시간 정도 후면 검색이 됨.

 - http://search.maven.org/ 


7. 참고자료

 - https://www.lesstif.com/pages/viewpage.action?pageId=30277671

 - http://zerobrain.tistory.com/53

 - http://central.sonatype.org/pages/ossrh-guide.html

 - http://stackoverflow.com/questions/23235892/how-long-does-sonatype-staging-take-to-sync-my-artifacts-with-maven-central

 - https://www.youtube.com/watch?v=dXR4pJ_zS-0&feature=youtu.be


'프로그래밍 > Maven' 카테고리의 다른 글

Maven Test Skip 하는 법  (0) 2018.04.17
[Maven] Plugin 개발하기.  (0) 2018.04.09
Maven Central에 Library Upload하기!!  (0) 2017.02.21
[MAVEN] Exec Maven Plugin 사용하기  (0) 2016.12.01

1. 증상

 - java에서 HTTPS로 Remote Site에 연결할 경우 아래와 같은 Exception이 발생한다.

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


2. 원인

 - $JAVA_HOME/jre/lib/security 폴더(인증기관 인증서 목록(keystore)) 내에 접속하고자 하는 IP or HOST의 SSL 서버에서 유효한 인증서가 존재하지 않을 경우 발생함.


3. 해결

 - 아래 소스를 복사해서 넣는다.



 - 또는 아래 링크를 통해 소스를 받는다.

git clone https://gist.github.com/64ca41fe18ae1ed85659c49adb866d3f.git

 

 - InstallCert.java를 컴파일 한다.

cd  ./InstallCert

javac InstallCert.java 

 

 - InstallCert.class를 실행한다.

java -cp ./ InstallCert  IP or HOST(ex. google.com)


 - 아래 메시지가 나오면 1을 눌러 저장한다.

Enter certificate to add to trusted keystore or 'q' to quit: [1]


 -아래 메시지와 같이 나오면 저장된거다.

Added certificate to keystore 'jssecacerts' using alias 'IP or HOST(ex. google.com)'


 - 해당 파일을 아래 경로로 복사해 넣는다.

$JAVA_HOME/jre/lib/security


4. TIP

 - $JAVA_HOME/jre/lib/security 하위로 복사하지 않고 소스에서 바로 임포트 시킬수도있다.

System.setProperty("javax.net.ssl.trustStore", "인증서 경로");


'프로그래밍 > JAVA' 카테고리의 다른 글

Java에서 Tuple 사용하기.  (0) 2018.04.11
try-catch-resources  (0) 2018.04.11
public static void main(String[] args){}  (0) 2018.04.03
javax.net.ssl.SSLHandshakeException에 대한 해결방법  (0) 2017.02.14
websocket 사용 간단 채팅  (0) 2016.08.23
URL Image DownLoad  (0) 2016.08.14

1. Github Page 란? 

 - HTML, Css, Javascript 등으로 이루어진 Static 호스팅 서비스

 - <username>.github.io로 URL 접속 가능

 - custom domain 사용 할 수 있음.

 - git만 사용할 줄 안다면, 편리하게 사용 가능.


2. Github Page 만들기

 - Github에 <username>.github.io Repository를 만들고 해당 Repository에 index.html을 만들면 끝!

 1) Github에 가입을 한다.

 2) <username>.github.io Repository를 만든다.

 


 3) <username>.github.io Repository에 index.html을 추가해 놓는다.

 4) http://<username>.github.io/ URL을 입력하여, 접속한다.


3. Domain 설정 하기

 - DNS에서 test.xxxx.xx를 CNAME 설정에 <username>.github.io 를 추가한다.

 - test.xxxx.xx을 호출한다. 잘된다. 끝!

'프로그래밍 > 개인프로젝트' 카테고리의 다른 글

[AppStore Viewer] 1. 세팅하기.  (0) 2018.04.17
[Github] Github 페이지 활용하기.  (0) 2017.02.06
텔레그램 봇 활용하기 -1  (0) 2016.08.23


* 시작전 필요사항

 - Elastic Stack에 대한 사전 지식

 - ElasticSearch가 설치되어 있어야함. ( https://www.google.co.kr/search?q=elasticsearch+install )

 - Logstash가 설치되어 있어야함. (https://www.google.co.kr/search?q=logstash+install)

 - Kibana가 설치되어 있어야함.(https://www.google.co.kr/search?q=kibana+install)


 - 해당 자료는 6.2.4 Set로 수정되었습니다.


1. 구성

  - ELB 로그를 S3에 저장한다.

  - Logstash로 간단하게 가지고와서, ElasticSearch에 넣는다.

  - Kibana로 간단하게 본다.


2. AWS Elb Log `ON`

 - AWS Console에서 쉽게 켤 수 있다.

 - https://docs.aws.amazon.com/ko_kr/elasticloadbalancing/latest/classic/access-log-collection.html

- 위에 S3 Location에 원하는 버킷 정보를 넣으면 된다.



3. Logstash Config 파일

 - config 파일



 - 실행 명령어

{LOGSTASH_PAHT}/logstash -f ''elb-access-logstash-conf.conf


4. ElasticSearch Index 확인하기

 - Rest API로 확인

curl -X GET 'http://localhost:9200/_cat/indices?v='


 - logstash-{날짜} 형태로 추가되어 있는지를 확인함.


5. Kibana 꾸미기

 1) Index Pattern 생성

  - Management에서 생성하면됨.

  - logstash-* 형태로 생성될 index들의 맵핑을 만들어 주면된다.


 2) Visualize 설정

  - 원하는 차트를 고르면된다.


  - Vertical Bar 로 표현할 예정



3) 차트 보기

 - 아래와 같이 설정하면 기본적인 차트를 볼 수 있음.

 - 필요한 형태로 변경하여 보면 됨.


6. 추가

 1) logstash로 생성한 모든 index 삭제

curl -X DELETE http://localhost:9200/logstash-%2A


 2) GeoIP

  - logstash Config 파일을 보면 Geoip 기능을 추가해놓음.

  - Map 으로 그려보면 재미남.


 3) 차트 꾸밀때 일정 설정...

  - 초기에 특정일자의 데이터만 수집해서 보는데, 데이터가 안나와서 삽질을 했다.

  - 시간을 최근 5분꺼만으로 세팅해놔서였다... 삽질하지말자!!



* 참고페이지

 - https://logz.io/blog/aws-elb-log-analysis/

 - https://medium.com/sharmin-anee/aws-elb-logs-from-s3-on-elk-stack-c463e2e2ec0

1. 기능

 - HTML에서 특정 시간 카운트 다운

 - HTML에 카운트 되는 시간 출력


2. Code

 1) HTML Source

 <div id="timerTxt"></div> <!-- 타이머를 노출할 Div -->


 2) Javascript Source

var timerId;

var timerSec = 3;


window.onload= function() {

timerId = setInterval('timer()', 1000);

}


function timer() {

var min = Math.floor(timerSec / 60)

var sec = timerSec % 60;

var msg = (min < 10 ? "0"+ min : min) + ":" + (sec < 10 ? "0"+ sec : sec);

timerSec--;

if (timerSec < 0) { /* time End*/

msg += "<br>Timer End!"

clearInterval(timerId);

}

document.getElementById("timerTxt").innerHTML = msg;

}


 3) Full Source

<!DOCTYPE html>

<html lang="ko">

<head>

<meta charset="UTF-8">

<title>타이머 샘플 소스</title>

</head>

<body>

<div id="timerTxt"></div>


<script type="text/javascript">

var timerId;

var timerSec = 3;

window.onload= function() {

timerId = setInterval('timer()', 1000);

}

function timer() {

var min = Math.floor(timerSec / 60)

var sec = timerSec % 60;

var msg = (min < 10 ? "0"+ min : min) + ":" + (sec < 10 ? "0"+ sec : sec);

timerSec--;

if (timerSec < 0) { /* time End*/

msg += "<br>Timer End!"

clearInterval(timerId);

}

document.getElementById("timerTxt").innerHTML = msg;

}

</script>

</body>

</html>


0:0:0:0:0:0:0:1은 IPv6로 IPv4의 경우 127.0.0.1(localhost)


윈도우 7 이상에서는 IPv6가 디폴트(was 세팅변경 필요)


RUN -> RUN Configurations -> VM Arguments -> -Djava.net.preferIPv4Stack=true 



Exec Maven Plugin을 사용하여 java project 실행하기.


1. pom.xml 


<build>

<plugins>

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>exec-maven-plugin</artifactId>

<version>1.5.0</version>

<executions>

<execution>

<goals>

<goal>java</goal>

</goals>

</execution>

</executions>

<configuration>

<mainClass>kr.geun.runTest.App</mainClass>

<arguments>

<argument>arg1</argument>

<argument>arg2</argument>

</arguments>

</configuration>

</plugin>

</plugins>

</build>



2. Main Class

package kr.geun.runTest;


/**

 * Maven Exec Project Main Class

 * 

 * @author geunspage

 *

 */

public class App {

public static void main(String[] args) {

for (String arg : args) {

System.out.println(arg + "\\n");

}


System.out.println("Maven Exec Project Run!!!!");

}

}



3. RUN


 1) Argument 없이 실행


 - 명령어

mvn exec:java


 - pom.xml 내 arguments 가 출력된다.


 - 결과


2) arguments 옵션 주기


 - 명령어

mvn exec:java  -Dexec.args="zzzz tawetawetawet"


 - 결과



참고페이지

http://www.mojohaus.org/exec-maven-plugin/usage.html

'프로그래밍 > Maven' 카테고리의 다른 글

Maven Test Skip 하는 법  (0) 2018.04.17
[Maven] Plugin 개발하기.  (0) 2018.04.09
Maven Central에 Library Upload하기!!  (0) 2017.02.21
[MAVEN] Exec Maven Plugin 사용하기  (0) 2016.12.01

 프로젝트 클릭 후 Ctrl + H 를 누릅니다. File Search탭을 클릭한 다음 아래 내용을 Containing Text 에 입력합니다.


\"[^"\u0080-\uffff;\\n]*[\u0080-\uffff][^";\\n]*\"


그리고 우측 Regular expression을 클릭한 뒤 검색합니다.



+ Recent posts