Elastic Stack笔记

11 篇文章 0 订阅

Elastic Stack

简介:

  1. 组成:
  • Elasticsearch
    数据存储、查询与分析
  • Logstash Beats ()
    数据收集与处理
  • Kibana
    数据探索与可视化分析
  1. 大数据分析利器
  • 使用门槛低,开发周期短,上线快
    GET THINGS DONE
  • 性能好,查询快,实时展现结果
    T+0
  • 扩容方便,快速支撑增长迅猛的数据

Elasticsearch7.9.0 安装

一、安装JDK1.8

  1. 创建安装目录
[root@c5a7af85a360 local]# mkdir /usr/local/java/

  1. 解压至安装目录
    下载链接:官方下载链接
    或网盘:
    链接: 网盘链接 密码: w7l4
[root@c5a7af85a360 java]# tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local/java/
  1. 设置环境变量
vim /etc/profile

在末尾添加

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  1. 使环境变量生效
[root@c5a7af85a360 java]# source /etc/profile

  1. 添加软链接
[root@c5a7af85a360 java]# ln -s /usr/local/java/jdk1.8.0_261/bin/java /usr/bin/java
  1. 检查
[root@c5a7af85a360 java]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

二、安装es7

  1. 创建安装目录
[root@c5a7af85a360 java]# mkdir /usr/local/es/
  1. 解压至安装目录
    链接:
    链接: 百度网盘下载 密码: 0swh
[root@c5a7af85a360 es]# tar -zxvf elasticsearch-7.9.0-linux-x86_64.tar.gz -C /usr/local/es/
  1. 解压至安装目录
    修改配置/usr/local/es/elasticsearch-7.9.0/config/jvm.options,内存占用可以调小一点
-Xms512m
-Xmx512m
  1. 修改配置/usr/local/es/elasticsearch-7.9.0/config/elasticsearch.yml
    1.修改数据和日志目录
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /usr/local/es/elasticsearch-7.9.0/data
#
# Path to log files:
#
path.logs: /usr/local/es/elasticsearch-7.9.0/logs

2.修改绑定ip,允许远程访问

network.host: 0.0.0.0

3.保留一个节点

node.name: node-1
cluster.initial_master_nodes: ["node-1"]. //6x版本不需要

三、修改linux内核参数

  1. 修改/etc/security/limits.conf 增加下面内容
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 131072
  1. 修改/etc/sysctl.conf 增加下面内容
vm.max_map_count=655360

然后执行命令,使配置生效

sysctl -p

四. 创建账户esuser,因为es默认不允许以root账户运行

//创建用户组
groupadd esgroup

//创建用户
useradd -g esgroup esuser

//设置权限
chown -R esuser:esgroup /usr/local/es/

//设置密码
passwd esuser

[root@c5a7af85a360 es]# groupadd esgroup
[root@c5a7af85a360 es]# useradd -g esgroup esuser
[root@c5a7af85a360 es]# chown -R esuser:esgroup /usr/local/es/
[root@c5a7af85a360 es]# passwd esuser

五. 启动

su esuser
[esuser@c5a7af85a360 bin]$ cd /usr/local/es/elasticsearch-7.9.0/bin/
//启动es
./elasticsearch

//后台启动es
./elasticsearch -d

//查找es进程
ps -ef | grep elastic

六. 访问

输入http://ip:9200,看到返回一串 JSON 格式的代码就说明已经成功了:
成功提示


Kibana7.6.2 安装

一、安装Kibana

  1. (1)创建安装目录
mkdir /usr/local/kibana/
  1. 解压至安装目录
[root@c5a7af85a360 kibana]# tar -zxvf kibana-7.9.0-linux-x86_64.tar.gz -C /usr/local/kibana/
  1. 编辑kibana.yml
[root@c5a7af85a360 kibana]# vi /usr/local/kibana/kibana-7.9.0-linux-x86_64/config/kibana.yml 

# 端口
server.port: 9210
# 允许访问的IP地址
server.host: "0.0.0.0"
# es的地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]
# Kibana在es中的索引
kibana.index: ".kibana"
# es中kibana的用户名   注意是elasticsearch设置的用户名
elasticsearch.username: "kibana"
# es中kibana的密码 注意是elasticsearch设置的密码
elasticsearch.password: "es123456"
# 设置中文显示
i18n.locale: "zh-CN"
  1. 切换到bin目录
