1. ES集群安装
准备1台虚拟机
部署elasticsearch第一个节点
访问9200端口查看是否安装成功
 
1ELK是日志分析平台,不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,ELK分别代表:
Elasticsearch:负责日志检索和储存
Logstash:负责日志的收集和分析、处理
Kibana:负责日志的可视化
 
ELK组件在海量日志系统的运维中,可用于解决分布式日志数据集中式查询和管理系统监控等,故障排查,安全信息和事件管理,报表功能
部署Elasticsearch分布式集群安装,Kibana作为可视化平台,实时总结流量和数据的图表,Logstash用来收集处理日志,如表-1所示:
环境部署:elk.sh
 
1.1 先准备一台虚拟机
 
1)更改主机名,配置IP,搭建第三方yum源(之前已经搭建过几次,这里不再赘述)
se1 ~]# echo se1 > /etc/hostname 
se1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 
# Generated by dracut initrd
DEVICE="eth0"
ONBOOT="yes"
IPV6INIT="no"
IPV4_FAILURE_FATAL="no"
NM_CONTROLLED="no"
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=192.168.1.61
PREFIX=24
GATEWAY=192.168.1.254
 
se1 ~]# vim /etc/yum.repos.d/local.repo 
[local_repo]
name=CentOS-$releasever - Base
enabled=1
gpgcheck=1
[elk]
name=elk
enabled=1
gpgcheck=0
 
2)部署elasticsearch第一个节点
[root@se1 ~]# vim /etc/hosts
192.168.1.61 se1
192.168.1.62 se2
192.168.1.63 se3
192.168.1.64 se4
192.168.1.65 se5
 
se1 ~]# yum -y install java-1.8.0-openjdk.x86_64
se1 ~]# java -version
 
se1 ~]# sestatus     //查看selinux状态
SELinux status:     disabled
 
se1 ~]# yum -y install elasticsearch
se1 ~]# vim /etc/elasticsearch/elasticsearch.yml
 
17 cluster.name: myelk        //配置集群名字
23 node.name: se1        //当前主机名称
54 network.host: 0.0.0.0     // 0.0.0.0(监听所有地址)
68 discovery.zen.ping.unicast.hosts: ["se1", "se2","se3"]  
//声明集群里的主机成员有谁,不需要全部写进去
 
se1 ~]# systemctl restart elasticsearch
se1 ~]# systemctl enable elasticsearch
se1 ~]# ss -antup | grep 9200
tcp    LISTEN     0      50       :::9200                 :::*                   users:(("java",pid=23231,fd=110))
3)访问9200端口查看是否安装成功
] firefox http://192.168.1.61:9200(真机)
{
  "name" : "se1",
  "cluster_name" : "myelk",
  "version" : {
    "number" : "2.3.4",
    "build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
    "build_timestamp" : "2016-06-30T11:24:31Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}
 
2. ES集群安装配置
一共安装5台虚拟机
在所有机器中部署ES
启动服务查看验证集群状态
 
2.1 安装elasticsearch和java-1.8.0-openjdk,同步配置文件
 
备注:在步骤一已经安装了一台elasticsearch,这里只需再准备四台即可
1)更改对应的主机名、 ip地址以及搭建yum源(以案例1为例子)
 
2)安装elasticsearch四台主机同样操作(以se2为例子)
se2 ~]# yum -y install java-1.8.0-openjdk.x86_64
se2 ~]# yum -y install elasticsearch
 
3)同步配置/etc/hosts和/etc/elasticsearch/elasticsearch.yml
修改node.name字段(以se2为例子)
se1 ~]# for i in {62..65} ; do scp /etc/hosts 192.168.1.$i:/etc/hosts; done
se1 ~]# for i in {62..65} ; do scp  \ 
/etc/elasticsearch/elasticsearch.yml \
192.168.1.$i:/etc/elasticsearch/elasticsearch.yml; done
 
se2 ~]# vim /etc/elasticsearch/elasticsearch.yml
node.name: se2    //另外三台修改为对应se3,se4,se5
 
se2 ~]# systemctl restart elasticsearch
se2 ~]# systemctl enable elasticsearch
 
4)访问测试(真机)
{
  "cluster_name" : "myelk",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 5,
  "number_of_data_nodes" : 5,
 
”status”: ”green“ 集群状态:绿色为正常、黄色表示有问题但不是很严重、红色表示严重故障
”number_of_nodes”: 5, 表示集群中节点的数量
 
3. 练习curl命令(真机)
练习使用curl命令
理解GET POST
使用curl命令访问ES集群
 
3.1 curl命令的使用
http的请求方法:
常用方法 GET,POST,HEAD
其他方法 OPTIONS,PUT,DELETE,TRACE和CONNECT
ES常用:
PUT --增
DELETE --删
POST --改
GET --查
系统命令curl:
是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持多种请求模式,自定义请求头等强大功能,是一款综合工具
curl 常用参数介绍:
-A 修改请求 agent
-X 设置请求方法
-i 显示返回头信息
 
1)索引的分片信息,如图-1所示:
 
