使用Docker快速搭建ELK環境


今天由於Win系統的筆記本沒帶回家,其次Docker在非Linux系統下都需要安裝額外的軟件去鏡像才行

所以感覺沒有差別,先直接用Mac搭建一遍呢, 本篇部分命令和配置內容為摘抄

Mac下使用Docker快速搭建ELK環境

一、首先我們在Docker官網下載Mac下的安裝鏡像

  這兒我下好了也安裝好了,就不給大家演示了

 

二、部分常用的docker命令

1.查看正在運行的容器

$ sudo docker ps

2.查看所有的容器

$ sudo docker ps -a

3.查看本地鏡像

$ sudo docker images

4.從鏡像中運行/停止一個新實例

$ sudo docker run/stop --help

$ sudo docker run/stop container

5.避免輸出Sudo

這里把當前用戶加入到docker組就可以直接使用命令,而不用每次都加sudo

$ sudo groupadd docker

#改完后需要重新登陸用戶

$ sudo gpasswd -a ${USER} docker

6.Docker版本

$ sudo docker --version

7.搜索Docker Image

$ docker search tutorial

搜索網址是:index.docker.io [國內無法訪問]

其他網址是:https://hub.docker.com/

8.通過docker命令下載tutorial鏡像

$ docker pull learn/tutorial

9.從指定image里生成一個container並在其中運行一個命令

$ docker run [image] [cmd]

10.在container里運行交互式命令,比如shell

$ docker run -i -t [image] [cmd]

$ docker run -i -t ubuntu /bin/bash

11.在container里運行后台任務

$ docker run -d [image] [cmd]

12.列出最近一個運行過的container

不加-l則只列出正在運行的container(比如后台任務)

$ docker ps -l

13.列出所有container

$ docker ps -a

14.查看container詳情

$ docker inspect [container]

15.刪除某個container

其中container_id不需要輸入完整,只要能保證唯一即可。

運行中的Docker容器是無法刪除的,必須先通過docker stop或者docker kill命令停止。

$ docker rm [container]

$ docker rm `docker ps -a -q` 刪除所有容器,-q表示只返回容器的ID

16.再次運行某個container

$ docker start [container]

17.查看某個container的運行日志

$ docker logs [container]

$ docker logs -f [container] 類似tailf

18.切換到后台任務container, 需要當前容器正常運行

注意:切換到后台任務以后無法用Ctrl-C退出

$ docker attach [container]

19.中止后台任務container

$ docker stop [container]

20.將container保存為一個image

$ docker commit [container] [image_name]

21.將image上傳到倉庫

$ docker push [image_name]

22.刪除images

$ docker rmi [image id]

23.為容器指定名稱,容器的名稱是唯一

$ docker run --name edison -i -t ubuntu /bin/bash

24.有三種方式可以唯一指代容器

短UUID: 716d3c16dc65(12位)

長UUID:716d3c16dc654230ada14f555faadd036474231dfca0ca44b597574a5c618565(64位)

名稱: edison

25.當前Docker宿主機的信息

$ docker info

26.查看容器內部的進程信息

$ docker top [container]

27.在容器中運行后台任務,只對正在運行的容器有效。

$ docker exec -d [container] [cmd]

$ docker exec -d edison touch /home/haha

28.在容器中運行交付式任務,只對正在運行的容器有效。

$ docker exec -t -i edison /bin/bash

 

三、使用docker命令把我們要使用的ELK鏡像pull到本地

       docker pull sebp/elk

       這是目前推薦的集成鏡像,大家也可以使用終端命令Brew等分別自行安裝

      分開部署可參考:https://segmentfault.com/a/1190000006188536

      

然后再執行命令:docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m  -e ES_MAX_MEM=1024m -it --name elk sebp/elk

  將鏡像運行為容器,由於我本機內存不符合安裝要求,為了保證ELK能夠正常運行,加了-e參數限制使用最小內存及最大內存

     運行時我們可以從終端看到相應的ELK組件都已經成功運行,而且是截止目前為止較新的6.1.1版本

     我們可以分別訪問 9200 端口驗證ES 和 5601端口驗證Kibanna,如果成功訪問則證明安裝成功

 

 四、配置使用(此處為摘抄,可以快速驗證ELK的使用)

1、使用命令:docker exec -it <container-name> /bin/bash 進入容器內

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、當命令成功被執行后,看到:Successfully started Logstash API endpoint {:port=>9600} 信息后,輸入:this is a dummy entry 然后回車,模擬一條日志進行測試。

4、打開瀏覽器,輸入:http://<your-host>:9200/_search?pretty 如圖,就會看到我們剛剛輸入的日志內容

 

ElasticSearch和ElasticSearch Head環境搭建和數據模擬

使用Logstash來實時同步MySQL數據到ES

使用docker快速搭建ELK環境

使用NetCore向ES快速寫數據的設計

NetCore結合ES億級數據的實踐

     


免責聲明!

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



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