我正在使用Graylog2服务器作为我的应用程序日志服务器.但无法将apache日志连接到graylog2.是否有任何指南将apache日志发送到graylog2服务器或有人可以帮我解决这个问题?
刚开始进入Graylog2并希望通过GELF输入记录一些Java应用程序.因此我使用了库log4j2并添加了graylog2-gelfclient.所有依赖项都得到满足并且程序正在运行.但是我的Logmanager初始化会引发以下错误:
ERROR StatusLogger appenders contains an invalid element or attribute "GELF"
Run Code Online (Sandbox Code Playgroud)
我的代码只是将错误记录到记录器:
static final Logger logger = LogManager.getLogger(Application.class);
public static void main(String[] args) {
logger.error("This is an error log entry");
}
}
Run Code Online (Sandbox Code Playgroud)
我的log4j2.xml文件配置为使用GELF和GelfAppender:
<configuration status="OFF">
<appenders>
<GELF name="gelfAppender" server="192.168.1.1" port="12201" hostName="myhost"/>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="gelfAppender"/>
</root>
</loggers>
</configuration>
Run Code Online (Sandbox Code Playgroud)
有人熟悉这个问题吗?谢谢你的帮助.
我需要让我的Java应用程序将日志记录写入Graylog2服务器.该应用程序使用log4j配置.有几件事情我试图记录写入到该服务器Graylog2,我得到了工作直接发送测试信息到服务器的事情,如在这里(第一个例子).
然而,当我编写一个appender并将其附加到根记录器时,我总是在第一次触发日志事件时收到此错误消息:
log4j:错误无法发送GELF消息
在Graylog2服务器端没有任何事情发生.
我努力工作的appender:
<appender name="graylog2" class="org.graylog2.log.GelfAppender">
<param name="graylogHost" value="127.0.0.1"/>
<param name="originHost" value="my.machine.example.com"/>
<param name="extractStacktrace" value="true"/>
<param name="addExtendedInformation" value="true"/>
<param name="facility" value="gelf-java"/>
<param name="Threshold" value="INFO"/>
<param name="additionalFields" value="{'environment': 'DEV', 'application': 'MyAPP'}"/>
</appender>
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何运行?
任何帮助都非常感谢!
我们正在使用一些Graylog2服务器(graylog-server版本1.3.4).因为我们收到太多日志消息,所以需要大量内存.我正在尝试将日志保留时间减少到1周,每个超过1周的日志消息都将被删除.但是,我无法在配置文件中找到任何值来做到这一点.
我使用了"max_time_per_index = 7d"值,但max_time_per_index似乎只是定义了索引的年龄,直到它被旋转并且正在创建新索引,而不是该索引中的消息.
那么,将邮件保留时间设置为1周的最佳方法是什么?请帮我.非常感谢.
我有docker-compose.yaml如下
问题:我的问题是标准输出打印或写入它的日志出现在灰色日志中 - 但只是在命令 /usr/bin/tini 下的那些 - foo1.start。当我尝试使用以下
docker exec -it [container_hash] bash
命令进入服务的 docker 容器时:启动命令,例如 echo "Hello" 或运行我将在其中执行的 python 脚本import sys; sys.stdout.write("Hello again")--> 在 Graylog UI 中收到的消息中不会出现这些消息。
知道为什么没有通过在容器内执行 shell 命令或脚本来收集 stdout 吗?并且仅从作为 make file 命令的结果运行的内容中收集打印?
我不理解这种行为,因为我将所有标准输出通过管道传输到 docker-compose 中的 gelf 日志驱动程序。
编辑:如何在撰写中使用 graylog 的说明来自这里
version: '3.4'
services:
foo1:
ports:
- target: 8081
published: 8084
mode: host
networks:
- dev-net
command: make foo1.start
logging:
driver: gelf
options:
gelf-address: udp://localhost:12201
some-mongo:
image: "mongo:3"
networks:
- dev-net …Run Code Online (Sandbox Code Playgroud) 如何使用 PHP 从graylog 服务器搜索日志?
假设graylog服务器是https://host.td/api/search/universal/absolute
有没有办法在graylog2中进行搜索并且只返回给定字段的不同结果?我想要完成的是一个流或仪表板小部件,它将为我提供来自不同 IP 地址的 IIS 错误数量。
当使用 Gelf 记录器记录警报时,我收到此错误。
运行时异常
Failed to write to socket: fwrite(): send of 136 bytes failed with errno=111 Connection refused (8)
Run Code Online (Sandbox Code Playgroud)
代码
$transport = new UdpTransport("127.0.0.1", 6379, UdpTransport::CHUNK_SIZE_LAN);
$publisher = new Publisher();
$publisher->addTransport($transport);
$message = new \Gelf\Message();
$message->setShortMessage("Foobar!")
->setLevel(\Psr\Log\LogLevel::ALERT)
->setFullMessage("There was a foo in bar")
->setFacility("example-facility")
;
$publisher->publish($message);
$logger = new \Gelf\Logger($publisher, "example-facility");
$logger->alert("Foobaz!"); //getting error here
dd($logger);
Run Code Online (Sandbox Code Playgroud)
我正在这个端口上启动redis服务器6379。但不知道为什么我遇到 fwrite 问题。
在我的graylog服务器中,我想创建一个搜索值来查找以下查询:ctxt__Error:"User \"USERNAME\" not found."。但我想找到每个用户名的任何错误。当我这样做时,我的搜索字符串不起作用:ctxt__Error:"User \"*\" not found."
还有其他方法可以做到这一点吗?
我需要在我的数据中搜索,这是apache2日志,我需要所有请求的 URL 是这样的:
http://*&ucode=jn04
Run Code Online (Sandbox Code Playgroud)
它开始于http并结束于&ucode=jn04
我试过这个查询:
http_referer:"http*&ucode=jn04"
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它给了我所有以数字“4”结尾的 URL。
我正在使用 Graylog 2.4.6