使用Kibana、Elasticsearch和Fluentd来可视化H2O的访问日志

首先

我开始做个人网站时,我希望能够可视化访问状态,例如集中在哪些页面上访问。所以我尝试了一下这个实践。

可以以什么方式进行可视化?

我們將在保持 Kibana 設置為預設的前提下繼續進行。

现在可以“看到”访问计数了。

スクリーンショット 2016-03-19 20.21.26.png

以上图表是从Kibana的示例仪表板中获取的。
通过fluentd的配置,我们现在可以实时地从访问日志中查看访问计数。
根据fluentd的配置,似乎还可以获取试图进行SSH的计数。

访问时间被可视化

スクリーンショット 2016-03-19 20.30.15.png

这里是可以通过Logstash仪表板确认的内容。您可以通过调整视图的间隔来缩小或扩大显示的日期时间范围。

访问用户信息被可视化。

スクリーンショット 2016-03-19 20.35.16.png

这些也可以在Logstash仪表板上进行查看,其中包括主机名和用户代理等进行图表化呈现。

使用过的软件和环境建设

    Kibana

根据JSON数据解析创建图表的软件很有多种用途。

安装

$ curl -L -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
$ tar zxvf kibana-3.1.0.tar.gz

为了查看Elasticsearch的信息,需要对解压后目录中的配置文件进行更改。

elasticsearch: "http://localhost:9200",

Kibana需要通过Web服务器启动,因为它是一个基于Web的图形用户界面。请将解压的目录指定为文档根目录,然后启动服务器。

H2O的Web服务器设置。

hosts:
 "example.com":
    listen: 10090
    paths:
        /:
         file.dir: /root/kibana-3.1.0

access-log: /root/kibanaaccess-log
error-log: /root/kibanaerror-log
pid-file: /root/kibanapid-file

不要忘记iptables的端口设置。

    Elasticsearch

提供RESTful API的软件
现在的工作是将访问日志转换为JSON格式,作为在Kibana中查看的连接工具。
需要注意的是,Elasticsearch需要Java支持。

进行yum存储库的添加安装

[elasticsearch-1.1]
name=Elasticsearch repository for 1.1.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.1/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
yum install elasticsearch

启动Elasticsearch

service elasticsearch start
    Fluentd

观察所有事件和更改并传输信息的软件,用于将日志信息反映到Elasticsearch中。
fluentd提供了各种插件,可以通过gem获取。
为了使用gem,必须安装Ruby。

安装

$ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
# fluentdのプラグインをインストール
$ td-agent-gem install fluent-plugin-elasticsearch

安装后,需要编辑fluentd的配置文件。
关于配置文件选项的详细内容将在后续的日志中提供。

<source>
  type tail    
  format apache    # H2Oのアクセスログがapacheと似ていたためapacheで設定
  path /root/access.log    # H2Oで出力されているアクセスログファイル
  pos_file /var/log/td-agent/access.pos
  tag h2o.access
</source>

<match h2o.access>
  type elasticsearch
  host localhost
  port 9200    # デフォルトではElasticsearchが9200で起動している
  type_name h2o_access
  logstash_format true
</match>

启动Fluentd

service td-agent start

如果td-agent启动失败,则请参考/var/log/td-agent/td-agent.log。

参考网站

    • CentOS 6.5 (Vagrant)に fluentd + elasticsearch + kibana をセットアップする | もふもふ技術部

 

    fluentd × Elasticsearch × kibanaによるアクセスログ解析
广告
将在 10 秒后关闭
bannerAds