我对如何将日志条目直接放入elasticsearch
(而不是logstash)感到有些困惑。到目前为止,我发现了一些附加目的地(log4j.appender.SocketAppender
,log4j.appender.server
等等),允许将日志发送到远程主机,也ConversionPattern
可能这似乎让我们日志转换为“弹性友好”的格式,但这种方法看起来古怪......还是我错误?这是将日志发送到的一种方法elastic
吗?
到目前为止,我有这样的配置:
log4j.rootLogger=DEBUG, server
log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=9200
log4j.appender.server.RemoteHost=localhost
log4j.appender.server.ReconnectionDelay=10000
log4j.appender.server.layout.ConversionPattern={"debug_level":"%p","debug_timestamp":"%d{ISO8601}","debug_thread":"%t","debug_file":"%F", "debug_line":"%L","debug_message":"%m"}%n
但是我得到一个错误:
log4j:WARN Detected problem with connection: java.net.SocketException: Broken pipe (Write failed)
我找不到任何有用的示例,所以我无法理解我该怎么做以及如何解决。谢谢。
我找到了最符合我要求的解决方案。这是一个灰色日志。由于它是根据elasticsearch
用法构建的,所以我能够立即切换到它。
为了使用它,我添加了此依赖项以及基本的log4j2依赖项:
<dependency>
<groupId>org.graylog2.log4j2</groupId>
<artifactId>log4j2-gelf</artifactId>
<version>1.3.2</version>
</dependency>
并使用log4j2.json
配置:
{
"configuration": {
"status": "info",
"name": "LOGGER",
"packages": "org.graylog2.log4j2",
"appenders": {
"GELF": {
"name": "GELF",
"server": "log.myapp.com",
"port": "12201",
"hostName": "my-awsome-app",
"JSONLayout": {
"compact": "false",
"locationInfo": "true",
"complete": "true",
"eventEol": "true",
"properties": "true",
"propertiesAsList": "true"
},
"ThresholdFilter": {
"level": "info"
}
}
},
"loggers": {
"logger": [
{
"name": "io.netty",
"level": "info",
"additivity": "false",
"AppenderRef": {
"ref": "GELF"
}
}
],
"root": {
"level": "info",
"AppenderRef": [
{
"ref": "GELF"
}
]
}
}
}
}
我知道有很多关于这个的问题,但是我确实经历了所有的问题,并且有点困惑自己,我列出了我遵循的步骤,请让我知道我把它搞砸了。 1) 我只想在应用程序级别使用Log4j,所以需要复制WL_HOME/server/lib/wllog4j。jar和log4j。jar在Domail_Home/Lib? 2) 我使用的是Maven,我在pom中添加了Log4j依赖项。xml[war]。我把战争藏在耳朵里。 3)
我已经以域模式格式配置了我的WildFly 18服务器,我们使用log4j记录器。当我签入服务器时。日志文件,所有来自log4j的日志都以wildfly自己的日志格式记录。如下面第1行所示,第一个日期和日志级别来自服务器日志,下一个日期格式和日志级别以及日志消息来自log4j。 我搜索了很多...我发现了很多与独立模式相关的配置,有些人说这些配置可以在domain.xml中完成,但都不起作用 我在
我计划用log4j one替换旧的记录器。我需要创建继承Logger的新类LocalLogger,而不是直接使用Logger。这样做的原因-我需要旧记录器中可用的新日志方法名称。 我有log4j记录器: 如何以与Logger相同的方式实现LocalLogger的功能? 如何将c类传递给超级本地记录器? LocalLogger的草稿:
当我调用服务在日志文件中获取此信息消息时,它工作正常,但将此消息写入日志文件: php.INFO:User Deprecated:The“logger”服务是私有的,从容器中获取它是不推荐的,因为Symfony 3.2,并且将在4.0中失败。您应该公开服务,或者停止直接使用容器,改用依赖项注入。{“异常”:“[object](ErrorException(代码:0):用户已弃用:记录器\”\“服务
我的elasticsearch服务器运行时有索引,比如说服务器XX。XXX。XXX。XXX:9200。 我在服务器ES集群XX中有索引。XXX。XXX。XXX:9200,我正试图在本地主机5601(Kibana)中为其创建仪表盘 在我的kibana.yml我有这样的配置: 在弹性搜索中。yml我有这个配置: 但我在运行kibana时遇到了这个错误。yml: 连接ECONNREFUSED超文本传输协
我正在运行Docker容器,其中运行一个jar文件。 此jar文件需要访问Elasticsearch以读取数据,并且此Elasticsearch服务安装在本地计算机上(不在Docker容器中) 我需要从Docker容器连接到本地Elasticsearch服务以使其正常工作 我在Dockerfile中写了EXPOSE 9200 9300 service-port,我的Docker run命令如下,