使用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/