2)显示health的详细信息
 
3)查看nodes的帮助,如图-3所示:
 
4. 练习插件
在其中一台机器上部署插件
使用bigdesk查看集群状态
使用head创建index
使用kopf查看数据
 
4.1 部署插件
插件装在哪一台机器上,只能在哪台机器上使用
(这里安装在se5机器上面)
 
1)使用远程 uri 路径可以直接安装
se5 ~]# cd /usr/share/elasticsearch/bin
 
//安装head插件
se5 bin]# ./plugin install  \ 
 
//安装kopf插件
se5 bin]# ./plugin install  \ 
 
//安装bigdesk插件 
se5 bin]# ./plugin install  \
 
//查看安装的插件
se5 bin]# ./plugin list
Installed plugins in /usr/share/elasticsearch/plugins:
    - head
    - kopf
    - bigdesk
 
2)访问head插件(真机)
 
3)访问kopf插件(真机)
 
 
4)访问bigdesk插件(真机)
 
4.2 使用head创建index
se5 bin]# curl -X PUT "http://192.168.1.65:9200/index" -d '
> {
>     "settings":{
>     "index":{
>     "number_of_shards":5,     //分片数
>     "number_of_replicas":1    //副本数
>    }
>   }
> }'   (确定)
 
{"acknowledged":true}
 
4.3 使用kopf查看数据
5. 插入,增加,删除查询数据
使用curl命令连接使用ES数据库
使用PUT方法增加数据
使用POST修改数据
使用GET查询数据
使用DELETE删除数据
 
5.1 增加数据
se5 ~]# locale
se5 ~]# LANG=en_US.UTF-8  //设置编码
se5 ~]# curl -X PUT "http://192.168.1.65:9200/taindex/teacher/1" -d '{
"职业":"诗人",
"名字":"李白",
"称号":"诗仙",
"年代":"唐"
}'
 
{"_index":"taindex","_type":"teacher","_id":"1","_version":1,"_shards":{"total":2,"successful":2,"failed":0},"created":true}
 
5.2 修改数据
se5 ~]# curl -X PUT "http://192.168.1.65:9200/taindex/teacher/1" -d '{
 "doc":{
 "年代": "唐代"
 }
 }'
 
{"_index":"taindex","_type":"teacher","_id":"1","_version":2,"_shards":{"total":2,"successful":2,"failed":0},"created":false}
 
5.3 查询数据

] curl -X GET "http://192.168.1.65:9200/taindex/teacher/1?pretty"
{
"_index" : "taindex",
"_type" : "teacher",
"_id" : "1",
"_version" : 2,
"found" : true,
"_source" : {
"doc" : {
"年代" : "唐代"
}
}
}

 
5.4 删除数据

{
"found" : true,
"_index" : "taindex",
"_type" : "teacher",
"_id" : "1",
"_version" : 3,
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
}
}

5.5 删除索引
se5 ~]# curl -X DELETE http://192.168.1.65:9200/taindex/
{"acknowledged":true}
 
//删除所有索引
se5 ~]# curl -X DELETE http://192.168.1.65:9200/*
{"acknowledged":true}
 
6. 安装Kibana
安装Kibana
配置启动服务查看5601端口是否正常
通过web页面访问Kibana
 
6.1 安装kibana
 
1)在另一台主机,配置ip为192.168.1.66,配置yum源,更改主机名
2)安装kibana
kibana ~]# yum -y install kibana
kibana ~]# rpm -qc kibana
/opt/kibana/config/kibana.yml
 
kibana ~]# vim /opt/kibana/config/kibana.yml
2 server.port: 5601        
//若把端口改为80,可以成功启动kibana,但ss时没有端口,没有监听80端口,服务里面写死了,不能用80端口,只能是5601这个端口
5 server.host: "0.0.0.0"      //服务器监听地址
15 elasticsearch.url: http://192.168.1.61:9200    
//声明地址,从哪里查,集群里面随便选一个
23 kibana.index: ".kibana"    //kibana自己创建的索引
26 kibana.defaultAppId: "discover"      //打开kibana页面时,默认打开的页面discover
53 elasticsearch.pingTimeout: 1500      //ping检测超时时间
57 elasticsearch.requestTimeout: 30000  //请求超时
64 elasticsearch.startupTimeout: 5000   //启动超时
 
kibana ~]# systemctl restart kibana
kibana ~]# systemctl enable  kibana
kibana ~]# ss -antup | grep 5601  //查看监听端口
 
3)浏览器访问kibana,如图所示:
kibana ~]# firefox 192.168.1.66:5601
4)点击Status,查看是否安装成功,全部是绿色的对钩,说明安装成功
5)用head插件访问会有.kibana的索引信息,如图所示:
######################
知识点整理:

01:ELK一整套解决方案。‘ Elasticsearch Logstash Kibana
Elasticsearch:负责日志检索和存储(NoSQL)
Logstash:负责日志的检索和分析、处理(Php)
Kibana:负责日志的可视化(Apache)

