搭建ELK(Elasticsearch + Logstash + Kibana)日志分析平台
2016-05-27 09:25
465 查看
前言
Elasticsearch + Logstash + Kibana(ELK)是一套开源的日志管理方案,含括了日志的收集、分析和展示,常用于网站的访问日志、数据库日志或后台服务的日志收集和分析。
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
logstash是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。
Kibana是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。
服务端部署
安装JAVAyum install java-1.8.0-openjdk export JAVA_HOME=/usr/java
安装Redis
下载安装
wget http://download.redis.io/releases/redis-3.2.0.tar.gz tar xzf redis-3.2.0.tar.gz cd redis-3.2.0 make make install cp redis.conf /etc/
启动redis
nohup redis-server /etc/redis.conf &
安装Elasticsearch
下载安装
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.noarch.rpm yum localinstall elasticsearch-1.7.1.noarch.rpm
启动服务
service elasticsearch start
测试访问
curl -X GET http://localhost:9200/[/code]
安装Kibana
下载安装wget https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz tar xzf kibana-4.5.1-linux-x64.tar.gz
启动服务,在安装目录里运行:bin/kibana
注:默认配置下,Kibana会访问localhost的Elasticsearch,如果要连接其他Elasticsearch实列,请修改Kibana.yml里的Elasticsearch地址。
安装 Logstash
下载安装wget https://download.elastic.co/logstash/logstash/logstash-1.5.1.tar.gz tar zxvf logstash-1.5.1.tar.gz
新建配置文件vi /etc/logstash-index.confinput { redis { host => "127.0.0.1" port => "6379" data_type => "list" key => "logstash" codec => json } } output { elasticsearch { host => "127.0.0.1" index => "logstash-%{+YYYY.MM.dd}-%{type}" } <span">}
启动服务nohup bin/logstash -w 8 -f /etc/logstash-index.conf > /soft/logstash-1.5.1/log_index.txt 2>&1 &安装java、Logstash
客户端配置
使用nginx日志收集做参考,新建配置vi /etc/logstash-agent-nginx.confinput { file { type => "nginx-access" path => "/usr/local/nginx/logs/access.log" } } filter { grok { type => "nginx-access" pattern => "%{IPORHOST:source_ip} - %{USERNAME:remote_user} \ [%{HTTPDATE:timestamp}\] %{QS:request} %{INT:status} %{INT:body_bytes_sent} %{QS:http_referer} %{QS:http_user_agent} %{NUMBER:request_time:float}" } date { type => "nginx-access" locale => en match => [ "timestamp" , "dd/MMM/YYYY:HH:mm:ss Z" ] } geoip { type => "nginx-access" source => "source_ip" } } output { redis{ host =>"127.0.0.1" data_type => "list" key => "logstash" } }
修改nginx配置vi /usr/local/nginx/conf/nginx.conflog_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" $request_time';在浏览器中访问Kibana的地址,如http://localhost:5601
使用
配置Elasticsearch索引的index pattern,你可以选择默认的logstash-* 作为index pattern,也可以使用本文当中日志指定的类型 logstash-*-{type},这样的话就可以区分不同类型的日志了。
选择一个包含时间戳的字段
点击 Create 添加index pattern,此时便可以在页面的Discover标签页看到日志数据
Discover标签页
Discover的功能是用于查看日志数据,在这里你可以很方便地根据索引、时间和具体的过滤项找到你想到的数据,还可以看到每条记录的详细信息和字段的数据统计情况。同时,你可以保存当前的搜索条件,可以用作可视化或是下次查看时直接打开。
(点击图片查看大图)
Visualize标签页
Visualize的功能是把数据可视化,在这里Kibana提供了多种的可视化类型供选择,可以根据不同的数据源、不同的需求选择不同的可视化类型,它的数据来源可以是以下几种:
一个已保存的搜索
一个已保存的可视化实列
一个新的搜索
(点击图片查看大图)
DashBoard标签页
DashBoard是把多个可视化组件整合在一起的页面,这样你就可以很直观地看到不同数据间的关联。
(点击图片查看大图)日志收集和管理
ELK在运维系统中的应用
故障排查
异常监控,如服务器监控、应用监控和错误报警等
数据分析,如性能分析、用户行为分析等
相关文章推荐
- 巧用mysql提示符prompt清晰管理数据库的方法
- 两大步骤教您开启MySQL 数据库远程登陆帐号的方法
- phpmyadmin 4+ 访问慢的解决方法
- linux系统下实现mysql热备份详细步骤(mysql主从复制)
- CentOS 5.5下安装MySQL 5.5全过程分享
- MySQL复制的概述、安装、故障、技巧、工具(火丁分享)
- MySQL中删除重复数据的简单方法
- 使用ElasticSearch6.0快速实现全文搜索功能的示例代码
- elasticsearch批量数据导入和导出
- 使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务
- ElasticSearch 使用心得
- ES中如何使用逗号来分词
- ElasticSearch 守护进程 JSW
- Elasticsearch2.2.0数据操作
- Elasticsearch2.2.0安装ik中文分词
- Elasticsearch2.2.0安装pinyin插件
- ElasticSearch简单介绍
- #研发解决方案#基于Apriori算法的Nginx+Lua+ELK异常流量拦截方案
- 将redis加入到elk日志系统里