filebeat+kafka+ELK5.4安裝與部署
阿新 • • 發佈:2019-01-07
用ELK打造強大的日誌分析平臺,具體拓撲結構如下:
在這裡我們將進行kafka+filebeat+ELK5.4的部署
各軟體版本
jdk-8u131-linux-i586.tar.gz filebeat-5.4.0-linux-x86_64.tar.gz elasticsearch-5.4.0.tar.gz kibana-5.4.0-linux-x86_64.tar.gz logstash-5.4.0.tar.gz kafka_2.11-0.10.0.0.tgz
1、JDK安裝配置(略過)
2、ELK安裝與配置
建立ELK使用者,並進行檔案解壓 1.elasticsearch配置 [[email protected]elasticsearch-5.4.0]$ vi config/elasticsearch.yml ..... network.host: 192.168.12.109 # # Set a custom port for HTTP: # http.port: 9200 .......... 儲存,啟動 [[email protected] elasticsearch-5.4.0]$ nohup bin/elasticsearch & 驗證 # [[email protected] elasticsearch-5.4.0]$ curl http://192.168.12.109:9200 { "name" : "aCA2ApK", "cluster_name" : "elasticsearch", "cluster_uuid" : "Ea4_9kXZSaeDL1fYt4lUUQ", "version" : { "number" : "5.4.0", "build_hash" : "780f8c4", "build_date" : "2017-04-28T17:43:27.229Z", "build_snapshot" : false, "lucene_version" : "6.5.0" }, "tagline" : "You Know, for Search" } 2、kibana安裝與配置 [[email protected] kibana-5.4.0-linux-x86_64]$ vi config/kibana.yml ## Kibana is served by a back end server. This setting specifies the port to use. server.port: 5601 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. # The default is ‘localhost‘, which usually means remote machines will not be able to connect. # To allow connections from remote users, set this parameter to a non-loopback address. server.host: "192.168.12.109" .......... # The URL of the Elasticsearch instance to use for all your queries. elasticsearch.url: "http://192.168.12.109:9200" .......... [[email protected] kibana-5.4.0-linux-x86_64]$ nohup bin/kibana & 在瀏覽器訪問 能訪問即可
3、kafka安裝與配置
4、logstah安裝與配置
[[email protected] logstash-5.4.0]$ vi nginx.conf 這裡新生成一個配置檔案 input { kafka { codec => "json" topics_pattern => "logstash-.*" bootstrap_servers => "192.168.12.105:9092" auto_offset_reset => "latest" group_id => "logstash-g1" } } filter { if "nginx-accesslog" in [tags] { grok { match => { "message" => "%{IPORHOST:http_host} %{IPORHOST:clientip} - %{USERNAME:remote_user} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{QS:xforwardedfor} %{NUMBER:request_time:float} %{GREEDYDATA:traceID}"} } mutate { convert => ["status","integer"] convert => ["body_bytes_sent","integer"] convert => ["request_time","float"] } geoip { source=>"remote_addr" } date { match => [ "timestamp","dd/MMM/YYYY:HH:mm:ss Z"] } useragent { source=>"http_user_agent" } } if "tomcat-accesslog" in [tags] { grok { match => { "message" => "%{IPORHOST:clientip} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:http_verb} %{NOTSPACE:http_request}(?: HTTP/%{NUMBER:http_version})?|%{DATA:raw_http_request})\" %{NUMBER:response} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{NUMBER:request_time:float} %{GREEDYDATA:traceID}"} } date { match => [ "timestamp","dd/MMM/YYYY:HH:mm:ss Z"] } } } output { elasticsearch { hosts => ["192.168.12.109:9200"] index => "logstash-%{type}-%{+YYYY.MM.dd}" document_type => "%{type}" } #stdout { codec => rubydebug } } 儲存,並啟動 [[email protected] logstash-5.4.0]$ nohup bin/logstash -f nginx.conf &
5、filebeat安裝與配置
將filebeat分別拷貝到需要採集的伺服器,進行解壓,在這裡我們分別採集Nginx,tomcat日誌
Nginx伺服器
[[email protected] filebeat-5.4.0-linux-x86_64]$ vi filebeat.yml filebeat.prospectors: - input_type: log paths: - /data/programs/nginx/logs/access.log tags: ["nginx-accesslog"] document_type: nginxaccess tags: ["nginx-test-194"] output.kafka: enabled: true hosts: ["192.168.12.105:9092"] topic: logstash-%{[type]} [[email protected] filebeat-5.4.0-linux-x86_64]$nohup filebeat -c filebeat.yml &
tomcat伺服器
[[email protected] filebeat-5.4.0-linux-x86_64]$ vi filebeat.yml filebeat.yml filebeat.prospectors: - input_type: log paths: - /data/tomcat/logs/localhost_access_log* tags: ["tomcat-accesslog"] document_type: tomcataccess tags: ["tomcat103"] output.kafka: enabled: true hosts: ["192.168.12.105:9092"] topic: logstash-%{[type]} [[email protected] filebeat-5.4.0-linux-x86_64]$nohup filebeat -c filebeat.yml &
完成以上,我們的平臺就搭建好了,接下來我們建立索引
輸入:logstash-nginxaccess*
輸入logstash-tomcataccess*
資料通過filebeat到kafka、ELK成功展示出來
來張炫圖