elk elasticsearch kibana logstash metricbeat filebeat apm heartbeat elastalert 監控 alerting index elastic stack open distro for elasticsearch elastalert

ELK Lesson 31:使用Kafka作為Logstash的緩衝

Kafka的角色與目的

在大型架構下,同時有上千、上萬台主機或服務對Logstash傳送資料是很常見的情境,若用來收集網路設備的Trafic Log,那資料量更是可怕,但Logstash本身資料處理的效能是有限制的,若超過其能承受的範圍,Logstash就會開始出現資料遺失、連線失敗等狀況。

Apache Kafka作為一個高效能的Queue Service,只要這些資料沒有即時的需求,可以先放在Kafka裡,再由Logstash慢慢消化,保證資料不會遺失。

安裝Kafka

在CentOS 7安裝Kafka單機版

設定Filebeat轉送至Kafka

在Metricbeat的設定檔metricbeat.yml中新增output.kafka段落,內容如下:

output.kafka:
  hosts: ["kafka.example.com:9092"]

  topic: "metricbeat_data"
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

注意:建議不要有一個以上的Output,避免資料重複!

設定Logstash讀取Kafka

在Logstash的設定檔中,修改Input的來源,如下:

input {
  kafka {
    bootstrap_servers => "kafka.example.com:9092"
    topics => ["metricbeat_data"]
  }
}

~ END ~


, ,

Related posts

Latest posts