当前位置: 首页 >  在线教学 >  轻量级实时容器Docker查看日志工具实践

轻量级实时容器Docker查看日志工具实践

导读:轻量级实时容器Docker查看日志工具实践.介绍一款使用了几个月的开源小工具,Dozzle。基于MIT许可,它是一款轻量、简单的容器日志查看工具。其源代码基于GOLANG开发的,.适合单机环境,如本地开发环境,测试环境。如下示例:.部署.直接单实例部署.docker run –n

轻量级实时容器Docker查看日志工具实践
介绍一款使用了几个月的开源小工具,Dozzle。基于MIT许可,它是一款轻量、简单的容器日志查看工具。其源代码基于GOLANG开发的, 适合单机环境,如本地开发环境,测试环境。如下示例:

部署

直接单实例部署

docker run –name dozzle -d –volume=/var/run/docker.sock:/var/run/docker.sock -p 16666:8080 amir20/dozzle:latest –username=logman –password=yingji

健康检查

version: “3”
services:
dozzle:
container_name: dozzle
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8080:8080
environment:
DOZZLE_LEVEL: trace
healthcheck:
test: [ “CMD”, “/dozzle”, “healthcheck” ]
interval: 3s
timeout: 30s
retries: 5
start_period: 30s

对应源码

func (d *dockerClient) Ping(ctx context.Context) (types.Ping, error) {

return d.cli.Ping(ctx)

}

func (h *handler) healthcheck(w http.ResponseWriter, r *http.Request) {

log.Trace(“Executing healthcheck request”)

if ping, err := h.client.Ping(r.Context()); err != nil {

log.Error(err)

http.Error(w, err.Error(), http.StatusInternalServerError)

} else {

fmt.Fprintf(w, “OK API Version %v”, ping.APIVersion)

}

}

func HttpRequest(addr string, base string) error {

if strings.HasPrefix(addr, “:”) {

addr = “localhost” + addr

}

url := fmt.Sprintf(“http://%s%s/healthcheck”, addr, base)

log.Info(“Checking health of ” + url)

resp, err := http.Get(url)

if err != nil {

return err

}

defer resp.Body.Close()

if resp.StatusCode == 200 {

os.Exit(0)

}

os.Exit(1)

return nil

}

认证

我们需要整合nginx可以加一个认证,让我们访问dozzle时,先通过nginx的basic auth认证

在centos下生成密码

yum install httpd

#生成用户名user1 密码文件

htpasswd -c /data/appdata/nginx_auth/db/passwd.db user1

docker-compose.yaml

version: ‘3.3’

services:

dozzle:

image: amir20/dozzle:latest

environment:

- LOGSPOUT=ignore

volumes:

- ‘/var/run/docker.sock:/var/run/docker.sock’

nginx:

image: beevelop/nginx-basic-auth

environment:

- HTPASSWD=foo:$\(apr1\)\(odHl5EJN\)$KbxMfo86Qdve2FH4owePn.

- FORWARD_PORT=8080

- LOGSPOUT=ignore

links:

- dozzle:web

ports:

- ‘40080:80’

以上默认账户foo,密码bar,可按实际情况修改后部署。

集成

如果是基于Treafik部署,Træfɪk 是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。 它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) 来自动化、动态的应用它的配置文件设置, 以下dozzle的docker-compose, 需要先部署Træfɪk .

version: “3.6”

services:

dozzle:

container_name: dozzle

image: amir20/dozzle:latest

volumes:

- /var/run/docker.sock:/var/run/docker.sock:ro

仅标准 Linux 环境使用

- /etc/localtime:/etc/localtime:ro

- /etc/timezone:/etc/timezone:ro

environment:

Web 服务监听地址

- DOZZLE_ADDR=0.0.0.0:8080

Web 服务目录位置

- DOZZLE_BASE=/

运行日志打印级别

- DOZZLE_LEVEL=info

展示和缓存的日志条数

- DOZZLE_TAILSIZE=300

仅展示符合筛选条件的容器

- DOZZLE_FILTER=

expose:

- 8080

restart: always

networks:

- traefik

labels:

- “traefik.enable=true”

- “traefik.docker.network=traefik”

- “traefik.http.routers.dozzle-web.entrypoints=http”

- “traefik.http.routers.dozzle-web.rule=Host(dev.lab.com)”

- “traefik.http.services.dozzle-web- backend.loadbalancer.server.scheme=http”

- “traefik.http.services.dozzle-web-backend.loadbalancer.server.port=8080”

logging:

driver: “json-file”

options:

max-size: “10m”

networks:

traefik:

external: true


