帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Server  Syslog  搜索  SYS  生成  
A Syslog server with built-in search

  • 源代码名称:ekanite
  • 源代码网址:http://www.github.com/ekanite/ekanite
  • ekanite源代码文档
  • ekanite源代码下载
  • Git URL:
    git://www.github.com/ekanite/ekanite.git
  • Git Clone代码到本地:
    git clone http://www.github.com/ekanite/ekanite
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/ekanite/ekanite
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 接下来,为了详细了解这个项目的目标。设计和实现,请查看这些博客文章的

    Ekanite Circle CIGoDocGo Report CardRelease

    Ekanite 是一个高性能的系统日志服务器,内置了文本搜索功能。 它的目标是做几件事,并且让--在网络上接受日志消息,并且很容易搜索消息。 它缺少的特性,在焦点上弥补了。 内置了 ,它没有外部依赖,这使得部署变得容易。

    功能包括:

    • 支持通过TLS通过 UDP 。TCP和TCP接收日志消息。
    • 所有接收到的日志消息的全文搜索。
    • RFC5424 标头的完整解析。
    • 如果有可用的时间戳,日志消息将通过分析的时间戳进行索引。 这意味着搜索结果按照消息发生的顺序显示,而不是按照接收的顺序显示。
    • 自动数据保留管理。Ekanite删除超过可以配置时间段的索引日志数据。
    • 不是一个 JVM 。

    搜索是使用 bleve插件搜索库实现的。 对于bleve的一些性能分析,以及Ekanite使用的切分技术,请查看本文的

    正在启动

    在OSX和Linux上运行最快的方法是下载预先构建的发布二进制文件。 你可以在 Github发布页面中找到这些二进制文件。 安装后,你可以像这样启动 Ekanite:

    ekanited -datadir ~/ekanite_data # Or any directory of your choice.

    要查看所有Ekanite选项,请在 命令行 上传递 -h

    如果你想要构建 Ekanite,或者因为你想要最新的代码或者为平台生成的二进制文件,请查看 CONTRIBUTING.md 命令。

    将日志发送到 Ekanite

    现在,为了让Ekanite接受日志,必须配置系统日志客户端,使日志行符合 RFC5424,并按以下格式进行:

    <PRI>VERSION TIMESTAMP HOSTNAME APP-NAME PROC-ID MSGID MSG"

    请查阅RFC以了解这些字段是什么。 时间戳字段必须是 RFC3339格式的格式。 这两种方法都可以支持模板,使这些程序正确地格式化日志并将日志传送到 Ekanite 。 这两个系统的模板和安装说明如下。

    # Send messages to Ekanite over TCP using the template. Assumes Ekanite is listening on 127.0.0.1:5514
    $template Ekanite,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% - %msg%n"
    *.* @@127.0.0.1:5514;Ekanite

    将这里模板添加到 /etc/rsyslog.d/23-ekanite.conf,然后使用命令重新启动 rsyslog sudo service rsyslog restart

    source s_ekanite {
     system(); # Check which OS & collect system logs
     internal(); # Collect syslog-ng logs
    };
    template Ekanite { template("<${PRI}>1 ${ISODATE} ${HOST} ${PROGRAM} ${PID} - $MSGn"); template_escape(no) };
    destination d_ekanite {
     tcp("127.0.0.1" port(5514) template(Ekanite));
    };
    log {
     source(s_ekanite);
     destination(d_ekanite);
    };

    将这里模板添加到 /etc/syslog-ng/syslog-ng.conf,然后使用命令 /etc/init.d/syslog-ng restart 重新启动 syslog-ng 。

    使用这些更改,rsyslog或者syslog将继续向任何现有目标发送日志,并将日志转发到 Ekanite 。

    搜索日志

    目前搜索支持相当简单。 你有两个选项--一个简单的telnet接口和一个基于浏览器的界面。

    Telnet接口

    Telnet到查询服务器( 。查看 命令行 选项) 并输入搜索项。 支持的查询语言是 bleve 支持的简单语言,但更多sophisiticated查询语法,包括搜索特定字段值,可能很快就会支持。

    例如下面是一个搜索会话,显示了对Wordpress站点登录URL的访问。 telnet客户端连接到查询服务器并输入字符串 login

    $ telnet 127.0.0.1 9950
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    login
    <134>0 2015-05-05T23:50:17.025568+00:00 fisher apache-access - - 65.98.59.154 - - [05/May/2015:23:50:12 +0000]"GET/wp-login.php HTTP/1.0" 200 206"-""-"
    <134>0 2015-05-06T01:24:41.232890+00:00 fisher apache-access - - 104.140.83.221 - - [06/May/2015:01:24:40 +0000]"GET/wp-login.php?action=register HTTP/1.0" 200 206"http://www.philipotoole.com/""Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17"
    <134>0 2015-05-06T01:24:41.232895+00:00 fisher apache-access - - 104.140.83.221 - - [06/May/2015:01:24:40 +0000]"GET/wp-login.php?action=register HTTP/1.1" 200 243"http://www.philipotoole.com/wp-login.php?action=register""Opera/9.80 (Windows NT 6.2; Win64; x64) Presto/2.12.388 Version/12.17"
    <134>0 2015-05-06T02:47:54.612953+00:00 fisher apache-access - - 184.68.20.22 - - [06/May/2015:02:47:51 +0000]"GET/wp-login.php HTTP/1.1" 200 243"-""Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17"
    <134>0 2015-05-06T04:20:49.008609+00:00 fisher apache-access - - 193.104.41.186 - - [06/May/2015:04:20:46 +0000]"POST/wp-login.php HTTP/1.1" 200 206"-""Opera 10.00"

    你可能只希望搜索对该URL的POST 访问:

    login -GET
    <134>0 2015-05-06T04:20:49.008609+00:00 fisher apache-access - - 193.104.41.186 - - [06/May/2015:04:20:46 +0000]"POST/wp-login.php HTTP/1.1" 200 206"-""Opera 10.00"

    一个更复杂的客户计划计划。

    浏览器接口

    基于浏览器的界面也接受bleve样式查询,与在 Telnet中描述的相同。 默认情况下,浏览器界面在 http://localhost:8080 可用。 下面显示了一个示例会话。

    Data Diagram

    诊断

    提供基本统计和诊断功能。 访问 http://localhost:9951/debug/vars 以检索这里信息。 主机和端口可以通过 -diag 命令行选项进行更改。

    项目状态

    项目是积极开发的,并且是早期的软件--捐赠形式的Bug 报告和请求请求。 在性能和扩展方面仍然有很多工作,你可以查看的问题,以获得更多细节。



    文章标签:Server  SYS  搜索  生成  Syslog  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语