huazhi 发表于 2019-1-28 09:49:23

elk集群安装配置详解

  #一:简介
  

  ```
  Elasticsearch作为日志的存储和索引平台;
  Kibana 用来从 Elasticsearch获取数据,进行数据可视化,定制数据报表;
  Logstash 依靠强大繁多的插件作为日志加工平台;
  Filebeat 用来放到各个主机中收集指定位置的日志,将收集到日志发送到 Logstash;
  Log4j 直接与 Logstash 连接,将日志直接
  Logstash(当然此处也可以用 Filebeat 收集 tomcat 的日志)。
  ```
  

  ####port
  

  ```
  Elasticsearch
  9200:对外提供服务的 HTTP 端口
  9300:作为交互的 TCP 端口
  

  Logstash
  5000: Logstash TCP input
  5044:用于接收来着 Filebeat 收集的日志数据
  4569:用于接收来着 Log4j 的日志数据
  8080:用于接收来自插件 Logstash-input-http 的日志数据
  

  Kibana
  5601 端口用于 Kibana的界面
  ```
  ####安装环境介绍:
  

  

  ```
  - 系统版本
  more /etc/redhat-release
  CentOS Linux release 7.2.1511 (Core)
  

  - 系统内核
  uname -a
  Linux yunwei-ts-100-71 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
  

  - java 版本
  java -version
  openjdk version "1.8.0_101"
  OpenJDK Runtime Environment (build 1.8.0_101-b13)
  OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
  

  

  - 如果版本过低,或者没有安装执行命令如下:
  yum installjava-1.8.0-*
  注意: Logstash需要Java 8或更高版本.可以使用
  http://www.oracle.com/technetwork/java/javase/downloads/index.html
   或者使用开源版本OpenJDK: http://openjdk.java.net/.
  ```
  

  

  #### 二:集群安装配置
  

  

  ```
  - 测试集群规划
  主机名                  IP地址
  yunwei-ts-100-70      172.16.1.70
  yunwei-ts-100-71      172.16.1.71
  yunwei-ts-100-111   172.16.1.111
  

  - 软件版本:
  elasticsearch 2.4.1
  logstash.noarch 1:2.3.4-1
  filebeat-1.2.3
  kibana.x86_64 0:4.5.3-1
  ```
  

  ### 安装部署elasticsearch集群
  ##### 简介
  ElasticSearch原生支持Cluster模式,节点之间通过单播或多播进行通信;ElasticSearch Cluster能自动检测节点的增加、失效和恢复,并重新组织索引。
  ##### ELK的工作原理:
  使用多播进行机器发现同一个集群内的节点,并汇总各个节点的返回组成一个集群,主节点要读取各个节点的
  状态,在关键的时候进行数据的恢复,主节点会jian'shi监视各个节点的状态,并决定每个分片的位置,通过ping的request检测各失效的节点。
  ##### elasticsearch的基本结构认识
  ```
  以mysql数据库为实例对应理解:
  

  mysql 数据库databases    表tables       行rows                列columns
  es   索引indices         类型types   文档documents          字段fields
  ```
  ##### elasticsearch中所说的索引容易混淆,3种含义:
  ```
  1. 索引(名词) 如上面类比,一个索引(index)就好比是mysql中的数据库,它是存储数据的地方。
  2. 索引(动词)表示把一个文档存储到索引(名词)里。
  3. 倒排索引 好比mysql为特定列增加一个索引。
  

  -   和mysql类似,每个库都得有表,还有表的结构。es的每一个索引都有个类型,而每个type(类型)得有个mapping (映射)。mapping就像是mysql中的表结构, 他将每个字段匹配为一种确定的数据类型(string,date等)。
  -   你可以向已有映射中增加字段,但你不能修改它。如果一个字段在映射中已经存在,这可能意味着那个字段的数据已经被索引。
  -   如果你改变了字段映射,那已经被索引的数据将错误并且不能被正确的搜索到.为了提高搜索的效率,es使用倒排索引来做全文搜索。通过analyzer(分词器)先把需要分析的文本,表征化为适合的term(词),然后标准化这些term,使他们容易被搜索到。(比如说模糊大小写,空格等等)
  ```
  ##### 集群规划
  ```
  主机名         IP                     集群服务
  yunwei-ts-100-70172.16.100.70         (elasticsearch)
  yunwei-ts-100-70172.16.100.71         (elasticsearch)
  yunwei-ts-100-70172.16.100.111      (elasticsearch)
  

  软件版本: 2.4.1-1
  ```
  

  #### 安装 Elasticsearch
  

  ###### 添加yum 签名key,
  

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

  ###### 添加 elasticsearch.repo 到 /etc/yum.repos.d/ 目录
  

  ```
  cat >/etc/yum.repos.d/elasticsearch.repo
页: [1]
查看完整版本: elk集群安装配置详解