真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

這篇文章給大家介紹基于Graylog的容器化應(yīng)用日志管理是怎么樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新互聯(lián)主營無為網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),無為h5小程序設(shè)計(jì)搭建,無為網(wǎng)站營銷推廣歡迎無為等地區(qū)企業(yè)咨詢

Docker日志

當(dāng)一個容器啟動的時候,它其實(shí)是docker deamon的一個子進(jìn)程,docker daemon可以拿到容器里面進(jìn)程的標(biāo)準(zhǔn)輸出,然后通過自身的LogDriver模塊來處理,LogDriver支持的方式很多,默認(rèn)寫到本地文件,也可以發(fā)送到syslog等。

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

Docker會默認(rèn)收集應(yīng)用程序的標(biāo)準(zhǔn)輸出到一個json.log文件中,以一行一條JSON存儲數(shù)據(jù),文件的格式如下:

{"log":"root@74205cdc7b53dd:/#ls\r\n","stream":"stdout","time":"xxx.155834526Z"}
{"log":"root@74205cdc7b53dd:/#ls\r\n","stream":"stdout","time":"xxx.255834528Z"}

Docker的這種日志存儲方式可以在容器啟動時通過指定log-driver進(jìn)行配置,支持的log driver如下:

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

Graylog日志管理

Graylog是一個開源的完整的日志管理工具,功能和ELK類似。Docker原生支持graylog協(xié)議,Graylog官方也提供了對Docker的支持,二者可以無縫銜接。Graylog官方提供了Dockerfile可以在Docker上部署日志系統(tǒng),同時也提供了docker-compose.yml文件來快速部署整個graylog棧。
詳細(xì)內(nèi)容可以通過 http://docs.graylog.org/en/3.1/pages/installation/docker.html 來查看。

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

Graylog部署

1.在當(dāng)前用戶目錄下創(chuàng)建graylog目錄作為部署的工作目錄:

$ mkdir graylog
$ cd graylog

2.初始化目錄和配置文件

$ mkdir -p ./graylog/config
$ cd ./graylog/config
$ wget https://raw.githubusercontent.com/Graylog2/graylog-docker/3.1/config/graylog.conf
$ wget https://raw.githubusercontent.com/Graylog2/graylog-docker/3.1/config/log4j2.xml

#另外由于Graylog以ID 1100 定義了用戶和用戶組,
#導(dǎo)致Graylog在啟動的時候可能會報(bào)config目錄權(quán)限不足的錯誤,可以通過以下命令來解決
chown -R 1100:1100 ./graylog/config

3.修改配置文件, 上一步獲得的graylog.conf文件是官方提供的默認(rèn)配置,用戶可以根據(jù)需要進(jìn)行配置,比如配置中時區(qū)默認(rèn)為UTC時區(qū),可以將其改為中國時區(qū)

root_timezone = Asia/Shanghai

4.準(zhǔn)備docker-compose.yml文件

version: '3'
services:
  # MongoDB: https://hub.docker.com/_/mongo/
  mongo:
    image: mongo:3
    networks:
      - graylog
    volumes:
      - mongo_data:/data/db
  # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.x/docker.html
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    volumes:
      - es_data:/usr/share/elasticsearch/data
    environment:
      - http.host=0.0.0.0
      - transport.host=localhost
      - network.host=0.0.0.0
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      resources:
        limits:
          memory: 1g
    networks:
      - graylog
  # Graylog: https://hub.docker.com/r/graylog/graylog/
  graylog:
    image: graylog/graylog:3.1
    volumes:
      - graylog_journal:/usr/share/graylog/data/journal
      - ./graylog/config:/usr/share/graylog/data/config
    environment:
      # CHANGE ME (must be at least 16 characters)!
      - GRAYLOG_PASSWORD_SECRET=somepasswordpepper
      # Password: admin
      - GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918
      - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.0.103:9000/
    networks:
      - graylog
    depends_on:
      - mongo
      - elasticsearch
    ports:
      # Graylog web interface and REST API
      - 9000:9000
      # Syslog TCP
      - 1514:1514
      # Syslog UDP
      - 1514:1514/udp
      # GELF TCP
      - 12201:12201
      # GELF UDP
      - 12201:12201/udp
networks:
  graylog:
    driver: bridge
# Volumes for persisting data, see https://docs.docker.com/engine/admin/volumes/volumes/
volumes:
  mongo_data:
    driver: local
  es_data:
    driver: local
  graylog_journal:
    driver: local

5.運(yùn)行 “docker-compose up”啟動服務(wù), 服務(wù)正常啟動后就可以通過http://ip:9000 進(jìn)行訪問graylog的Web界面,默認(rèn)用戶admin/admin。基于Graylog的容器化應(yīng)用日志管理是怎么樣的

Graylog配置日志收集

Graylog的日志收集通過定義input來完成,在Graylog的Web管理頁面的System tab下可以選擇定義input來對日志進(jìn)行收集

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

進(jìn)入input頁面后選擇input的類型,比如定義GELF UDP的input:

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

選擇完成后點(diǎn)擊 “Lanch new input”,就會進(jìn)入詳細(xì)的input配置,配置完成后保存就可以了

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

保存后一切正常的話,input就會進(jìn)入RUNNING狀態(tài),這時就可以往這個input里面發(fā)送數(shù)據(jù)了,點(diǎn)擊“Stop input”,input就會停止,數(shù)據(jù)的接收也會停止,“Stop input”會變成“Start input”,需要接受數(shù)據(jù)的時點(diǎn)擊啟動就可以了。

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

配置Docker容器發(fā)送數(shù)據(jù)到Graylog

配置Docker容器發(fā)送數(shù)據(jù)到Graylog時可以在運(yùn)行docker run命令啟動容器的時候加上如下參數(shù):

docker run --log-driver=gelf \
--log-opt gelf-address=udp://graylog服務(wù)器地址:12201 \
--log-opt tag=<當(dāng)前容器服務(wù)標(biāo)簽,用來供graylog查詢的時候進(jìn)行分類> \
 

具體示例:

docker run -d \
--log-driver=gelf \
--log-opt gelf-address=udp://localhost:12201 \
--log-opt tag="{{.ImageName}}/{{.Name}}/{{.ID}}" \
busybox sh -c 'while true; do echo "Graylog test message"; sleep 10; done;'

如果容器通過docker-compose命令啟動可以在docker-compose.yml文件中加入以下配置:

logging:
  driver:"gelf"
  options:
    gelf-address:"udp://graylog服務(wù)器地址:12201"
    tag:"容器服務(wù)標(biāo)簽"

具體示例:

version: '2'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    logging:
      driver: "gelf"
      options:
        gelf-address: "udp://localhost:12201"
        tag: nginx-service

日志發(fā)送配置好之后就可以在的Search tab下搜索產(chǎn)看日志信息

基于Graylog的容器化應(yīng)用日志管理是怎么樣的

關(guān)于基于Graylog的容器化應(yīng)用日志管理是怎么樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


網(wǎng)站名稱:基于Graylog的容器化應(yīng)用日志管理是怎么樣的
URL鏈接:http://weahome.cn/article/gshjse.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部