今天先到这儿,希望对云原生,技术领导力, 企业管理,系统架构设计与评估,团队管理, 项目管理, 产品管管,团队建设 有参考作用 , 您可能感兴趣的文章:
领导人怎样带领好团队
构建创业公司突击小团队
国际化环境下系统架构演化
微服务架构设计
视频直播平台的系统架构演化
微服务与Docker介绍
Docker与CI持续集成/CD
互联网电商购物车架构演变案例
互联网业务场景下消息队列架构
互联网高效研发团队管理演进之一
消息系统架构设计演进
互联网电商搜索架构演化之一
企业信息化与软件工程的迷思
企业项目化管理介绍
软件项目成功之要素
人际沟通风格介绍一
精益IT组织与分享式领导
学习型组织与企业
企业创新文化与等级观念
组织目标与个人目标
初创公司人才招聘与管理
人才公司环境与企业文化
企业文化、团队文化与知识共享
高效能的团队建设
项目管理沟通计划
构建高效的研发与自动化运维
某大型电商云平台实践
互联网数据库架构设计思路
IT基础架构规划方案一(网络系统规划)
餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实施流程
餐饮行业解决方案之业务设计流程
供应链需求调研CheckList
企业应用之性能实时度量系统演变

如有想了解更多软件设计与架构, 系统IT,企业信息化, 团队管理 资讯,请关注我的微信订阅号:

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 该文章也同时发布在我的独立博客中-Petter Liu Blog。

内容
  • D3D12调试工具——pix
    D3D12调试工具——pix
    2023-12-09
    前言.​ 本篇将介绍图形调试工具pix,使用该工具可以对图形管线进行debug。貌似VS不再支持D3D12的图形调试,笔
  • Unity性能优化(二) 性能分析篇
    Unity性能优化(二) 性能分
    2023-12-09
    性能优化的第一步是 收集数据,在 Unity 中我们有多种性能分析工具可供使用。下面简单介绍几个常用工具。.Unity
  • Unity_Photon
    Unity_Photon
    2023-12-07
    Photon.1.0 Photon搭建.(2条消息) 【Unity3D】Photon环境搭建_photon框架_litt
  • 【Lua】(一)VSCode 搭建 Lua 开发环境
    【Lua】(一)VSCode 搭
    2023-12-05
    前言.最近在找工作,基本所有的岗位都会问到 Lua(甚至拼 UI 的都要求会 Lua),咱能怎么办呢,咱也只能学啊…….
  • 风衣
    风衣
    2023-12-21
    风衣.产品功能.透气性高,能够有效排出体内热量和汗液,保持身体舒适.防风防水,能够有效阻挡外界风雨,保护身体不受天气影响
  • 毛衣
    毛衣
    2024-01-10
    毛衣产品介绍.产品功能.保暖:毛衣采用高品质的羊毛或羊毛混纺材料制成,具有良好的保暖性能,能有效阻挡寒冷空气对人体的侵袭
  • 短裤
    短裤
    2023-12-11
    时尚舒适,让您夏日更自在.产品功能.采用轻薄、透气的面料,给您清新舒适的穿着体验.弹性腰头设计,更贴合您的腰部曲线,穿着
  • 裙子
    裙子
    2023-12-16
    裙子.产品描述.我们的裙子采用高品质的面料制成,款式多样,适合各种场合穿着。无论是休闲的街头漫步,还是正式的商务会议,我
  • 袜子
    袜子
    2023-12-26
    产品介绍.产品功能.我们的袜子采用了优质的天然材料,具有吸湿透气、舒适柔软的特点。特别设计的弹性帮助固定袜子位置,并且不
  • 女童裤子
    女童裤子
    2024-01-10
    女童裤子.产品介绍.我们的女童裤子是为年龄在3-12岁之间的女孩设计的。我们的裤子不仅样式多样,而且舒适耐穿,适合学校、
  • 儿童外套
    儿童外套
    2023-12-06
    儿童外套.产品功能.我们的儿童外套具有多种功能,包括保暖、防风、防水和舒适。它们采用高质量的面料制成,能够有效地抵御寒冷
  • 牛仔裤
    牛仔裤
    2024-01-05
    牛仔裤.牛仔裤,是一种起源于美国的经典服装单品,以其耐穿耐磨的特性,成为了时尚界不可或缺的一部分。无论是男女老少,都能在
  • 婴儿连体衣
    婴儿连体衣
    2023-12-21
    婴儿连体衣.产品描述.婴儿连体衣是专门为婴儿设计的一款便捷舒适的睡衣,它将上衣和裤子融为一体,令宝宝在睡觉及活动时更加方
  • 外套
    外套
    2024-01-10
    外套.产品功能.外套是一种常见的服装,通常可作为保暖服装或装饰性服装穿着。它们有多种形式,包括短款和长款、有无连帽、单宽