這篇文章主要介紹“怎么使用logstash作為docker日志驅(qū)動收集日志”,在日常操作中,相信很多人在怎么使用logstash作為docker日志驅(qū)動收集日志問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用logstash作為docker日志驅(qū)動收集日志”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)是專業(yè)的張家港網(wǎng)站建設(shè)公司,張家港接單;提供網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行張家港網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
logstash是一個開源的日志統(tǒng)一處理數(shù)據(jù)收集器,屬于ELK中的L,在日志收集領(lǐng)域應(yīng)用廣泛.
docker默認(rèn)的日志驅(qū)動是json-file,每一個容器都會在本地生成一個/var/lib/docker/containers/containerID/containerID-json.log
,而日志驅(qū)動是支持?jǐn)U展的,本章主要講解的是使用logstash收集docker日志.
docker是沒有l(wèi)ogstash這個驅(qū)動的,但是可以通過logstash的gelf input插件收集gelf驅(qū)動的日志.
docker
了解logstash配置
docker-compose
docker-compose.yml
version: '3.7' x-logging: &default-logging driver: gelf options: gelf-address: "udp://localhost:12201" mode: non-blocking max-buffer-size: 4m tag: "kafeidou.{{.Name}}" #配置容器的tag,以kafeidou.為前綴,容器名稱為后綴,docker-compose會給容器添加副本后綴,>如 logstash_1 services: logstash: ports: - 12201:12201/udp image: docker.elastic.co/logstash/logstash:7.5.1 volumes: - ./logstash.yml:/usr/share/logstash/config/logstash.yml - /var/log/logstash:/var/log/logstash - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash-worker: image: docker.elastic.co/logstash/logstash:7.5.1 depends_on: - logstash logging: driver: "gelf" options: gelf-address: "udp://localhost:12201"
logstash.yml
http.host: "0.0.0.0"
logstash.conf
input { gelf{ use_udp => true port_tcp => 12202 } } output { file { path => "/var/log/logstash/%{+yyyy-MM-dd-HH}/%{container_name}.log" } }
由于logstash需要在配置的目錄中有寫入的權(quán)限,所以需要先準(zhǔn)備好存放log的目錄以及給予權(quán)限.
創(chuàng)建目錄
mkdir /var/log/logstash
給予權(quán)限,這里用于實驗演示,直接授權(quán)777
chmod -R 777 /var/log/logstash
在docker-compose.yml,logstash.conf和logstash.yml文件的目錄中執(zhí)行命令:docker-compose up -d
[root@master logstash]# docker-compose up -d WARNING: The Docker Engine you're using is running in swarm mode. Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node. To deploy your application across the swarm, use `docker stack deploy`. Starting logstash_logstash_1 ... done Starting logstash_logstash-worker_1 ... done
logstash啟動較慢,我實驗的效果是90秒左右,所以更推薦使用fluentd收集日志
查看一下日志目錄下,應(yīng)該就有對應(yīng)的容器日志文件了:
[root@master logstash]# ls /var/log/logstash/ 2020-02-16 [root@master logstash]# ls /var/log/logstash/2020-02-16/ logstash_logstash-worker_1.log
也可以直接下載我的文件:
docker-compose.yml
logstash.conf
logstash.yml
fluentd更加輕量級并且更靈活,并且目前屬于CNCF,活躍度和可靠性都更上一層樓.
在一個公司或者業(yè)務(wù)中如果已經(jīng)在使用ELK技術(shù)棧,也許就沒有必要再引入一個fluentd,而是繼續(xù)用logstash打通docker日志這塊.這里主要做一個分享,讓遇到這種情況的同學(xué)能夠有多一個選擇.
到此,關(guān)于“怎么使用logstash作為docker日志驅(qū)動收集日志”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站欄目:怎么使用logstash作為docker日志驅(qū)動收集日志
URL地址:http://weahome.cn/article/jdpijd.html