一、ELK介绍(ElasticSearch、Logstash、kibana)

1. ElasticSearch介绍

在整个ELK中,ElasticSearch居于核心地位。Elasticsearch是一个基于Lucene构建
的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档
数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩
展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和
分析大量的数据。

2. Logstash介绍

Logstash主要用于数据的导入,也有一部分功能可以用脚本语言来对数据做一些处理工作,然后把处理过的数据log到ElasticSearch上面或是用其他的输出方式,它支持很多的输入输出方式。

3. kibana介绍

kibana是提供数据可视化界面的一个工具,进行数据可视化操作。他是一个基于浏览器的界面,从这个界面里面可以build各种图表。

采集分析log的目的

  • Trouble Shooting
  • Security lssue Identification
  • Performance Optimization
  • Usage Analysis

二、ES简介

  • ES是一个基于RESTful web接口并且构建在Apache Lucene之上的开源分布式搜索引擎。
  • 特点是:高可用,高扩展,是一种NOSQL的数据存储工具

三、ES安装前的准备(ELK安装包版本要求一致)

下载:

  • elasticsearch-6.2.2.tar.gz
  • elasticsearch-head-master.zip
  • kibana-6.2.2-linux-x86_64.tar.gz
  • logstash-6.2.2.tar.gz
  • node-v8.9.1-linux-x64.tar.gz

注释:下载好将这些安装包拖入Linux指定目录中。

下载链接:
链接:https://pan.baidu.com/s/12jD1AWPIpgIR_KrvDfYmCQ 提取码:ll5h

四、ELK安装

  1. 把下载好的安装包,拖拽到/software目录中
[root@promote ~]# mkdir software/
[root@promote ~]# cd software/

linux离线部署elk_linux离线部署elk


注释:图里面有JDK安装包,

在博客: 中有介绍linux系统安装与配置,和JDK安装。

  1. 输入:yum install -y unzip 下载解压缩工具
  2. linux离线部署elk_linux_02

  3. 注释:最后出现Complete!就成功下载了
  4. 输入:cd /software 进入安装包目录,输入ll可以查看目录中的文件
  5. linux离线部署elk_搜索引擎_03

  6. 输入:tar -zxvf elasticsearch-6.2.2.tar.gz -C /opt
  7. linux离线部署elk_搜索引擎_04

  8. 注释:这个解压完安装在opt文件夹下可以去opt文件夹下找,最后没有complete提醒安装完成。
  9. 输入:tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz -C /opt
  10. linux离线部署elk_linux_05

  11. 注释:这个解压比较长,不要慌。
  12. 输入:tar -zxvf logstash-6.2.2.tar.gz -C /opt
  13. linux离线部署elk_搜索引擎_06

  14. 输入:tar -zxvf node-v8.9.1-linux-x64.tar.gz -C /opt
  15. linux离线部署elk_linux_07

  16. 输入:unzip elasticsearch-head-master.zip
  17. linux离线部署elk_linux离线部署elk_08

  18. 注释:这里unzip就用到了前面yum install -y unzip 安装的工具。
  19. 输入 mv elasticsearch-head-master /opt/eshm 把解压的文件夹移动并改名
  20. linux离线部署elk_可视化_09

  21. 注释:这样就已经操作成功了。
  22. 输入:cd /opt(进入opt文件夹)
  23. linux离线部署elk_可视化_10

  24. 注释:这里可以查看到刚才elasticsearch-head-master已经移到了opt文件夹中。
  25. 输入:mv kibana-6.2.2-linux-x86_64/ kibana622
  26. linux离线部署elk_elasticsearch_11

  27. 注释:结果是这样一般就是正确了
  28. 输入:mv logstash-6.2.2/ logstash622
  29. linux离线部署elk_elasticsearch_12

  30. 输入:mv node-v8.9.1-linux-x64/ node8
  31. linux离线部署elk_linux_13

五、ES的配置

  1. 输入:vi /etc/hostname 修改主机名
  2. linux离线部署elk_搜索引擎_14

  3. 注释:此步可以没有,改了名字一定要记住,我这里改成了test01.
  4. 输入:vi /etc/hosts 修改主机列表
  5. linux离线部署elk_可视化_15

  6. 注释:名字可以随便起,地址要是对的,最好是三个连续的地址。
  7. 配置es的参数
  • 输入:vi /opt/es622/config/elasticsearch.yml,按shift+g,快速定位到尾行,按o在下一行插入以下内容:
    cluster.name: bigdata
    node.name: master
    node.master: true
    network.host: 192.168.56.108
    discovery.zen.ping.unicast.hosts: [“192.168.56.108”]
    http.cors.enabled: true
    http.cors.allow-origin: “*”
  1. 配置系统参数
  • 输入:vi /etc/sysctl.conf
    插入内容:vm.max_map_count=655360
  • linux离线部署elk_搜索引擎_16

  • 注释:最好首次也要使用以下命令刷新
    sysctl -w vm.max_map_count=655360
  • 输入:vi /etc/security/limits.conf(配置完成之后可能需要重启虚拟机) 插入内容:
  • linux离线部署elk_linux离线部署elk_17

  • 修改es622目录的属组(es不能使用root启动)
    chown -R es:es es622
  • 创建普通用户,并进入普通用户
  • linux离线部署elk_linux离线部署elk_18

  • 在/opt目录下输入:./es622/bin/elasticsearch
  • linux离线部署elk_可视化_19

  • 注释:最后出现started即是启动成功
  • 在windows界面打开网页,输入http://192.168.56.110:9200/,可以正常出页面,切有节点的信息,即是启动成功 。
  • linux离线部署elk_可视化_20

