docker啟動logstash失敗的問題及解決(可能原因)
docker啟動logstash失敗的問題
使用docker啟動logstash時,可能會提示成功,然后自動就退出了,我的啟動方式如下(以掛載的方式啟動):
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版本
是可以啟動成功的,但是在 5.x版本
啟動不了
下面直接貼出解決方案,把第一行和最后一行改為:
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
,這可能是原因之一,其它原因到時遇到在補充。
docker運行l(wèi)ogstash
前提條件:docker已安裝
1.下載鏡像
docker pull logstash:7.17.0
2.編寫logstash.yml配置文件
(如果不想用自己的yml配置文件,可以跳過此步驟)
在主機創(chuàng)建/mnt/logstash/config目錄,然后在此目錄下編寫logstash.yml配置文件,內容如下:
path.config: /usr/share/logstash/pipeline ? ?
注意:
(1)7.17版本的管道配置文件默認是在pipeline下,之前版本默認是在conf.d目錄下,詳細參考官網:https://www.elastic.co/guide/en/logstash/7.17/dir-layout.html
(2)path.config參數(shù)名不要寫錯(寫錯了的話logstash啟動一小段時間后就自動退出了)
3.編寫logstash.conf配置文件
在主機創(chuàng)建/mnt/logstash/pipeline目錄,然后在此目錄下編寫logstash.conf配置文件,
內容如下:
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.前臺方式運行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會自動解析
(先不要后臺方式運行,因為如果有問題不好查找原因,前臺方式運行會有日志打??;我先把path.config參數(shù)名寫錯了,老是啟動不成功,后來通過前臺方式運行才找到原因?。?/p>
5.測試
輸入如下內容:
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)如下內容就表示配置生效:
{ ? ? ? ? "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.后臺方式運行
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
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker安裝jenkins實現(xiàn)微服務多模塊打包的示例代碼
本文主要介紹了Docker安裝jenkins實現(xiàn)微服務多模塊打包的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對于bind?mount的優(yōu)點及volume操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08