使用Fluentd × ElasticSearch × Kibana进行准备,以解析ELB的访问日志

简洁概述

因为我已经确认了在2015年10月25日的时候各种最新版本的安装步骤,所以我做了个备忘录。
作为一个试用,我将在一个EC2实例上安装。

关于环境

操作系统

亚马逊的Linux操作系统版本为2015.09

中等

我們將使用yum來安裝。而且,為了對Kibana進行基本身份驗證,我們將使用nginx。
(Please note that there are slight differences in the word order when translating to Chinese. This translation may vary depending on the specific context.)

td-agent-2.2.1-0.el2015.x86_64
elasticsearch-1.7.3-1.noarch
kibana-4.1.1-1.x86_64
nginx-1.8.0-10.25.amzn1.x86_64

流畅的日志收集插件

fluent-plugin-elasticsearch (1.1.0)
fluent-plugin-elb-log (0.2.5)

AWS的设置

导出ELB的访问日志。

EC2 > 负载均衡器 > [目标ELB] > 描述
选择编辑访问日志以进行修改

日志输出间隔设置为5分钟。
此外,本次设置将使用以下存储桶和前缀作为示例来配置td-agent.conf。

s3://example-bucket/example-elb 

创建一个只读用户S3用户

为了让Fluentd引用S3而创建的。

具体来说,可以像下面这样创建。
http://dev.classmethod.jp/etc/create_readonly_iamuser/

记住 access_Key 和 secret_key。

安裝各種程式

安装ElasticSearch。

通过使用yum安装

导入GPG密钥

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

添加存储库

打开/etc/yum.repos.d/elasticsearch.repo这个文件,使用vim编辑器。

[elasticsearch-1.7]
name=Elasticsearch repository for 1.7.x packages
baseurl=http://packages.elastic.co/elasticsearch/1.7/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

安装

yum install elasticsearch
service elasticsearch start
chkconfgi elasticsearch on

安装 Kibana。

使用yum进行安装。此外,使用nginx作为反向代理将TCP:80传递给kibana(localhost:5601)。

设置yum仓库

打开”/etc/yum.repos.d/kibana.repo”文件,使用vi编辑器。

[kibana-4.1]
name=Kibana repository for 4.1.x packages
baseurl=http://packages.elastic.co/kibana/4.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

安装 Kibana

yum install -y kibana

修改Kibana配置并启动。

打开 /opt/kibana/config/kibana.yml 文件。

# The host to bind the server to.
host: "localhost"
service kibana start
chkconfg kibana on

安装nginx

yum install nginx http-tools

基本认证设置

tpasswd -c /etc/nginx/htpasswd.users kibanaadmin
<任意のパスワード入力>

编辑nginx.conf

将默认设置的 server 块注释掉。

打开/etc/nginx/nginx.conf文件。

把以下内容进行简明扼要的概括。

提交用于Kibana的反向代理配置。

打开位于 /etc/nginx/conf.d/kibana.conf 的文件。

server {
    listen 80;

    server_name example.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;        
    }
}
service nginx start
chkconfig nginx on

请在http://<服务器IP>上进行连接,并检查是否可以使用基本认证登录到Kibana。

td-agent2为一个流行的日志收集和传输工具。

安装

curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

请安装 fluent-plugin。

/opt/td-agent/usr/sbin/td-agent-gem install fluent-plugin-elasticsearch
/opt/td-agent/usr/sbin/td-agent-gem install fluent-plugin-elb-log

编辑td-agent.conf文件

指定s3只读用户的access_key和secret_key。

打开 /etc/td-agent/td-agent.conf 这个文件,使用 Vim 编辑器。

<source>
  type elb_log
  region             ap-northeast-1
  s3_bucketname      example-bucket
  s3_prefix          example-elb
  timestamp_file     /tmp/elb_last_at.dat
  buf_file           /tmp/fluentd-elblog.tmpfile
  refresh_interval   300
  tag                elb.access
  access_key_id      <acees_key>
  secret_access_key  <secret_key>
</source>

<match elb.access>
  type elasticsearch
  type_name access_log
  host localhost
  port 9200
  logstash_format true
  include_tag_key true
  tag_key @log_name
</match>

开机

service td-agent start
chkconfig td-agent on

Kibana的初始配置

在设置中选择”索引”
在显示为”配置索引模式”的页面上
选择时间字段名称=时间,然后点击创建

只需等待ELB日志输出和Fluentd传输即可。

请下列内容使用中文进行同义改写,仅提供一种表达方式:

参考来源

    • http://www.denet.ad.jp/technology/2014/04/vol11-elbfluentdelasticsearchkibana.html

 

    • https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-centos-7

 

    • https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html

 

    http://dev.classmethod.jp/cloud/td-agent2-amazon-linux/
广告
将在 10 秒后关闭
bannerAds