02:扩展插件
head插件:
    它展现ES集群的拓扑结构,并且可以通过它老进行索引(index)和节点(Node)级别的操作.
    他提供一组针对集群的查询API,并将结果以json和表格形式返回
    它提供一些快捷菜单,用以展现集群的各种状态
kopf插件:
    是一个Elasticsearch的一个集群管理工具
    提供了对ES集群操作的API
bigdesk插件:
    是一个Elasticsearch的一个集群监控工具
    可以查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况、Http连接数等

五十七.分布式ELK平台、ES安装 、 扩展插件 、Kibana安装的更多相关文章

  1. 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用

    一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...

  2. ElasticSearch 集群环境搭建,安装ElasticSearch-head插件,安装错误解决

    ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决 说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文 ...

  3. webstorm安装vue插件及安装过程出现的问题

    想要编辑器识别vue文件需要安装vue插件 1. 安装方法: File--> setting  -->  plugin ,点击plugin,在内容部分的左侧输入框输入vue,会出现1个关于 ...

  4. mac 下安装ES 与 Head插件 以及安装Kibana

    一.安装Elasticsearch 在Mac上可以使用brew快速安装Elasticsearch brew install elasticsearch 安装完成后可使用elasticsearch -- ...

  5. php 安装扩展插件实例-ftp.so

    工作记录一下   1.首先进入原始php包安装文件(不是安装后的文件,是下载php安装压缩包,解压后的那个文件)安装包里有个扩展文件夹ext,进入 #cd /home/php-5.3.3/ext/#l ...

  6. php 安装扩展插件实例-gd库

    今天给php 安装一个扩展插件 gd库   一.gd库是什么 gd库是一个开源的图像处理库,它通过提供一系列用来处理图片的API,使其可以用来创建图表.图形.缩略图以及其他图像的处理操作. gd库支持 ...

  7. ElasticSearch-5.3.1集群环境搭建,安装ElasticSearch-head插件,安装错误解决

    说起来甚是惭愧,博主在写这篇文章的时候,还没有系统性的学习一下ES,只知道可以拿来做全文检索,功能很牛逼,但是接到了任务不想做也不行, leader让我搭建一下分布式的ES集群环境,用来支持企业信用数 ...

  8. vim的编译安装及其插件YouCompleteMe安装

    相关的环境: win 7 x64 vs2013 community python 2.7.10 AMD64 python 3.5 AMD64 LLVM 3.5 cmake 3.5   YouCompl ...

  9. 2、elasticsearch 的安装和插件的安装

    1.安装Elasticsearch集群 1.下载elasticsearch-2.0.0.tar.gz,执行tar -zxvf elasticsearch-2.0.0.tar.gz解压 2.修改conf ...

随机推荐

  1. asp.net core-14.JWT认证授权 生成 JWT Token

    源码下载 语言组织能力不好 ,看这个 视频 用visual studio code打开文件,运行dotnet watch run 之后在postman里面去访问 拿到Token后

  2. The Heaviest Non-decreasing Subsequence Problem

    最长非递减子序列变形题,把大于等于10000的copy五次放回去就可以了 ac代码: #include <cstdio> #include <cstring> #include ...

  3. Java InsertionSort

    Java InsertionSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternatio ...

  4. 奇妙的算法【7】-贪婪算法-dp

    问题1描述:[贪婪算法,Dijistra算法] ①有一只兔子要从一个N*N的二维矩阵方格中从上跳到下面: ②每次只能向左或向下,越过一个方格,跳到下一个方格中: ③被越过的方格中的数值,表示该兔子越过 ...

  5. C# 关于爬取网站数据遇到csrf-token的分析与解决

    需求 某航空公司物流单信息查询,是一个post请求.通过后台模拟POST HTTP请求发现无法获取页面数据,通过查看航空公司网站后,发现网站使用避免CSRF攻击机制,直接发挥40X错误. 关于CSRF ...

  6. class类 - extends

    继承是面向对象中一个比较核心的概念.ES6 class的继承与java的继承大同小异,如果学过java的小伙伴应该很容易理解,都是通过extends关键字继承.相较于ES5当中通过原型链继承要清晰和方 ...

  7. vue cli3 打包到tomcat上报错问题

    首先  项目打包步骤 1.vue config.js  添加 publicPath: './', // 公共路径 assetsDir:'static', 2.将代理注释掉 proxy 3.将hash需 ...

  8. Java 面向对象(五)抽象

    一.抽象概述 1.由来 父类中的方法,被它的子类们重写,子类各自的实现都不尽相同.那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了. 我们把没有方法主体的方法称为抽象方法. ...

  9. pcntl

    <?php function my_pcntl_wait($childProcessCode){ $pid = pcntl_fork(); if($pid>0){ pcntl_wait($ ...

  10. Linq以本周和本月为条件的Sql,Liqn查询本周,Linq查询本月

    //计算本周时间 时间 > DateTime.Now.AddDays(-Convert.ToInt32(DateTime.Now.Date.DayOfWeek) //计算本月时间 时间 > ...