filebeat + elasticsearh的时区问题

本文探讨了使用Filebeat将数据发送至Elasticsearch时遇到的时间显示问题,即所有时间默认为UTC时间。文章提到在Elasticsearch-head中查看到的数据均为UTC时间,并且未找到调整时区的方法,而Kibana则已经能够显示本地时间。

filebeat 直接把数据打到 e里面去,在 elasticsearch-head里面查看会发现, 时间都是UTC时间。

没有找到调整显示时区的地方。

kibana展示的时候已经加入了本地时间了。

### 更改 Filebeat 容器中的时区设置 为了在 Filebeat 容器中更改时区设置,可以通过以下方法实现: #### 方法一:通过挂载主机的时区文件到容器 可以将宿主机上的 `/etc/localtime` 文件挂载到容器内的相同路径下。这样可以让容器继承宿主机的时区设置。 以下是 `docker run` 命令的一个示例: ```bash docker run -d \ --name filebeat \ -v /etc/localtime:/etc/localtime:ro \ -v /path/to/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \ filebeat:6.5.4 ``` 上述命令中 `-v /etc/localtime:/etc/localtime:ro` 将宿主机的时区文件只读地挂载到了容器内[^1]。 #### 方法二:通过环境变量设置时区 某些基础镜像支持通过环境变量来指定时区。如果使用的镜像是基于 Debian 或 Ubuntu 的,则可以通过设置 `TZ` 环境变量完成此操作。 例如,在运行容器时添加如下参数: ```bash docker run -d \ --name filebeat \ -e TZ=Asia/Shanghai \ -v /path/to/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro \ filebeat:6.5.4 ``` 需要注意的是,并不是所有的官方镜像都内置了对 `TZ` 变量的支持。如果没有生效,可能需要自定义 Docker 镜像并安装必要的工具以支持该功能[^2]。 #### 方法三:构建自定义 Dockerfile 并设置时区 当以上两种方式无法满足需求时,可以选择创建一个自定义的 Dockerfile 来调整时区配置。下面是一个简单的例子: ```Dockerfile FROM docker.elastic.co/beats/filebeat:6.5.4 # 设置时区为上海时间 RUN apk add --no-cache tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo Asia/Shanghai > /etc/timezone ``` 之后按照常规流程构建和推送新的镜像即可使用新设定好的时区[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值