(원)logstash-forwarder+logstash+elasticsearch+kibana

11899 단어 elasticsearch
[logstash-forwarder+logstash+elasticsearch+kibana]----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------그리고 kibana가 웹 인터페이스를 보여줍니다.설치 1.logstash-forwardersee and install:https://github.com/elasticsearch/logstash-forwarder(logstash-forwarder에 구덩이가 있습니다. 엄밀히 말하면logstash-forwarder의 구덩이는 아니지만 인증서와 관련된:https://github.com/elasticsearch/logstash-forwarder/issues/221<- 안 봐도 돼요.아래의 해결 방안은 이 구덩이를 회피했다.다음에 언급할 것이다.)2.logstashsee and install: http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash3.elasticsearch3.1.다운로드https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.tar.gz 3.2.디렉터리elasticsearch-1.3.23.3로 압축을 풀다.설치 성공 여부 테스트 $cd elasticsearch-1.3.2/$bin/elasticsearch$curl -X GEThttp://localhost:9200/(elasticsearch를 계속 실행합니다. 테스트를 계속합니다.) 4.kibana:4.1.다운로드https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz4.2.디렉터리 키바나 - 3.1.04.3으로 압축 풀기.설치 성공 여부 테스트 $cd kibana-3.1.0$vi config.js 32 행 수정: elasticsearch: "http://localhost:9200"또는 로컬 액세스가 아닌 경우 다음과 같이 해야 합니다.:elasticsearch:"http://"+window.location.hostname+": 9200"뒤에 쉼표가 있습니다. 브라우저에서 이 디렉터리의 index.html을 엽니다. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------log-server[logstash]--->[elasticsearch]client[logstash-forwarder]---|2.1 먼저 elasticsearch를 시작하기 전에 이미 시작했습니다.2.2 logstash 열기 logstash 프로필 먼저 쓰기: $cd logstash-1.4.2$vi test_logstash.confinput {  lumberjack {    # The port to listen on    port => 5000    # The paths to your ssl cert and key    ssl_certificate => "/home/xiaou/logstash-forwarder.crt"    ssl_key => "/home/xiaou/logstash-forwarder.key"    # Set this to whatever you want.    type => "somelogsXXX"  }}output {  elasticsearch { host => localhost }#logstash와elasticsearch는 같은 기계에 있기 때문에localhostststdout {codec=>rubydebug}}에서 자필 인증서를 만들 수 있습니다: $openssl req-subj'/CN=localhost/'-x509-batch-nodes-newkeyrsa:2048-keyout/home/xiaou/logstash-forwarder.key -out/home/xiaou/logstash-forwarder.crt-days 1095 (여기서'-subj'/CN=localhost/'로 위에서 언급한logstash-forwarder의 구덩이를 피함) 그리고logstash: $bin/logstash-f test_logstash.conf2.3 logstash-forwarder 시작 logstash-forwarder 프로필 작성: $cd logstash-forwarder$vitest_forwarder.conf{  "network": {    "servers": [ "localhost:5000"], "ssl ca": "/home/xiaou/logstash-forwarder.crt",    "timeout": 5  },"files": [{"paths": ["/var/log/linshi.txt", "/var/log/*.log"], "fields": {"type": "linshiXX"}}} (여기 프로필 작성법도 앞에서 언급한logstash-forwarder의 구덩이: 서버는 IP를 사용하지 않음) logstash-forwarder: $./logstash-forwarder -config test_forwarder.conflogstash-forwarder가 시작되면logstash와 tcp 연결이 됩니다.테스트, 로그 쓰기, logstash를 실행하는 단말기의 출력 관찰: $echo 1234 >>/var/log/linshi.txt2.4에서 키바나를 열고elasticsearch에 최종적으로 통합된 로그를 보여 줍니다.(유 키바나는 서비스라고 할 수 없다. 그것은 단지'리더'일 뿐이다.)브라우저로kibana-3.1.0 디렉터리의 index를 엽니다.html, 오른쪽 꼴찌 다섯 번째 줄에 링크가 있습니다.열다셋.깊이: 1.typelogstash.conf의 input {lumberjack {...type => "this forwarder's file have no type!"이 type, forwarder입니다.conf의 보충: 만약forwarder.conf에 type이 없으면 로그 이벤트의 type 필드를 채웁니다.ps: 하나의 로그 이벤트는 다음과 같습니다. {'메시지'=>'xx','@version'=>'1','@timestamp'=>'2014-09-18T03:31:12.744Z','type'=>'linshi1','file'=>'/var/log/epoch/linshi.txt','host'=>'xiaou-mint','offset'=>'568'} 각 로그를 type으로 구분하면 좋을 것 같습니다."files": [    {      "paths": [         "/var/log/epoch/linshi1.txt"      ],      "fields": {         "type": "linshi1"      }    },    {      "paths": [         "/var/log/epoch/linshi2.txt"      ],      "fields": {         "type": "linshi2"      }    }  ]2.add_필드 추가 필드 add_field => {"test_field"=> "asdasd""test_filed2"=> "112233"} 로그 이벤트에 있는 필드와 충돌하지 마십시오. 이렇게 하려면 이벤트 로그의 필드를 덮어쓰는지 스스로 테스트해야 합니다.type,message,file 등 몇 개의 필드를 테스트했는데 각각의 필드를 보여 통일적으로 결론을 내릴 수 없습니다.3. if 표현식은 언제든지 문서를 찾아야 합니다.http://logstash.net/docs/1.4.2/...안 쓸게요.End./*http://logstash.net/docs/1.4.2/inputs/lumberjackhttp://logstash.net/docs/1.4.2/configuration#conditionalshttp://logstash.net/docs/1.4.2/filters/mutatehttp://logstash.net/docs/1.4.2/filters/drop*/4. 마지막으로 두 개의 conf 테스트 내용을 제시합니다:logstash.conf :
input {
  lumberjack {
    # The port to listen on
    port => 5000

    # The paths to your ssl cert and key
    ssl_certificate => "/home/xiaou/logstash-forwarder.crt"
    ssl_key => "/home/xiaou/logstash-forwarder.key"

    type => "this forwarder's file have no type!"

  }
}

filter{
  if [type] == "linshi2"{
    mutate{
      replace => ["message","%{message}:it's linshi2"]    
      update => ["file", "FILE_LINSHI2"] #  .
    }
  }else{ # linshi1
    if "error" in [message]{ #  “error” 
      mutate{
        add_field => {"NOTE" => "ERROR!"} #  
        add_tag => "tag_error!" #  .  
        add_tag => "tag_error2!"
      }
    }else{ #  linshi1.txt “error” ,  .
      drop{}
    }
  }
}

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}

forwarder.conf :
{
  "network": {
    "servers": [ "localhost:5000" ],
 "ssl ca": "/home/xiaou/logstash-forwarder.crt",
    "timeout": 5
  },

  "files": [
    {
      "paths": [ 
        "/var/log/epoch/linshi1.txt"
      ],
      "fields": { 
        "type": "linshi1" 
      }
    },
    {
      "paths": [ 
        "/var/log/epoch/linshi2.txt"
      ],
      "fields": { 
        "type": "linshi2" 
      }
    }
  ]
}

------------------------------------------------------------------------------------------------------------------------------------------------End.

좋은 웹페이지 즐겨찾기