91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用logstash作為docker日志驅動收集日志

發布時間:2021-07-29 22:54:06 來源:億速云 閱讀:386 作者:chen 欄目:云計算

這篇文章主要介紹“怎么使用logstash作為docker日志驅動收集日志”,在日常操作中,相信很多人在怎么使用logstash作為docker日志驅動收集日志問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用logstash作為docker日志驅動收集日志”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前言

logstash是一個開源的日志統一處理數據收集器,屬于ELK中的L,在日志收集領域應用廣泛.

docker默認的日志驅動是json-file,每一個容器都會在本地生成一個/var/lib/docker/containers/containerID/containerID-json.log,而日志驅動是支持擴展的,本章主要講解的是使用logstash收集docker日志.

docker是沒有logstash這個驅動的,但是可以通過logstash的gelf input插件收集gelf驅動的日志.

前提

  1. docker

  2. 了解logstash配置

  3. 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需要在配置的目錄中有寫入的權限,所以需要先準備好存放log的目錄以及給予權限.
創建目錄

mkdir /var/log/logstash

給予權限,這里用于實驗演示,直接授權777

chmod -R 777 /var/log/logstash

在docker-compose.yml,logstash.conf和logstash.yml文件的目錄中執行命令:
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收集日志

查看一下日志目錄下,應該就有對應的容器日志文件了:

[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

也可以直接下載我的文件:

  1. docker-compose.yml

  2. logstash.conf

  3. logstash.yml

總結

技術選型更推薦fluentd,為什么?

fluentd更加輕量級并且更靈活,并且目前屬于CNCF,活躍度和可靠性都更上一層樓.

為什么還要介紹logstash收集docker日志?

在一個公司或者業務中如果已經在使用ELK技術棧,也許就沒有必要再引入一個fluentd,而是繼續用logstash打通docker日志這塊.這里主要做一個分享,讓遇到這種情況的同學能夠有多一個選擇.

到此,關于“怎么使用logstash作為docker日志驅動收集日志”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武宣县| 安龙县| 普安县| 星子县| 丹阳市| 宁乡县| 鹰潭市| 涡阳县| 巨鹿县| 砚山县| 民县| 吉木萨尔县| 凌云县| 吉安市| 都安| 湘阴县| 裕民县| 济阳县| 仙桃市| 金门县| 扶风县| 平江县| 辉县市| 仁怀市| 大方县| 开阳县| 陆川县| 灵宝市| 潼关县| 茂名市| 汶上县| 虹口区| 尚义县| 呼伦贝尔市| 辽阳市| 辽源市| 高平市| 安宁市| 乌拉特前旗| 阿尔山市| 太仆寺旗|