[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{ # linshi1if"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 }
}