AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 979959
Accepted
aspyct
aspyct
Asked: 2019-08-21 01:44:31 +0800 CST2019-08-21 01:44:31 +0800 CST 2019-08-21 01:44:31 +0800 CST

rsyslog:从环境变量中指定 `action` 参数

  • 772

我正在使用 rsyslog 将日志发送到 elasticsearch。这一切在我的本地环境中运行良好,但现在我正试图使其更通用并在需要的地方注入环境变量。

作为我的 rsyslog.conf 的一部分是这个 omelasticsearch 操作:

action(
    type="omelasticsearch"
    server=<somehow use $ES_HOST here>
    template="haproxy"
    bulkmode="on"
    searchIndex="haproxy-index"
    dynSearchIndex="on"
    usehttps="on"
    asyncrepl="on"
    uid=<somehow use $ES_USER here>
    pwd=<somehow use $ES_PASSWORD here>
)

我尝试使用getenv()和设置变量,但我找不到将所述变量注入到我的操作参数中的方法。

我错过了一些简单的事情,还是那不可行?

logging
  • 2 2 个回答
  • 1510 Views

2 个回答

  • Voted
  1. Best Answer
    aspyct
    2019-08-21T06:50:28+08:002019-08-21T06:50:28+08:00

    事实证明,您可以使用反引号从配置文件中取出。

    action(
        type="omelasticsearch"
        server=`echo $ES_HOST`
        template="haproxy"
        bulkmode="on"
        searchIndex="haproxy-index"
        dynSearchIndex="on"
        usehttps="on"
        uid=`echo $ES_USER`
        pwd=`echo $ES_PASSWORD`
    )
    
    • 1
  2. Datum Geek
    2020-08-05T10:35:22+08:002020-08-05T10:35:22+08:00

    您还可以在 rsyslog 模板中使用此技术将属性传递给您的弹性搜索索引,其环境变量值如下

    template(name="logfile" type="list") {
       constant(value="{")
    
       constant(value="\"@timestamp\":\"")     
       property(name="timegenerated" dateFormat="rfc3339")
       constant(value="\", ")
       
       constant(value="\"pod_namespace\":\"")     
       constant(value=`echo $KUB_POD_NAMESPACE`)
       constant(value="\", ")
       
       constant(value="\"pod_name\":\"")     
       constant(value=`echo $KUB_POD_NAME`)
       constant(value="\", ")
       
       constant(value="\"pod_ip\":\"")     
       constant(value=`echo $KUB_INSTANCE_ADDR`)
       constant(value="\", ")
       
       property(name="$!all-json" position.from="2")
    }
    
    • 0

相关问题

  • IIS 6 - 仅记录某些目录

  • 什么是好的日志查看器,例如 apache、postfix、syslog?

  • 如何提供可搜索的 IRC 日志?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve