部署ClearML本地服务器后,如何便捷查看ElasticSearch与Redis日志?
便捷查看ClearML本地服务器ES和Redis日志的方案
方案1:用ELK栈(ElasticSearch + Kibana)实现类Kibana日志查询体验
这个方案完全匹配你想要的Kibana式日志查看逻辑,把Docker容器(ES、Redis)的日志统一收集到ElasticSearch,再通过Kibana可视化查询。
步骤1:部署兼容版本的Kibana
如果你的ClearML部署未自带Kibana,通过Docker启动一个和现有ES版本一致的Kibana容器:
docker run -d --name clearml-kibana \ --network clearml_default \ # 加入ClearML默认网络,确保能访问内部ES -p 5601:5601 \ -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \ # ClearML的ES容器默认名为elasticsearch kibana:<你的ES版本号> # 比如ES是7.17.0,就用kibana:7.17.0
步骤2:配置Docker日志自动推送至ES
修改Docker守护进程配置文件/etc/docker/daemon.json,让所有容器日志自动发送到ClearML的ES:
{ "log-driver": "elasticsearch", "log-opts": { "elasticsearch-url": "http://<你的ES主机IP>:9200", "elasticsearch-index": "docker-logs-{DATE}" } }
重启Docker服务生效:
sudo systemctl restart docker
注:如果ClearML的ES开启了身份验证,需要在log-opts中追加elasticsearch-username和elasticsearch-password参数。
步骤3:在Kibana中配置索引模式
- 访问Kibana面板(
http://localhost:5601) - 进入Management > Index Patterns,创建新索引模式,匹配
docker-logs-* - 设置时间字段为
@timestamp,完成创建
之后就能在Kibana的Discover页面,按容器名(elasticsearch/redis)、关键词、时间范围筛选查看日志,完全实现你想要的便捷查询体验。
方案2:轻量级替代——Loki + Grafana日志可视化
如果不想部署完整ELK栈,Loki+Grafana更轻量化,适合本地测试环境:
步骤1:部署Loki和Grafana
创建docker-compose.yml文件:
version: "3" services: loki: image: grafana/loki:latest ports: - "3100:3100" volumes: - ./loki-config.yml:/etc/loki/local-config.yaml command: -config.file=/etc/loki/local-config.yaml grafana: image: grafana/grafana:latest ports: - "3000:3000" volumes: - grafana-storage:/var/lib/grafana depends_on: - loki volumes: grafana-storage:
创建loki-config.yml配置文件:
auth_enabled: false server: http_listen_port: 3100 ingester: lifecycler: address: 127.0.0.1 ring: kvstore: store: inmemory replication_factor: 1 final_sleep: 0s chunk_idle_period: 5m chunk_retain_period: 30s max_transfer_retries: 0 schema_config: configs: - from: 2020-10-24 store: boltdb-shipper object_store: filesystem schema: v11 index: prefix: index_ period: 24h storage_config: boltdb_shipper: active_index_directory: /loki/index cache_location: /loki/index_cache shared_store: filesystem filesystem: directory: /loki/chunks compactor: working_directory: /loki/compactor shared_store: filesystem limits_config: reject_old_samples: true reject_old_samples_max_age: 168h chunk_store_config: max_look_back_period: 0s table_manager: retention_deletes_enabled: false retention_period: 0s
启动服务:
docker-compose up -d
步骤2:配置Docker日志推送至Loki
修改/etc/docker/daemon.json:
{ "log-driver": "loki", "log-opts": { "loki-url": "http://<你的Loki主机IP>:3100/loki/api/v1/push", "loki-external-labels": "container_name={{.Name}}" } }
重启Docker服务:
sudo systemctl restart docker
步骤3:在Grafana中查看日志
- 访问Grafana面板(
http://localhost:3000,默认账号admin/admin) - 进入Configuration > Data Sources,添加Loki数据源,URL填写
http://loki:3100 - 进入Explore页面,选择Loki数据源,即可按容器名筛选、搜索ES和Redis的日志。
方案3:本地挂载日志文件(无可视化,快速查看)
如果只是需要便捷查看日志文件,不需要可视化功能,可以修改ClearML的docker-compose.yml,将ES和Redis的日志目录挂载到本地:
找到ES和Redis的服务配置,添加volumes字段:
services: elasticsearch: ... volumes: - ./elasticsearch-logs:/usr/share/elasticsearch/logs redis: ... volumes: - ./redis-logs:/var/log/redis
重启ClearML服务:
docker-compose up -d
之后可以直接在本地目录查看日志,用tail -f实时监控:
tail -f ./elasticsearch-logs/elasticsearch.log tail -f ./redis-logs/redis-server.log
内容的提问来源于stack exchange,提问作者happy
相关产品推荐
相关产品推荐

