开发者社区 > 云原生 > 微服务 > 正文

Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?

Higress的日志收集中,底层用的是Envoy,可不可以实现类似NGINX的rsyslog发送?

展开
收起
三分钟热度的鱼 2024-01-24 16:27:02 68 0
3 条回答
写回答
取消 提交回答
  • Higress 日志收集中,默认底层依赖 Envoy 代理处理日志。Envoy 提供了丰富的日志记录能力,包括访问日志、集群管理日志等,并可通过自定义配置将日志输出到不同的目的地,如标准输出、文件、或者是远程的 TCP/UDP 地址。

    尽管 Envoy 原生并不直接支持像 NGINX 那样通过 rsyslog 进行日志发送,但可以通过以下间接方法实现类似的日志传输机制:

    1. 通过 Sidecar 容器
      在 Kubernetes 等容器化环境中,可以部署一个专门负责日志收集的 sidecar 容器,比如运行 rsyslog 容器,并配置 Envoy 将日志输出到本地文件。然后通过 sidecar 容器读取该日志文件并利用 rsyslog 转发到中央日志服务器。

    2. 管道输出
      如果环境支持,可以直接将 Envoy 输出的日志流导向 rsyslog 服务正在监听的 Unix 域套接字或其他网络端口。

    3. 自定义过滤器和输出插件
      对于更高级的需求,Envoy 提供了扩展机制,允许编写自定义过滤器和日志处理器。理论上可以通过编写一个 Envoy 扩展,使其能够直接与 rsyslog 协议兼容并发送日志。

    因此,虽然 Envoy 本身不直接支持 rsyslog 发送日志,但通过上述方案可以构建一个与 NGINX 使用 rsyslog 类似的日志收集架构

    2024-01-26 14:14:36
    赞同 展开评论 打赏
  • 是的,可以实现类似NGINX的rsyslog发送

    Higress作为基于Envoy的Ingress控制器,其日志系统是可以配置的。虽然Higress默认使用的是JSON格式的日志,但是它的日志收集和输出是可以定制的。要实现类似NGINX的rsyslog发送,您需要对Higress所在的服务器进行一些配置。具体步骤如下:

    • 安装rsyslog服务:首先确保您的服务器上安装了rsyslog服务。如果没有安装,可以通过包管理器进行安装。
    • 配置rsyslog:在rsyslog的配置文件中(通常位于/etc/rsyslog.conf),您可以指定将日志数据从Higress的日志目录传输到指定的日志服务器。这通常涉及到编辑配置文件,添加相应的规则来监听Higress的日志文件路径,并将其转发到远程服务器的指定位置。
    • 配置Higress日志输出:您可能需要配置Higress以将其日志输出到文件系统中的一个特定位置,这样rsyslog就可以读取这些日志文件并将其发送到远程服务器。
    • 启动rsyslog服务:配置完成后,启动或重启rsyslog服务以应用更改。

    通过上述步骤,您应该能够实现将Higress的日志通过rsyslog发送到远程服务器,类似于NGINX的配置方式。这样做的好处是可以利用rsyslog的强大功能,包括日志的集中管理、远程存储和灵活的日志处理规则。

    2024-01-26 08:48:21
    赞同 展开评论 打赏
  • envoy不支持这个,可以用一下云原生的一些日志收集方案 比如loki。此回答整理自钉群“Higress 社区交流 2 群”

    2024-01-24 17:53:49
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
基于日志trace的智能故障定位系统 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载