ELK+filebeat日誌分析系統部署文檔

環境說明

架構說明及架構圖

architecture

filebeat部署在客戶端用於收集日誌並把收集到的日誌發送到logstash.
logstash把收集到的日誌處理之後交給elasticsearch.
kibana從elasticsearch中提取數據並進行展示.
之所以使用filebeat進行日誌收集是因爲filebeat不會像logstash使用大量的資源,影響業務服務器.

環境需求

需要java環境和redis

yum install java
yum install redis

使用版本

  • java  1.8.0_111

  • redis 2.8.16

  • filebeat  5.1.2

  • logstash  5.1.2

  • elasticsearch 5.1.1

  • kibana    5.1.1

安裝配置

filebeat安裝及配置

安裝filebeat

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/elk.repo <<EOF
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
yum clean all
yum install filebeat -y

配置filebeat

vim /etc/filebeat/filebeat.yml
paths:
    - /var/log/nginx/access.log
tags: ["nginx"]
output.logstash:
    hosts: ["1.8.101.53:5044"]

其中path選項爲filebeat發送給logstash的路徑, 多個日誌可以使用*.log通配. file不會自動遞歸日誌目錄下的子目錄, 如果需要遞歸子目錄可以使用類似 /var/log/*/*.log 的結構. tags選項會向log中添加一個標籤, 此標籤可以提供給logstash用於區分不同客戶端不同業務的log. output指定發送log到哪臺服務器的哪個服務, 默認輸出到elasticsearch. 本例使用logstash, 所以需要註釋掉髮送到elasticsearch的配置, 並啓用發送到logstash的配置.

啓動filebeat

/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -e &

logstash安裝及配置

安裝logstash

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/elk.repo <<EOF
[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
yum clean all
yum install logstash
ln -s /usr/share/logstash/bin/logstash /usr/bin/logstash

配置logstash

vim /etc/logstash/conf.d/nginx.conf
input {
    beats {
            port => 5044
    }
}
filter {
if "nginx" in [tags] {
        grok {
                match => [ "message","%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
                overwrite => [ "message"]
        }
        mutate {
                convert => ["response","integer"]
                convert => ["bytes","integer"]
                convert => ["responsetime","float"]
        }
        geoip {
                source=>"clientip"
                target => "geoip"
        }
        date {
                match => [ "timestamp","dd/MMM/YYYY:HH:mm:ss Z"]
                remove_field => [ "timestamp"]
        }
        useragent {
                source=>"agent"
        }
}
}
output {
if "nginx" == [tags][0] {
        elasticsearch {
                hosts => ["1.8.101.53:9200"]
                index => "access-%{+YYYY.MM.dd}"
        }
}
}

啓動logstash

logstash --path.settings /etc/logstash

elasticsearch安裝及配置

安裝elasticsearch

yum install elasticsearch

啓動elasticsearch

service elasticsearch start

elasticsearch本身不需要過多配置, 用包管理工具啓動即可

kibana安裝及配置

安裝kibana

yum intall kibana

啓動kibana

/usr/share/kibana/bin/kibana &


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章