六、Head-master及node的配置

  1. 输入:vi /etc/profile 按shift+g定位到底部,然后按o在下一行插入以下内容:
    export NODE_HOME=/opt/node8
    export PATH=linux离线部署elk_linux_21NODE_HOME/bin (如之前在java配置过PATH变量则在原先的尾部增加: :$NODE_HOME/bin)
  2. linux离线部署elk_elasticsearch_22

  3. 输入:source /etc/profile 激活配置文件,输入node -v 可以查看是否配置成功
  4. linux离线部署elk_搜索引擎_23

  5. 注释:node-v 查看版本号的意思,如果能查到,则配置成功。
  6. 输入:cd /opt/eshead
  7. linux离线部署elk_elasticsearch_24

  8. 输入:npm install -g grunt-cli --等待的时间比较长,要有点耐心
  9. linux离线部署elk_搜索引擎_25

  10. 输入:npm install 出错时需要输入:
    npm install phantomjs-prebuilt@2.1.14 --ignore-scripts
    注释1:如果还不行可以
    npm config set registry https://registry.npm.taobao.org
    再进行npm install
    注释2:4、5两步需要在eshead目录下进行
  11. 输入:vi Gruntfile.js,在以下位置高亮位置增加一行代码:hostname: ‘*’
connect: {
    server: {
        options: {
            port: 9100,
            hostname: '*',
            base: '.',
            keepalive: true        }
    }
  1. 输入:vi _site/app.js,找到如下代码,并进行修改:
this.base_uri =this.config.base_uri ||this.prefs.get("app-base_uri") || "http://localhost:9200";

修改成为:
this.base_uri =this.config.base_uri ||this.prefs.get("app-base_uri") || "http://192.168.56.108:9200";
  1. 输入:npm run start 启动head-master
  2. 在windows界面,打开网页,输入:http://192.168.56.108:9100/
  3. 如果启动不了出现如下图所示错误,说明第5步没有下载好,要进行重新下载。

七、使用Head-master对ES进行测试

1.点击索引页签,点击新建索引
2.点击总览页签,即可查看索引的情况

八、kibana安装,配置和实例

  1. 输入:cd /opt/kibana622
  2. 输入:vi config/kibana.yml
  • 改变url值,在配置文件中找到图中相应位置,进行修改
  • 按shift+g跳转到行末,按o增加以下内容:
    server.host: “192.168.56.108”
    elasticsearch.url: “http://192.168.56.108:9200”
  • 输入:./bin/kibana ---->运行kibana
  • 在windows界面打开网页,输入http://192.168.56.108:5601/
  • 实例:
PUT demo       --增加
GET demo       --查询
#删除 index
DELETE demo
#提交数据  
PUT /demo/user/1
{
  "firstName":"luo","lastName":"xin","age":36,"hobby":"I like gongfu","interests":["games"]
}
#查询数据 
GET demo/user/1
GET demo/user/_search
GET demo/user/1?_source=age,lastName,hobby
#删除指定数据 
DELETE /demo/user/A_KKx3ABEZ3jJD3MqVuu
#修改 
POST /demo/user/1/_update{ "doc":{ "age":30 }  }
POST /demo/user/
{ "firstName":"wang","lastName":"feng","age":51,"hobby":"I like changge","interests":["toutiao"] }
GET /_mget
GET /demo/user/_mget
GET /demo/user/_mget{ "ids":[1,"BPKUx3ABEZ3jJD3MSlvF"] }
POST _analyze{
"analyzer": "standard",
"text": ["我是回家"]
 }
POST _analyze{
"analyzer": "whitespace",
"text": ["我 要 回家"]
 }
POST  demo2/books/_bulk
{"index":{"_id":1}}{"title":"JAVA","price":35}
{"index":{"_id":2}}{"title":"HTML","price":45}
{"index":{"_id":3}}{"title":"MYSQL","price":55}
GET demo2/books/_mget
POST demo2/books/_bulk
{"delete":{"_index":"demo2","_type":"books","_id":3}}
{"update":{"_index":"demo2","_type":"books","_id":2}}
{"doc":{"price":59}}
DELETE demo2/books/3
GET demo2/books/_search?q=title:JAVA
GET demo2/books/_search?q=title:JAVA&q=price:35