'Elastic/Logstash'에 해당되는 글 26건

  1. 2016.02.12 [Logstash] Dynamic Config Reloading
  2. 2015.11.27 [Logstash] grok pattern test site.
  3. 2015.08.26 [Logstash] 플러그인 작성 시 register method.
  4. 2015.08.25 [Logstash] logstash input telnet plugin.
  5. 2015.07.29 [Logstash] logstash 개발 및 디버그 시 유용한 설정
  6. 2015.03.11 로그생성 프로그램 - makelogs

[Logstash] Dynamic Config Reloading

Elastic/Logstash 2016. 2. 12. 10:57

예전에도 있던 기능 이였는지는 잘 모르겠습니다.

그래서 기록해 봅니다.


원문링크)


한 줄 요약)

--auto-reload --reload-interval 옵션을 통해 logstash 재시작 없이 설정 적용이 가능 합니다.


명령어 예시)

bin/logstash -f config_file --auto-reload --reload-interval 2

※ 원문에 나와 있는 예시 입니다.

※ 기본 reload interval 은 3초로 정의 되어 있습니다.


이 기능을 제공하는 Version은 logstash 2.2 이상 입니다.

:

[Logstash] grok pattern test site.

Elastic/Logstash 2015. 11. 27. 11:38

logstash grok 디버그용 웹사이트 입니다.

누군가 알려주셔서 일단 기록해 봅니다.


[Grok Debugger]


[Test grok pattern]


:

[Logstash] 플러그인 작성 시 register method.

Elastic/Logstash 2015. 8. 26. 11:53

플러그인을 처음 만들다 보면 필요 없겠다 싶은 코드를 별 생각 없이 지우게 되는 경우가 있습니다.

일단 먼저 실행에 옮기는 잘못으로 인해서 오류를 경험 하게 되는데요.

저 역시 비슷한 실수를 해서 또 하지 말자는 의미로 공유해 봅니다.


기본적으로 생성된 플러그인을 등록하는 과정이 코드 상에 포함이 되어 있어야 합니다.

이런 등록 관련 코드가 없다면 아래의 에러 메시지를 경험 하게 됩니다.


[logstash 실행 시 에러 메시지]

The error reported is:

  LogStash::Inputs::Telnet#register must be overidden


해당 문구는 base.rb 에 들어 있습니다.

  def register
    raise "#{self.class}#register must be overidden"
  end # def register


이 에러 메시지는 구현한 플러스인에 register 함수가 없기 때문에 발생 하는 것입니다.

아래는 logstash-input-example 플러그인에 포함된 코드입니다.

  def register

      @host = Socket.gethostname

  end # def register


제가 한 실 수는 @host 정보가 필요 없어서 저 register method 부분을 몽땅 삭제 한 것입니다.

다른 분들은 이 같은 초딩같은 실수는 하지 마시길 바랍니다. ^^;

:

[Logstash] logstash input telnet plugin.

Elastic/Logstash 2015. 8. 25. 17:18

logstash 에 telnet input 플러그인이 없어서 그냥 간단하게 만들었습니다.

용도는 특정 ip(hostname), port 들을 대상으로 잘 떠 있는지 점검하기 위함 입니다. :)


필요 하신 분들은 참고 하세요.

(빌드 된거 받아서 설치 하셔도 되고, 소스코드 받아서 빌드 한 신 후 사용하셔도 되고 그렇습니다.)


[파일 다운로드]


[git repository]

https://github.com/howookjeong/logstash-input-telnet


[run config]

bin/logstash -e '

  input {

    telnet{

      daemons => "localhost:9200|localhost:9301"

      interval => "60"

    }

  }


  output {stdout { codec => rubydebug }}

'


[rubydebug]

{

          "host" => "localhost",

          "port" => "9200",

       "message" => "success",

      "@version" => "1",

    "@timestamp" => "2015-08-25T07:06:30.128Z"

}

{

          "host" => "localhost",

          "port" => "9301",

       "message" => "failure",

      "@version" => "1",

    "@timestamp" => "2015-08-25T07:06:30.132Z"

}

※ 메시지 보시면 아시겠지만 정상인건 "success" 로 비정상인건 "failure" 로 나옵니다.

:

[Logstash] logstash 개발 및 디버그 시 유용한 설정

Elastic/Logstash 2015. 7. 29. 17:32

제목 쓰기가 참 어렵내요.

logstash를 많이 사용해 보신 분들은 다들 잘 아실 것 같습니다.


저 같은 경우 output 은 거의 elasticsearch를 사용하고 있기 때문에 개발 시 디버깅을 위해서 아래 설정을 많이 이용합니다.


[디버그용 설정]

input {

  http {

    port => 8080

    codec => json_lines {}

  }

}


output {

  stdout {

    codec => rubydebug

  }

}


[디버그용 로그 스태쉬 실행]

$ bin/logstash -e "input { http { port => 8080 codec => json_lines {} } } output { stdout { codec => rubydebug } }"


잘 아시겠지만 output 은 여러개를 지정해 줄 수 있습니다.

실제 elasticsearch로도 색인을 하고 싶으시다면 아래와 같이 하시면 되겠죠.


[ouput - elasticsearch + stdout]

output {

  elasticsearch {

    cluster => "xxxxxx"

    bind_host => "localhost"

    bind_port => "9300"

    protocol => "transport"

    index => "logstash-%{+YYYY.MM.dd}"

  }

  stdout {

    codec => rubydebug

  }

}


:

로그생성 프로그램 - makelogs

Elastic/Logstash 2015. 3. 11. 16:35

logstash에서 제공하는 generator가 쓸만하지 않아서 아래 도구 사용합니다.


[링크]

https://www.npmjs.com/package/makelogs


to install

npm install -g makelogs
makelogs --count=10m --days=-2,+10


[Command Help]

jeong-ui-MBP:makelogs hwjeong$ makelogs --help

A utility to generate sample log data.


Usage: makelogs [options]


Options:

  --count, -c     Total event that will be created, accepts expressions like "1m" for 1 million (b,m,t,h)       [default: 14000]

  --days, -d      The number of days ± today or two numbers, seperated by a comma, like "-1,+10" or "-10,+100"  [default: 1]

  --host, -h      The host name and port                                                                        [default: "localhost:9200"]

  --auth          user:password when you want to connect to a secured elasticsearch cluster over basic auth     [default: null]

  --shards, -s    The number of primary shards                                                                  [default: 1]

  --replicas, -r  The number of replica shards                                                                  [default: 0]

  --dry           Test/Parse your arguments, but don't actually do anything                                     [default: false]

  --help          This help message

  --reset         Clear all logstash-* indices before genrating logs

  --verbose       Log more info to the console

  --trace         Log every request to elastisearch, including request bodies. BE CAREFULL


[예제]

makelogs -c 100 -d 0 -h localhost:9200 -s 1 -r 0 --reset

makelogs -c 100 --days=-1,+1 -h localhost:9200 -s 1 -r 0 --reset


설명) -d 0 는 오늘 날짜 기준으로 데이터 생성

logstash-20150311


설명) --days=-1,+1 은 오늘 날짜 기준으로 앞뒤로 하나씩 인덱스를 더 생성

logstash-20150310

logstash-20150311

logstash-20150312

: