我是graylog2的新手.我安装了graylog2和web界面.我从其他服务器获取TCP syslog到graylog服务器.但是我无法将Rails日志从其他服务器发送到Graylog.
在graylog服务器中,我正在侦听端口12201的GELF HTTP日志,并且所有必需的端口都是打开的.但我没有得到graylog服务器的任何输入.我已将Rails记录器配置如下:
#config/environments/staging.rb
config.lograge.enabled = true
config.lograge.log_format = :graylog2
config.logger = GELF::Logger.new("graylogserverexample.com",
12201, "WAN",{
:host => "hostname",
:facility => "railslog"})
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我正在尝试设置GrayLog2服务器,需要使用GELF HTTP输入监听器.我做了一个小型的C#控制台程序,它将测试日志发送到服务器.然而,似乎只有几条消息实际上是由gl2解析的,我无法弄清楚为什么.例如,以下程序应创建5个日志pr.第二.无论运行多长时间,Gl2总共可以获得1或2个日志.有没有人成功使用GELF HTTP输入,我在这里缺少什么?
do
{
var client = new RestClient("http://10.8.0.39:12201");
var request = new RestRequest("gelf", Method.POST);
request.RequestFormat = DataFormat.Json;
var glog2 = new GLogEntry
{
host = "example.org",
short_message = "Short message...",
};
request.AddBody(glog2);
client.ExecuteAsync(request, r => { });
Thread.Sleep(200);
} while (1 == 1);
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的本地开发机器上安装graylog2服务器并遇到弹性搜索设置问题.
我的elasticsearch作为服务安装在我的开发机器上运行的vagrant机器上.所以我的弹性搜索没有安装在127.0.0.1中,而是安装在192.168.50.4(流浪汉机器的ip)中我从流浪汉机器转发了端口9200,但是graylog2服务器似乎无法找到它并停止运行:
错误:无法成功连接到ElasticSearch.检查您的群集状态是否为RED并且ElasticSearch是否正常运行.
添加从vagrant机器转发的端口9300将错误更改为:
引起:org.elasticsearch.common.netty.channel.ChannelException:无法绑定到:0.0.0.0/0.0.0.0:9350
我在graylog conf文件中尝试了这个设置:
elasticsearch_network_host = 192.168.50.4但只会将错误更改为无法绑定的异常
引起:org.elasticsearch.common.netty.channel.ChannelException:无法绑定到:/192.168.50.4:9350 org.elasticsearch.common.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:272)
但没有帮助.
我会很高兴任何方向我做错了(使用弹性搜索配置或流浪汉或graylog2)
谢谢!
通过以下答案更新以下建议我更改了以下配置:
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.50.4:9300
Run Code Online (Sandbox Code Playgroud)
我现在得到这个错误:
2014-06-16 23:04:34,946 WARN : org.elasticsearch.transport.netty - [graylog2-server] Message not fully read (response) for [6] handler org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing$4@67bd250a, error [true], resetting
2014-06-16 23:04:36,451 WARN : org.elasticsearch.discovery.zen.ping.unicast - [graylog2-server] failed to send ping to [[#zen_unicast_1#][inet[/192.168.50.4:9300]]]
org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
Caused by: org.elasticsearch.transport.TransportSerializationException: Failed to deserialize exception response from stream
at org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:169)
at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:123)
at …Run Code Online (Sandbox Code Playgroud) 我将Drupal中的数据存储到syslog中,然后存储到Graylog中.我想根据它们的严重程度找到所有消息(Graylog似乎称之为级别).
这是显示"级别"字段的一些消息的屏幕截图.这些都恰好是通知,但我输入的搜索是在消息字段中找到"通知"一词,而不是在"级别"字段中.

我一直在安装最新版本的Docker(1.8).这个新版本很棒,因为你可以设置一个特定的日志驱动程序来将日志发送到Graylog2(例如).
这是来自 docker 的博客文章:Docker博客宣布1.8这里是graylog团队博客,以实现神奇的发生:Graylog blog
我的问题是它不起作用:(
这是我在执行此命令时收到的错误消息:
docker run –log-driver=gelf –log-opt gelf-address=udp://127.0.0.1:12201 busybox echo Hello Graylog
Run Code Online (Sandbox Code Playgroud)
错误:
Unable to find image '–log-driver=gelf:latest' locally repository name component must match "[a-z0-9]+(?:[._-][a-z0-9]+)*"
Run Code Online (Sandbox Code Playgroud)
这是一个截图:
任何的想法 ?
编辑
遵循聪明人的建议:看起来破折号不是好的.
这是正确命令的粘贴:
docker run --log-driver=gelf --log-opt gelf-address=udp://127.0.0.1:12201 busybox echo Hello Graylog
Run Code Online (Sandbox Code Playgroud) 我有一个简单的请求日志,其中每个记录在exec_time属性下具有以秒为单位的执行时间.它应该始终是一个数字(越低越好).基于该属性,我有仪表板小部件,显示其平均值,直到最近才工作正常.现在它显示了NaN.
我的猜测是,有一个或多个记录exec_time不是数字.我怎样才能找到这些记录?
我有一台运行了一段时间的Graylog 2.1服务器.我最近没有注意到我的保留率,今天早上来到Graylog部分崩溃是因为磁盘空间不足.Elasticsearch Shards目前正在占用近100%的磁盘空间.对于Graylog Web界面是不是目前它在状态下使用.我尝试了一些标准的Ubuntu技巧为释放磁盘空间一样apt-get autoremove和clean,但未能获得足以让Web界面功能.
问题是我目前可以通过Web界面找到更改保留率和循环分片的所有文档.Graylog配置文件中不再显示唯一的配置选项.
有没有人知道手动,CLI,从Graylog 2.1中的Elasticsearch Shards中清除数据的方法?
我正在尝试使用log4j附加程序将日志发送到GrayLog2(log4j2-gelf)。因此,我将我的依赖项添加到pom.xmlconfigure中log4j2.xml以配置我的附加程序。用maven编译整个程序并将其部署到本地tomcat,一切正常。当我尝试关闭tomcat时,会发生问题。如果我不使用Tomcat,Tomcat不会停止运行kill -9 PID,catalina.out最终结果是:完整的堆栈跟踪
引起我注意的是
java.lang.NoClassDefFoundError:io / netty / util / concurrent / DefaultPromise $ 1
首先,我认为我可能还有另一个依赖项导入netty,这将导致此异常。但是我已经找了一段时间,却找不到其他进口商品。然后我看到了:
原因:java.lang.ClassNotFoundException:非法访问:此Web应用程序实例已被停止。无法加载[io.netty.buffer.PoolArena $ 1]。出于调试目的以及试图终止导致非法访问的线程,将抛出以下堆栈跟踪。
这就是我要问的问题。我的理解是,gelf-appender使用Netty作为与GrayLog服务器异步通信的一种方式。但这是服务器本身。那么Tomcat是否有可能在杀死底层Netty之前停止了父Servlet?哪个会导致这个问题?我正在尝试查找有关Tomcat关闭的方法的文档,但是到目前为止,我什么也没找到,而且我在诊断方面完全错了……
我们有一个日志记录流,其中我们的 java 应用程序填充 MDC,该 MDC 通过 log4j2 传输到 syslog 到中央 rsyslog 安装。在这里,我们广泛使用了 MDC。我们的设置是这样的:
<Syslog name="syslog" format="RFC5424" host="localhost" port="514" protocol="UDP"
appName="messaging_platform.${application}" mdcId="mdc" includeMDC="true" facility="LOCAL5" connectTimeoutMillis="100" ignoreExceptions="false">
<LoggerFields>
<KeyValuePair key="class" value="%c"/>
<KeyValuePair key="classname" value="%c{1}"/>
<KeyValuePair key="exception" value="%ex{full}"/>
<KeyValuePair key="method" value="%method"/>
<KeyValuePair key="line" value="%line"/>
<KeyValuePair key="application_name" value="${application}"/>
<KeyValuePair key="sequenceNumber" value="%sequenceNumber"/>
<KeyValuePair key="application_version" value="${application.version}"/>
<KeyValuePair key="marker" value="%marker"/>
<KeyValuePair key="thread" value="%thread"/>
<KeyValuePair key="system_nano_time" value="%nano"/>
<KeyValuePair key="app_uptime" value="%relative"/>
</LoggerFields>
</Syslog>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其转换为使用 graylog,似乎 GELF 是推荐的传输协议。我找到了多个库来做到这一点,并从GelfLayoutlog4j2 的内置开始。但那不支持LoggerFields。
那么将这些字段放入 Graylog 的推荐方法是什么?如果我做
<Socket name="Graylog" protocol="udp" host="localhost" …Run Code Online (Sandbox Code Playgroud) 是否可以使用Quickfilter在Graylog2中搜索完整的消息?
我可以成功搜索短消息,但似乎只能使用流来过滤完整消息.
我需要过滤旧的完整消息,新流仅应用于新消息.有没有解决这个问题的方法?