运维驿站@IT·互联网程序员

自动化日志收集分析平台ELKstack

2016-08-16  本文已影响4383人  EC君_王磊

ELK-Stack简介

ELK是elasticsearch,logstash以及kibana的简称。
 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 大多数电商搜索都是基于lucene,百度早期,订单搜索,商品搜索等。 ES使用lucene作为核心,官网:www.elastic.co
 Logstash是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。在ELK场景下,用Elasticsearch作为后台数据的存储,kibana用来前端的报表展示。Logstash在其过程中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash提供了多种多样的 input,filters,codecs和output组件,让使用者轻松实现强大的功能。
 Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

ELKstack优点

  • 处理方式灵活:Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;

下面将分别对各个组件进行介绍


elasticsearch简介

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

elasticsearch几个重要术语

  • NRT elasticsearch:
    是一个近似实时的搜索平台,从索引文档到可搜索有些延迟,通常为1秒。

logstash简介

LogStash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。不同于分离的代理端(agent)或主机端(server),LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能。

logStash的四大组件

  • Shipper: 发送事件(events)至LogStash;通常,远程代理端(agent)只需要运行这个组件即可

LogStash主机分类

  • 代理主机(agent host):作为事件的传递者(shipper),将各种日志数据发送至中心主机,只需运行Logstash 代理(agent)程序。

Kibana简介

Kibana 也是一个开源和免费的工具,他可以帮助您汇总、分析和搜索重要数据日志并提供友好的web界面。他可以为 Logstash 和 ElasticSearch 提供的日志分析的 Web 界面,展示效果非常棒,也是我们日常见的最多的ELK组件。

使用ELK必要性(解决运维痛点)

  • 开发人员不能登录线上服务器查看详细日志,提取日志耗费工时。

OK:不要干,就是怂。Here we go!

</br>


安装前准备

关闭防火墙和selinux
本机系统:CentOS6.7
本机IP:
主192.168.56.11
 192.168.56.12
#PS:在es配置集群时可以添加多台主机,直接分片即可。

chkconfig ip6tables off
chkconfig iptables  off
/etc/init.d/iptables stop
#关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
关闭selinux

安装es

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

vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
#配置yum源

yum install -y elasticsearch
#yum安装es

安装logstash

vim /etc/yum.repos.d/logstash.repo
[logstash-2.1]
name=Logstash repository for 2.1.x packages
baseurl=http://packages.elastic.co/logstash/2.1/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
#配置yum源

yum install -y logstash
#yum安装logstash

安装JDK

mv jdk-7u79-linux-x64.tar.gz /usr/local/src/
#首先上传JDK到相应目录

cd /usr/local/src && tar zxf jdk-7u79-linux-x64.tar.gz && mv jdk1.7.0_79 /usr/local/jdk && chown -R root:root /usr/local/jdk

配置环境变量

vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使环境变量生效

source /etc/profile
java -version

安装Kibana

wget https://download.elastic.co/kibana/kibana/kibana-4.3.1-linux-x64.tar.gz
tar zxf kibana-4.3.1-linux-x64.tar.gz
mv kibana-4.3.1-linux-x64 /usr/local/
ln -s /usr/local/kibana-4.3.1-linux-x64/ /usr/local/kibana

配置es集群

[root@elk ~]# cd /etc/elasticsearch/
[root@elk elasticsearch]# vi elasticsearch.yml
##17 集群名称 #多台集群名称一样
##23 节点名称 #节点名称不同
##33 data路径
##37 日志路径
##43 启用不使用叫交换分区
##54 监听地址
##58 监听端口

以下为详细配置

[root@elk elasticsearch]# chown -R elasticsearch:elasticsearch /data/es-data/
[root@elk elasticsearch]# grep -n '^[a-Z]' elasticsearch.yml
17:cluster.name: elk-jy
23:node.name: elk-1
33:path.data: /data/es-data
37:path.logs: /var/log/elasticsearch/
43:bootstrap.mlockall: true
54:network.host: 0.0.0.0
58:http.port: 9200

启动es

[root@elk elasticsearch]# /etc/init.d/elasticsearch start

编写logstash配置文件

vim /etc/logstash/file.conf

input {
    file {
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
    }
}
output {
    elasticsearch {
        hosts => ["192.168.56.11:9200"]
        index => "system-%{+YYYY.MM.dd}"
    }
}
#具体文件写法下面会详细介绍

启动logstash

/opt/logstash/bin/logstash -f  /etc/logstash/file.conf

启动Kibana

/usr/local/kibana/bin/kibana

登录到Kibana

浏览器登录到:
http://192.168.56.11:5601/app/kibana#

Kibana页面

END.

OK今天就为大家介绍这么多了。
我是EC君,如果你喜欢我的文章,请帮忙点个关注!点个喜欢吧!
也可以点击作者信息,扫描微信二维码关注我的个人微信公众号。
你的鼓励将是我们共同进步的源泉。

上一篇 下一篇

猜你喜欢

热点阅读