elk + filebeat 具體配置內容

環境說明:

OS: centos 7

內存:12G (三個節點,每個節點配置相同)

追加: 軟件版本: 5.4.1

節點名稱(代替):elk-log-s1 elk-log-s2 elk-log-s3

kibana安裝在 elk-log-s1節點

logstash安裝在 elk-log-s2節點

elasticsearch三個節點都安裝!!

filebeat在客戶端安裝,也就是你要收集日志文件的服務器上。

所有的服務啟停都是systemd腳本,因為是直接用rpm包安裝。


kibana部分: /etc/kibana/kibana.yml

elasticsearch.username: "elastic"

elasticsearch.password: "elkpasswd"

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.url: "http://elk-log-s1:9200"

logging.dest: /data/kibana/log/kibana.log

PS: kibana的systemd腳本沒有改動用的默認配置。其他配置默認。


logstash部分: /etc/logstash/conf.d/f2l.yml 自定義配置文件,/etc/logstash/logstash.yml 默認配置文件,定義一些log、端口、ip之類的信息。

/etc/logstash/logstash.yml 除了定義這些,其他的也沒有修改。

path.data: /data/logstash

path.config: /etc/logstash/conf.d

path.logs: /data/logstash/log

/etc/logstash/conf.d/f2l.yml 這是自定義的收集日志相關的配置,截取一部分作為說明。

input {

? ? beats {

? ? codec => multiline {

? ? ? ? pattern => "^%{TIMESTAMP_ISO8601}"

? ? ? ? negate => true

? ? ? ? what => "previous"

? ? }

? ? port => 5044

? ? }

}

filter {

? if [type] == "elkelk" {

? ? grok {

? ? ? ? match => { "message" => "(?m)%{TIMESTAMP_ISO8601:timestamp}\s+\[%{DATA:thread}\]\s+%{LOGLEVEL:loglevel}\s+\[%{DATA:TraceId},%{DATA:SpanId},%{DATA:ParentSpanId},%{DATA:Export}\]\s+%{DATA:class}:\s+%{GREEDYDATA:message}" }

? ? ? ? overwrite => ["message"]

? ? ? ? remove_field => [ "YEAR" ,"MONTHNUM","MONTHDAY","HOUR","MINUTE","SECOND","ISO8601_TIMEZONE"]

? ? ? }

? ? date {

? ? ? ?match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss.SSS" ]

? ? ? ?target => "@timestamp"

? ? ? ?remove_field => ["timestamp"]

? ? }

? }

}

output {

?if [type] == "elkelk" {

? ?elasticsearch {

? ?hosts => ["http://elk-log-s2:9200"]

? ?index => "elkelk"

? ?document_type => "elkelk"

? ?user => "elk"

? ?password => "elk"

? ?}

? }

}

上面的格式復制過來后完成變了,不知道怎么弄。。。如果你懂得yaml的話,應該是要注意格式問題的,行縮進之類的。

elasticsearch部分:

我是直接將內存參數值調整到一個固定值,沒有使用中文指導里面說的那個變量,因為按照說的export并沒有啟動,其實它是要寫到一個配置文件里面去的,這是后來才發現的。那個配置文件就是 /etc/sysconfig/elasticsearch。我是直接改了jvm.options 配置文件,將默認值就行修改,從2g改到6g,因為內存總共就12g,這個文件也就改了這個其他沒有修改。

/etc/elasticsearch/elasticsearch.yml

cluster.name: elk-elk-log

path.data: /data/elasticsearch

path.logs: /data/elasticsearch/log

network.host: elk-log-s2

node.name: "node-2"

http.port: 9200

node.master: true

node.data: true

discovery.zen.ping.unicast.hosts: [elk-log-s2,elk-log-s3,elk-log-s1]

discovery.zen.minimum_master_nodes: 2

gateway.recover_after_nodes: 2

gateway.expected_nodes: 2


filebeat部分:

因為所有的hostname部分都是主機名來代替ip設置,所以先要將logstash的ip和hostname寫到 /etc/hosts 里面去。再進行下面的配置。

/etc/filebeat/filebeat.yml

filebeat.prospectors:

- input_type: log

? ?document_type: elkelk

? ?paths:

#log文件絕對路徑

? ? ? - /data/logs/elkelk.log

output.logstash:

# The Logstash hosts

? ? hosts: ["elk-log-s2:5044"]

PSPS:如果你是用腳本去安裝配置,其實 network.host 和 node.name 可以直接寫成 “ $HOSTNAME ” ,會自動填寫主機名省得每臺去上修改。


差不多就這么多內容。。。以后有想起來的,再進行補充。

再貼一張圖,這是我們小集群目前運行14天的狀態,內存雖然已經到了10g,但是會降的。。。哈哈


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容