使用Gelf进行Java GrayLog集成

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Gelf进行Java GrayLog集成相关的知识,希望对你有一定的参考价值。

我想通过使用“gelf”库在java中进行graylog集成。我添加了配置参数,以便将graylog服务器连接到“log4j_Appender.xml”

 <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="info" packages="org.graylog2.log4j2">
     <Appenders>
      <GELF name="gelfAppender" server="graylog.llm.com" port="12212" hostname="llmtest.llm.com" protocol="UDP" includeThreadContext="true">
       <KeyValuePair key="grayloggroup" value="LLMFIGHTTEST" />
       <KeyValuePair key="application" value="baggagebustest" />
       <KeyValuePair key="environment" value="baggagebustest" />

    <!--    <Filters> -->
    <!--     <Filter type="MakerFilter" marker="FLOW" onMatch="DENY" onMismatch="NEUTRAL"></Filter> -->
    <!--     <Filter type="MakerFilter" marker="EXCEPTION" onMatch="DENY" onMismatch="ACCEPT"></Filter> -->
    <!--    </Filters> -->
       <PatternLayout pattern="%m%n"/>
      </GELF>
     </Appenders>
     <Loggers>
      <Root level="info">
       <AppenderRef ref="gelfAppender" />
      </Root>
     </Loggers>
    </Configuration>

但是我无法连接到“graylog.llm.com”并且我没有在“LLMFIGHTTEST”流中添加日志。

我在github中使用this项目。

答案

我们应该在log4j.xml文件中使用add appender,并将依赖log4j2-gelf添加为maven依赖项。

Dependency,

<dependency> <groupId>org.graylog2.log4j2</groupId> <artifactId>log4j2-gelf</artifactId> <version>1.3.2-SNAPSHOT</version> </dependency>
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info" packages="org.graylog2.log4j2">
 <Appenders>
  <GELF name="gelfAppender" server="graylog.test.com" port="12212" hostname="test.th.com" protocol="UDP" includeThreadContext="true">

    <KeyValuePair key="ORDERID" value="$${ctx:ORDERID}"/>

   <Filters>
    <Filter type="MakerFilter" marker="PARENT" onMatch="DENY" onMismatch="NEUTRAL"></Filter>
    <Filter type="MakerFilter" marker="TEST" onMatch="DENY" onMismatch="ACCEPT"></Filter>
   </Filters>
  <PatternLayout pattern="ORDERID : $${ctx:ORDERID} %msg%n"  />

  </GELF>
  <Console name="STDOUT" target="SYSTEM_OUT">
   <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%thread] [%c{1.}] - %m%n" />
  </Console>
 </Appenders>
 <Loggers>
  <Root level="info">
   <AppenderRef ref="gelfAppender" />
   <AppenderRef ref="STDOUT" />
    <AppenderRef ref="Error-Appender" level="error"/>
  </Root>
 </Loggers>
</Configuration>

以上是关于使用Gelf进行Java GrayLog集成的主要内容,如果未能解决你的问题,请参考以下文章

graylog 客户端的安装配置

没有配置API令牌 - 启动graylog-sidecar时

公司使用graylog来收集Docker日志

Graylog处理docker容器的多行日志之过程记录

NXLog:GELF UDP 输出的 Json 输入

Graylog2 与 Symfony 2 (Monolog)