ELK日志分析之安装

1.介绍:

  • NRT 
    elasticsearch是一个近似实时的搜索平台,从索引文档到可搜索有些延迟,通常为1秒。
  • 集群 
    集群就是一个或多个节点存储数据,其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。集群有一个唯一性标示的名字,默认是elasticsearch,集群名字很重要,每个节点是基于集群名字加入到其集群中的。因此,确保在不同环境中使用不同的集群名字。一个集群可以只有一个节点。强烈建议在配置elasticsearch时,配置成集群模式。
  • 节点 
    节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。当然啦,你可以自己定义。该名字也蛮重要的,在集群中用于识别服务器对应的节点。 

         节点可以通过指定集群名字来加入到集群中。默认情况下,每个节点被设置成加入到elasticsearch集群。如果启动了多个节点,假设能自动发现对方,他们将会自动组建一个名为                             elasticsearch的集群。

  • 索引 
    索引是有几分相似属性的一系列文档的集合。如nginx日志索引、syslog索引等等。索引是由名字标识,名字必须全部小写。这个名字用来进行索引、搜索、更新和删除文档的操作。 
    索引相对于关系型数据库的库。
  • 类型 
    在一个索引中,可以定义一个或多个类型。类型是一个逻辑类别还是分区完全取决于你。通常情况下,一个类型被定于成具有一组共同字段的文档。如ttlsa运维生成时间所有的数据存入在一个单一的名为logstash-ttlsa的索引中,同时,定义了用户数据类型,帖子数据类型和评论类型。 
    类型相对于关系型数据库的表。
  • 文档 
    文档是信息的基本单元,可以被索引的。文档是以JSON格式表现的。 
    在类型中,可以根据需求存储多个文档。 
    虽然一个文档在物理上位于一个索引,实际上一个文档必须在一个索引内被索引和分配一个类型。 
    文档相对于关系型数据库的列。
  • 分片和副本 
    在实际情况下,索引存储的数据可能超过单个节点的硬件限制。如一个十亿文档需1TB空间可能不适合存储在单个节点的磁盘上,或者从单个节点搜索请求太慢了。为了解决这个问题,elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。 
    分片的两个最主要原因: 
    a、水平分割扩展,增大存储量 
    b、分布式并行跨分片操作,提高性能和吞吐量 
    分布式分片的机制和搜索请求的文档如何汇总完全是有elasticsearch控制的,这些对用户而言是透明的。 
    网络问题等等其它问题可以在任何时候不期而至,为了健壮性,强烈建议要有一个故障切换机制,无论何种故障以防止分片或者节点不可用。 
    为此,elasticsearch让我们将索引分片复制一份或多份,称之为分片副本或副本。 
    副本也有两个最主要原因: 
    高可用性,以应对分片或者节点故障。出于这个原因,分片副本要在不同的节点上。 
    提供性能,增大吞吐量,搜索可以并行在所有副本上执行。 
    总之,每一个索引可以被分成多个分片。索引也可以有0个或多个副本。复制后,每个索引都有主分片(母分片)和复制分片(复制于母分片)。分片和副本数量可以在每个索引被创建时定义。索引创建后,可以在任何时候动态的更改副本数量,但是,不能改变分片数。 
    默认情况下,elasticsearch为每个索引分片5个主分片和1个副本,这就意味着集群至少需要2个节点。索引将会有5个主分片和5个副本(1个完整副本),每个索引总共有10个分片。 
    每个elasticsearch分片是一个Lucene索引。一个单个Lucene索引有最大的文档数LUCENE-5843, 文档数限制为2147483519(MAX_VALUE – 128)。 可通过_cat/shards来监控分片大小。
  •  索引和类型的解释:

ELK 安装与配置

 

  • ELK的含义:

E: elasticsearch

  ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

  也就是将logstach收集上来的日志储存,建立索引(便于查找),搜索(提供web展示)

l:logstash

  收集日志

  数据源:各种log,文本,session,silk,snmp

k:kibana

  数据展示,web页面,可视化

  可以完成批量分析

  数据集之间关联

  产生图表

  报警 (python / R 语言 )

  ES python api的文档

  大量的查询或者过滤选项可以使用json 语法:
  任何周期都能查询

 

  •  ELK 关系:

LEK : logstatsh 收集日志,存到elasticserach (存储,产生索引,搜索) 到kibana展现(view)
 
 

2.安装

1、下载tar包直接解压(灵活)

2、配置yum源直接安装(方便)

服务器部署:

logstatsh : 部署在想收集日志的服务器上。

elasticsearch:主要是用于数据收集,索引,搜索提供展示,随意安装在那台服务器上都可以,重要的是es支持分布式,而且再大规模的日志分析中必须做分布式集群。这样可以跨节点索引和搜索。提高吞吐量与计算能力。

kibana:数据展示,部署在任意服务器上。

 

这里我们做实验使用的是两台服务器

node1.wawa.com : 192.168.31.179
node2.wawa.com : 192.168.31.205

a、准备环境:

  配置hosts两台服务器网络通畅  

  node1 安装es,node2安装es 做成集群,后期可能还会用到redis,redis提供的功能相当于kafka,收集logstatsh发来的数据,es从redis中提取数据。

  node1 安装kibana 做数据展示

  node2 安装logstatsh 做数据收集

  创建  elasticsearch 用户

b、安装:

  由于es logstatsh kibana基于java 开发,所以安装jdk ,jdk版本不要过低,否则会提醒升级jdk。

安装elasticsearch(node1,node2全都安装es)

下载并安装GPG key

2.x

[root@linux-node1 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

 

5.1

 

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

 

  

 

 

添加yum仓库 

[root@linux-node2 ~]# 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

 

 

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

 

 

es需要jdk8,但是由于服务器有的业务需要1.7,所以可以让两个共存  

 

 

 

安装elasticsearch

[root@hadoop-node2 ~]# yum install -y elasticsearch

 

问题:

阿里服务器下载和用yum安装由于链接是https的问题报错

增加yum 源报错

[root@szdz-SLAVE svr]# yum repolist
Loaded plugins: security
https://artifacts.elastic.co/packages/5.x/yum/repodata/repomd.xml: [Errno 14] PYCURL ERROR 51 - "SSL: certificate subject name 'server.co.com' does not match target host name 'artifacts.elastic.co'"
报错内容

相关文章: