Docker快速部署ELK

一、背景

筆者所在項目組的項目要做安全等保:用到部署日誌審計系統;此前聽說有ELK這種神器,搜索了一下,發現利用docker搭建似乎並不麻煩,於是進行了一番嘗試(運維人家覺得做個樣子,不想讓接入他們的ELK),那就自己搞唄,結果還比較順利,blog很多比較詳細版本,這裏僅限記錄,希望留給有需要的讀者進行參考。

筆者這次實踐的過程當中參考了較多的文檔與筆記,參考的鏈接地址有:
Docker logstash configuration說明文檔 、
Docker Hub官網
Docker ELK使用文檔

這哥們寫的也挺不錯的:https://www.cnblogs.com/soar1688/p/6849183.html

用這傢伙的可以跑起來:使用Docker快速部署ELK分析Nginx日誌實踐

二、操作概要

  1. 服務安裝與運行
  2. 數據導入與校驗
  3. 繪圖配置與展示

ElasticSearch是一個實時的分佈式搜索和分析引擎,它可以用於全文搜索,結構化搜索以及分析。這是一個建立在全文搜索引擎 Apache Lucene基礎上的搜索引擎。

Logstash是一個具有實時渠道能力的數據收集引擎,主要用於日誌的收集,過濾與解析,並將其存入ElasticSearch中。

Kibana是一款 基於Apache開源協議,爲ElasticSearch提供分析和可視化的Web平臺,它可以在Elasticsearch的索引中查找,交互數據,並生成各種維度的表圖。 
        image

5、安裝前提條件:

Docker至少得分配3GB的內存;

Elasticsearch至少需要單獨2G的內存;

防火牆開放相關端口;

vm.max_map_count至少需要262144,附永久修改vm.max_map_count方法如下圖:

執行命令:sysctl -p 查看

 注意:如果看到這樣的報錯信息 Logstash could not be started because there is already another instance using the configured data directory.  If you wish to run multiple instances, you must change the "path.data" setting. 請執行命令:service logstash stop 然後在執行就可以了。 

 部署Logstash服務

添加 ~/logstash/logstash.conf 配置文件如下:具體參數解釋:https://blog.csdn.net/weixin_41436549/article/details/82222344

參考官檔   Logstash Configuration Examplesedit

input {
  file {
    path => "/alex/data/alex-oas/logs/kafkaData.log"
    start_position => "beginning"
  }
}

filter {
  if [path] =~ "kafkaData" {
    mutate { replace => { "type" => "apache_kafkaData" } }
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
  date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
  }
  stdout { codec => rubydebug }
}

 ps:附上創建掛載指令

-----bash
#!/bin/bash
#把文件掛載elk容裏面進行收集目錄
mkdir -p /alex/data/"$1"/data
mkdir -p /alex/data/"$1"/elasticsearch/config
mkdir -p /alex/data/"$1"/kibana/config
mkdir -p /alex/data/"$1"/logstash/config
mkdir -p /alex/data/"$1"/logstash/logs
mkdir -p /alex/data/"$1"/elasticsearch/logs

#docker run -itd --privileged  --name="$1" -p  "$2":5601 -p "$3":9200 -p "$4":5044  -e ES_HEAP_SIZE="2g" -e LS_HEAP_SIZE="1g"  --log-driver=json-file  -v /alex/data/"$1"/data:/data docker.io/sebp/elk

#docker run -itd --privileged  --name="$1" -p  "$2":5601 -p "$3":9200 -p "$4":5044  -e ES_MIN_MEM=526m  -e ES_MAX_MEM=1024m  --log-driver=json-file  -v /alex/data/"$1"/config/:/data docker.io/sebp/elk

 docker run -itd --privileged  --name="$1" -p  "$2":5601 -p "$3":9200 -p "$4":5044 -p "$5":9300 -e ES_MIN_MEM=526m  -e ES_MAX_MEM=1024m  --log-driver=json-file -v /alex/data/"$1"/data:/data
 -v /alex/data/"$1"/logstash/config/:/opt/logstash/config/ -v /alex/data/"$1"/logstash/logs/:/opt/logstash/logs/
 -v /alex/data/"$1"/elasticsearch/config/:/opt/elasticsearch/config/ -v /alex/data/"$1"/elasticsearch/logs/:/opt/elasticsearch/logs/
 -v /alex/data/"$1"/kibana/config/:/opt/kibana/config/ docker.io/sebp/elk


#docker run -itd --privileged  --name="$1" -p  "$2":5601 -p "$3":9200 -p "$4":5044 --log-driver=json-file  -v /extracme/data/"$1"/data:/data docker.io/sebp/elk

------------------------------------ 

一個人的時候,總是在想

    我的生活到底在期待什麼……

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