2016년 11월 30일 수요일

[javascript] get parameter from url

function getURLParameters(paramName)
{
    var sURL = window.document.URL.toString();
    if (sURL.indexOf("?") > 0)
    {
        var arrParams = sURL.split("?");
        var arrURLParams = arrParams[1].split("&");
        var arrParamNames = new Array(arrURLParams.length);
        var arrParamValues = new Array(arrURLParams.length);

        var i = 0;
        for (i = 0; i<arrURLParams.length; i++)
        {
            var sParam =  arrURLParams[i].split("=");
            arrParamNames[i] = sParam[0];
            if (sParam[1] != "")
                arrParamValues[i] = unescape(sParam[1]);
            else
                arrParamValues[i] = null;
        }

        for (i=0; i<arrURLParams.length; i++)
        {
            if (arrParamNames[i] == paramName)
            {
                return arrParamValues[i];
            }
        }
        return null;
    } else {
     return null;
    }
}

2016년 11월 16일 수요일

라즈베리파이3 (raspberry pi 3) 및 적외선 카메라 개봉기

개인적으로 집에서 컨텐츠를 만들기 위해서

그동안 눈 여겨보던 라즈베리파이를 구입하게 되었습니다.

어떤 키트를 살까? 어떤 모듈을 살까? 하고

몇일 고민한 끝에 라즈베리파이 키트를 구입하였습니다.

모델은 라즈베리파이3 이며

랜선, Micro SD카드, SD카드 리더기, HDMI 케이블, 어댑터, 

투명 케이스, 키트보관함 구성으로 구입하였습니다.





택배를 받았을 때 구성품 모습입니다.

1차적으로는 테스트 및 주요 기능 여부 확인을 위해

적외선 카메라 모듈 및 적외선 LED를

같이 구매하였습니다.

적외선 카메라 모듈의 경우 적외선 LED를 켜지 않을 경우

주간 카메라로 사용이 가능합니다.

일반 카메라, 적외선 카메라를 따로 구입하지 않으셔도 됩니다.


적외선 카메라 모듈 및 적외선 LED 모습입니다.

다음 포스팅은 라즈베리파이 구동 및 

카메라 테스트를 진행하겠습니다.




2016년 7월 12일 화요일

VisualVM jstatd

./rmiregistry 1099

./jstatd -p 1099  -J-Djava.security.policy=tools.policy -J-Djava.rmi.server.hostname=10.10.0.0

2016년 7월 11일 월요일

elasticsearch search query


GET _search
{
  
  "query": {
    "bool": {
      "must" : [
        { 
          "exists": { 
            "field": "exception.exception_class" 
          }
        },
        
        {
          "match": {
            "level": {
              "query" : "INFO"
            }
          }
        },
               
        {
          "range": {
            "@timestamp" : {
              "gte" : "now-1h",
              "lte" : "now",
              "time_zone": "+09:00"
            }
          }
        }
        
        
      ]
    }
  }
}

2016년 7월 6일 수요일

logstash output index naming daily

기존의 log4j 로그를 logstash를 이용하여 elasticsearch에 Indexing 하는 작업을 진행 하던 중 Index를 일별로 나누어서 관리를 하기 위해서 log-YYYY-MM-dd 형식으로 쌓기로 결정을 하게 되었음.

우선 아래의 depandency를 추가하여 기존 log4j 로그를 json형식으로 쌓이도록 하였음.

 net.logstash.log4j
 jsonevent-layout
 1.7

json형식으로 쌓인 로그를 아래와 같이 설정을 하였음

input {
  file {
    path => "/*"
    start_position => "beginning"
    type => "log4j-json"
    codec => json
  }
}

output {
  elasticsearch {
    index => "log-%{+YYYY-MM-dd}"
  }
}

위와 같이 설정을 하게 될 경우 logstash에서 output되는 current_time이 인덱스 명으로 사용이 되어 일 별 인덱스 생성이 가능하였다.

만약 실시간으로 로그를 전송하는 경우가 아니라 주기적으로 로그를 전송하게 된다면 index명에 들어가는 일자가 맞는 것일까?
로그가 실제로 쌓인 시간을 인덱스 날짜로 사용을 할 필요가 생겨 구글링을 통하여 아래와 같이 설정을 하였음

input {
  file {
    path => "/*"
    start_position => "beginning"
    type => "log4j-json"
    codec => json
  }
}

filter {
  ruby {
    code => "event['index_day'] = Time.at(event['@timestamp'].to_i).strftime('%Y-%m-%d')"
  }
}

output {
  elasticsearch {
    index => "log-%{index_day}"
  }
}

필터를 통하여 index_day라는 키에 @timestamp 값을 원하는 포맷으로 변경 한 값을 주어 index명에서 사용을 함으로서

로그에 있는 시간을 기준으로 index 설정이 가능해졌다.


====== 추가 ======

@timestame의 경우 한국 시간으로 표시 되지 않고 09:00 시간을 뺀 시간을 알려주고 있어 index명에서 한국 기준이 아닌 경우가 있어 아래와 같이 수정하여 해결함

code => "event['index_day'] = Time.at(event['@timestamp'].to_i).localtime.strftime('%Y-%m-%d')"


2016년 6월 27일 월요일

spring 4.x + jackson json response

Spring버전을 3.x 에서 4.x로 버전을 올리면서 발생 한 이슈 가운데 한가지로
@ResponseBody를 이용하여 rest api 결과를 돌려주고 있었는데
JSON으로 잘 뽑히던 부분이 XML로  뽑히는 현상이 발생하여
구글링하여 아래와 같이 수정하였음



  com.fasterxml.jackson.core
  jackson-core
  2.7.3



  com.fasterxml.jackson.core
  jackson-databind
  2.7.3


pom.xml에 위의 라이브러리를 추가하고 기존의 jackson 라이브러리를 제거하였음

  
    
      
        
          text/html;charset=UTF-8
          application/json;charset=UTF-8
        
      
      
    
  


spring-mvc에 위의 annotation-driven을 추가하여 해결하였음

언제까지의 개인정보처리방침

1. 개인정보의 처리 목적 언제까지 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는...