使用Kibana、Elasticsearch和Fluentd来可视化H2O的访问日志
首先
我开始做个人网站时,我希望能够可视化访问状态,例如集中在哪些页面上访问。所以我尝试了一下这个实践。
可以以什么方式进行可视化?
我們將在保持 Kibana 設置為預設的前提下繼續進行。
现在可以“看到”访问计数了。

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

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

这些也可以在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によるアクセスログ解析