[root@c5a7af85a360 kibana]# cd /usr/local/kibana/kibana-7.9.0-linux-x86_64/bin/

  1. 启动 / 后台启动
./kibana  --allow-root

/

nohup ./kibana  --allow-root >/dev/null 2>&1 &

二、访问Kibana

通过浏览器访问http://127.0.0.1:9210,可以看到kibana的登陆界面
输入es中的elastic用户名和密码登陆主界面

在这里插入图片描述
在这里插入图片描述

关闭尝试 使用

ps -ef|grep node
fuser -n tcp 9210
kill -9 端口
ps -ef|grep node   或 netstat -anltp|grep 5601
nohup ./kibana  --allow-root >/dev/null 2>&1 &

术语

文档document
索引index

PHP连接Elasticsearch

<?php
/**
 * Es.php
 * User chenzhuo
 * Date 2020/8/31 3:34 下午
 * Description :
 */
namespace app\common\lib\search;


use Elasticsearch\ClientBuilder;
class Es
{
    private $client;
    public function __construct()
    {
        $hosts = ['127.0.0.1:9200'];
        $this->client = ClientBuilder::create()->setHosts($hosts)->build();
    }


    /**
     * 创建表
     * User: chenzhuo
     * Date: 2020/8/31 4:19 下午
     */
    public function create_index($table, $params)
    {
        $params = [
            'index' => $table,
            'body' => [
                'settings' => [
                    'number_of_shards' => 1,//当前只有一台ES,1就可以了
                    'number_of_replicas' => 0//副本0,因为只有一台ES
                ],
                'mappings' => [
                    '_source' => [
                        'enabled' => true
                    ],
                    'properties' => $params
                ]
            ]
        ];


        return $this->client->indices()->create($params);
    }




    /**
     * 删除表
     * User: chenzhuo
     * Date: 2020/8/31 4:20 下午
     */
    public function delete_index()
    {
        $deleteParams['index'] = $this->indexData['index'];
        $this->client->indices()->delete($deleteParams);
    }


    /**
     * index/type/id 方式请求一个文档信息
     * @param $id
     * @param $table
     * @return array|callable
     * User: chenzhuo
     * Date: 2020/8/31 7:51 下午
     */
    public function getById($id, $table){

        $params = [
            'index' => $table,
            'id'    => $id
        ];
        $response = $this->client->get($params);

        return $response;
    }


    /**
     * 更改现存字段,或添加新字段
     * @param $id
     * @param $table
     * @param $data
     * @return array|callable
     * User: chenzhuo
     * Date: 2020/8/31 7:53 下午
     */
    public function updateById($id, $table, $data){
        $params = [
            'index' => $table,
            'id'    => $id,
            'body'  => [
                'doc' => $data
            ]
        ];
        $response = $this->client->update($params);
        return $response;
    }


    /**
     * 通过指定文档的 /index/type/id 删除文档:
     * @param $id
     * @param $table
     * @return array|callable
     * User: chenzhuo
     * Date: 2020/8/31 7:51 下午
     */
    public function delById($id, $table){
        $params = [
            'index' => $table,
            'id'    => $id,
        ];
        $response = $this->client->delete($params);
        return $response;
    }




    //插入索引数据
    public function add_document($id, $table, $data)
    {
        $params = [
            'index' => $table,
            'id' => $id,
            'body' => $data
        ];

        $ret = $this->client->index($params);
    }


    public function bulk($params){


        $ret = $this->client->bulk($params);

    }



    /**
     * 删除文档
     * @param $id 文档id
     * @return array|callable
     * User: chenzhuo
     * Date: 2020/8/31 4:13 下午
     */
    public function delete_document($id)
    {
        $deleteParams = array();
        $deleteParams['index'] = $this->indexData['index'];
        $deleteParams['type'] = $this->indexData['type'];
        $deleteParams['id'] = $id;
        $retDelete = $this->client->delete($deleteParams);
        return $retDelete;
    }
    

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值