本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
本Docker镜像基于官方Logstash镜像构建,预安装Logstash Loki输出插件(logstash-output-loki),旨在简化Logstash与Loki日志聚合系统的集成流程。通过该镜像,用户可快速部署具备Loki日志发送能力的Logstash实例,无需手动安装插件,适用于需要将Logstash处理后的日志数据统一发送至Loki进行集中存储和查询的场景。
job、instance、service),符合Loki基于标签索引的日志组织方式。batch_size)和超时时间(batch_timeout),减少网络请求次数,提升吞吐量。max_retries和重试间隔retry_backoff),确保网络波动或Loki暂时不可用时日志不丢失。tls_enable配置)及基本认证(username/password),保障日志数据传输安全。logstash-output-loki插件,省去手动安装步骤。docker pull <镜像仓库地址>/logstash-loki:latest # 替换为实际镜像仓库地址
Logstash配置文件需包含input(日志输入)、filter(日志处理,可选)、output(Loki输出)三部分。核心为output部分的Loki插件配置,示例如下:
# 输入:从文件读取日志(示例为Nginx访问日志) input { file { path => "/var/log/nginx/access.log" start_position => "beginning" sincedb_path => "/dev/null" # 仅测试用,生产环境建议保留sincedb } } # 过滤:解析Nginx日志为结构化数据(可选) filter { grok { match => { "message" => '%{IPORHOST:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{URIPATH:path}(?:%{URIPARAM:params})? %{PROTOCOL:protocol}/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:body_bytes_sent} "%{URI:referrer}" "%{GREEDYDATA:user_agent}"' } } } # 输出:发送至Loki output { loki { loki_url => "[***]" # Loki服务地址 tags => { # 从事件字段提取Loki标签 "job" => "nginx-access-log" # 静态标签 "host" => "%{host}" # 动态标签(引用Logstash事件的host字段) "status" => "%{status}" # 动态标签(引用过滤后的status字段) } batch_size => 500 # 每批最大事件数(默认1024) batch_timeout => 10 # 批处理超时时间(秒,默认30) max_retries => 3 # 失败最大重试次数(默认3) line_format => "json" # 日志行格式(text/json,默认text) } }
output { loki { loki_url => "[***]" # HTTPS地址 tags => { "job" => "app-logs", "env" => "%{[fields][env]}" } username => "loki-user" # 基本认证用户名 password => "loki-pass" # 基本认证密码 tls_enable => true # 启用TLS tls_ca_cert => "/etc/logstash/certs/ca.pem" # CA证书路径(容器内路径) tenant_id => "tenant-123" # Loki多租户ID(如有) retry_backoff => 5 # 重试间隔(秒,默认2) batch_size => 1000 batch_timeout => 15 } }
| 参数名 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| loki_url | 字符串 | 是 | - | Loki HTTP API推送地址,格式:http(s)://<loki-host>:<port>/loki/api/v1/push |
| tags | 哈希 | 否 | {} | Loki标签映射,键为标签名,值为Logstash事件字段引用(如"%{host}")或静态值 |
| batch_size | 整数 | 否 | 1024 | 每批发送的最大事件数,建议根据日志量调整(如1000-5000) |
| batch_timeout | 整数 | 否 | 30 | 批处理超时时间(秒),超时后即使未达batch_size也发送 |
| max_retries | 整数 | 否 | 3 | 发送失败后最大重试次数,设为0则不重试 |
| retry_backoff | 整数 | 否 | 2 | 重试间隔(秒),支持指数退避(实际间隔为retry_backoff * 2^(重试次数)) |
| tls_enable | 布尔值 | 否 | false | 是否启用TLS加密传输 |
| tls_ca_cert | 字符串 | 否 | - | CA证书路径(容器内路径),tls_enable: true时必填 |
| username | 字符串 | 否 | nil | 基本认证用户名,Loki启用认证时必填 |
| password | 字符串 | 否 | nil | 基本认证密码,Loki启用认证时必填 |
| tenant_id | 字符串 | 否 | "" | Loki多租户模式下的租户ID,无多租户时留空 |
| line_format | 字符串 | 否 | "text" | 日志行格式:text(直接使用message字段)或json(事件转为JSON字符串) |
docker run -d \ --name logstash-loki \ -v $(pwd)/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \ # 挂载配置文件 -v $(pwd)/nginx-logs:/var/log/nginx \ # 挂载日志文件(输入源) -v $(pwd)/certs:/etc/logstash/certs \ # 挂载TLS证书(如需) -e LS_JAVA_OPTS="-Xms512m -Xmx1g" \ # 配置JVM内存 --network loki-network \ # 连接至Loki所在网络 <镜像仓库地址>/logstash-loki:latest
version: "3.8" services: # Loki服务 loki: image: grafana/loki:2.9.0 ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml networks: - loki-network # Grafana(用于查询Loki日志) grafana: image: grafana/grafana:10.2.0 ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_PASSWORD=admin # 管理员密码 depends_on: - loki networks: - loki-network # Logstash(含Loki插件) logstash: image: <镜像仓库地址>/logstash-loki:latest volumes: - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf # 自定义配置 - ./nginx-logs:/var/log/nginx # 日志输入目录 environment: - LS_JAVA_OPTS="-Xms512m -Xmx1g" depends_on: - loki networks: - loki-network networks: loki-network: driver: bridge
loki-network),或通过公网地址通信。LS_JAVA_OPTS)和批处理参数(batch_size/batch_timeout),避免OOM或性能瓶颈。env仅设prod/test)。http://localhost:9600)监控插件运行状态,排查发送失败问题。sincedb_path(默认/usr/share/logstash/data/plugins/inputs/file)避免日志重复读取。logrotate)防止输入日志文件过大。password)使用Logstash的secrets管理功能,避免明文配置。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429