docker啟動(dòng)logstash失敗的問題及解決(可能原因)
docker啟動(dòng)logstash失敗的問題
使用docker啟動(dòng)logstash時(shí),可能會(huì)提示成功,然后自動(dòng)就退出了,我的啟動(dòng)方式如下(以掛載的方式啟動(dòng)):
docker run \ -v /usr/local/logstash/lib/mysql-connector-java-5.1.46.jar:/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar \ -v /usr/local/logstash/config/mysql.conf:/usr/share/logstash/config/mysql.conf \ -v /usr/local/logstash/config/mysql1.conf:/usr/share/logstash/config/mysql1.conf \ -v /usr/local/logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml \ -d --name logstash-cluster logstash:5.6.12
上面的腳本在 7.x版本
是可以啟動(dòng)成功的,但是在 5.x版本
啟動(dòng)不了
下面直接貼出解決方案,把第一行和最后一行改為:
docker run \ -d --name logstash-cluster logstash:7.6.1
改為:
docker run -p 5044:5044 \ -d --name logstash -itd logstash:5.6.12
即:加上了指定端口 -p
(指定容器暴露的端口)和 -itd
,這可能是原因之一,其它原因到時(shí)遇到在補(bǔ)充。
docker運(yùn)行l(wèi)ogstash
前提條件:docker已安裝
1.下載鏡像
docker pull logstash:7.17.0
2.編寫logstash.yml配置文件
(如果不想用自己的yml配置文件,可以跳過此步驟)
在主機(jī)創(chuàng)建/mnt/logstash/config目錄,然后在此目錄下編寫logstash.yml配置文件,內(nèi)容如下:
path.config: /usr/share/logstash/pipeline ? ?
注意:
(1)7.17版本的管道配置文件默認(rèn)是在pipeline下,之前版本默認(rèn)是在conf.d目錄下,詳細(xì)參考官網(wǎng):https://www.elastic.co/guide/en/logstash/7.17/dir-layout.html
(2)path.config參數(shù)名不要寫錯(cuò)(寫錯(cuò)了的話logstash啟動(dòng)一小段時(shí)間后就自動(dòng)退出了)
3.編寫logstash.conf配置文件
在主機(jī)創(chuàng)建/mnt/logstash/pipeline目錄,然后在此目錄下編寫logstash.conf配置文件,
內(nèi)容如下:
input { stdin { } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { #elasticsearch { hosts => ["localhost:9200"] } stdout { codec => rubydebug } }
4.前臺(tái)方式運(yùn)行l(wèi)ogstash
docker run --rm -it -v /mnt/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /mnt/logstash/pipeline/:/usr/share/logstash/pipeline/ logstash:7.17.0
如果第2步跳過,執(zhí)行如下命令
docker run --rm -it -v /mnt/logstash/pipeline/:/usr/share/logstash/pipeline/ logstash:7.17.0
這樣logstash.conf會(huì)自動(dòng)解析
(先不要后臺(tái)方式運(yùn)行,因?yàn)槿绻袉栴}不好查找原因,前臺(tái)方式運(yùn)行會(huì)有日志打?。晃蚁劝裵ath.config參數(shù)名寫錯(cuò)了,老是啟動(dòng)不成功,后來通過前臺(tái)方式運(yùn)行才找到原因?。?/p>
5.測(cè)試
輸入如下內(nèi)容:
127.0.0.1 - - [11/Dec/2013:00:01:45 -0800] "GET /xampp/status.php HTTP/1.1" 200 3891 "http://cadenza/xampp/navi.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0"
再回車出現(xiàn)如下內(nèi)容就表示配置生效:
{ ? ? ? ? "message" => "127.0.0.1 - - [11/Dec/2013:00:01:45 -0800] \"GET /xampp/status.php HTTP/1.1\" 200 3891 \"http://cadenza/xampp/navi.php\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0\"", ? ? "httpversion" => "1.1", ? ? ? ?"response" => "200", ? ? ? ?"clientip" => "127.0.0.1", ? ? ? ? ? ?"host" => "d0c6b2bee4eb", ? ? ? ? ? ?"verb" => "GET", ? ? ? ? ? "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0\"", ? ? ? "timestamp" => "11/Dec/2013:00:01:45 -0800", ? ? ? ? ? ?"auth" => "-", ? ? ? ? ? "bytes" => "3891", ? ? ? ?"@version" => "1", ? ? ? ?"referrer" => "\"http://cadenza/xampp/navi.php\"", ? ? ?"@timestamp" => 2013-12-11T08:01:45.000Z, ? ? ? ? ? "ident" => "-", ? ? ? ? "request" => "/xampp/status.php" }
6.后臺(tái)方式運(yùn)行
logsashdocker run -itd --name logstash -v /mnt/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v /mnt/logstash/pipeline/:/usr/share/logstash/pipeline/ logstash:7.17.0
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker安裝jenkins實(shí)現(xiàn)微服務(wù)多模塊打包的示例代碼
本文主要介紹了Docker安裝jenkins實(shí)現(xiàn)微服務(wù)多模塊打包的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Docker綁定端口后仍無法遠(yuǎn)程直接訪問的解決方法
在Docker中,如果容器的端口綁定錯(cuò)誤或只綁定到了容器的內(nèi)部IP地址,將導(dǎo)致外部主機(jī)無法訪問該端口,所以本文小編給大家介紹了Docker綁定端口后仍無法遠(yuǎn)程直接訪問的解決方法,需要的朋友可以參考下2024-09-09docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對(duì)于bind?mount的優(yōu)點(diǎn)及volume操作,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08詳解在Docker容器中運(yùn)行Spring Boot應(yīng)用
本文將以一個(gè)最簡單的Spring Boot開發(fā)的Web應(yīng)用為例,講解如何將其容器化運(yùn)行。本文的重點(diǎn)是構(gòu)建Docker鏡像、運(yùn)行Docker容器。2017-06-06