Docker安裝ELK


1.下載elk

docker pull sebp/elk

2.啟動elk

//Elasticsearch至少需要單獨2G的內存
//增加了一個volume綁定,以免重啟container以后ES的數據丟失
docker run -d -p 5044:5044 -p 127.0.0.1:5601:5601 -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -v /var/data/elk:/var/lib/elasticsearch --name=elk sebp/elk

若啟動過程出錯一般是因為elasticsearch用戶擁有的內存權限太小,至少需要262144

切換到root用戶

執行命令:

sysctl -w vm.max_map_count=262144

查看結果:

sysctl -a|grep vm.max_map_count

顯示:

vm.max_map_count = 262144
上述方法修改之后,如果重啟虛擬機將失效,所以:

解決辦法:

在   /etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

即可永久修改

啟動成功之后訪問:http:// :5601 看到kibana頁面則說明安裝成功

3.配置使用

3.1 進入容器
docker exec -it <container-name> /bin/bash
3.2 執行命令
/opt/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
/*
 注意:如果看到這樣的報錯信息 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 然后在執行就可以了。
*/
3.3 測試

當命令成功被執行后,看到:Successfully started Logstash API endpoint {:port=>9600} 信息后,輸入:this is a dummy entry 然后回車,模擬一條日志進行測試。
打開瀏覽器,輸入:http:// :9200/_search?pretty 如圖,就會看到我們剛剛輸入的日志內容

3.4 kafka-logstash-es配置
input {
        kafka{
                //此處注意:logstash5.x版本以前kafka插件配置的是zookeeper地址,5.x以后配置的是kafka實例地址
                bootstrap_servers =>["192.168.121.205:9092"]
                client_id => "test" group_id => "test"
                consumer_threads => 5
                decorate_events => true
                topics => "logstash"
        }
}
filter{
        json{
                source => "message"
        }
}

output {
        elasticsearch {
                hosts => ["192.168.121.205"]
                index=> "hslog_2"
                codec => "json"
        }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM