• ELK之elasticsearch安装


    设置主机名

    [root@es1 ~]# hostnamectl set-hostname es1.example.local
    

    主机名

    [root@es1 ~]# hostname
    es1.example.local
    

    创建目录

    [root@es1 ~]# mkdir /data/elk -p
    [root@es2 ~]# mkdir /data/elk -p
    [root@es3 ~]# mkdir /data/elk -p
    

    每台都要查看磁盘

    [root@es1 ~]# fdisk -l
    

    格式化

    [root@es1 ~]# mkfs.ext4 /dev/sdb
    

    查看磁盘

    [root@es1 ~]# lsblk -f
    
    sdb    ext4                                     058fe63a-ae02-4aae-9295-38eeae9ce98b
    

    临时挂载

    [root@es1 ~]# mount /dev/sdb /data/elk/
    

    查看挂载

    [root@es1 ~]# df -Th
    
    /dev/sdb       ext4       490G   53M   488G   1% /data/elk
    

    永久挂载

    [root@es1 ~]# echo "/dev/sdb /data/elk/ ext4 defaults 0 0" >> /etc/fstab
    

    验证

    [root@es1 ~]# umount /data/elk
    
    [root@es1 ~]# mount -a
    
    [root@es1 ~]# df -Th
    

    安装es

    注意:es依赖jdk,可以下载官方的es包中包含jdk就无须下载jdk

    使用dpkg安装

    [root@es1 src]# dpkg -i elasticsearch-7.12.1-amd64.deb
    

    拷贝到其他机器

    [root@es1 src]# scp elasticsearch-7.12.1-amd64.deb 172.31.2.102:/usr/local/src
    
    [root@es1 src]# scp elasticsearch-7.12.1-amd64.deb 172.31.2.103:/usr/local/src
    

    修改配置文件

    [root@es1 ~]# vim /etc/elasticsearch/elasticsearch.yml
    
    cluster.name: my-long
    node.name: elk-node1
    path.data: /data/elk/data
    path.logs: /data/elk/logs
    bootstrap.memory_lock: true
    network.host: 0.0.0.0
    http.port: 9200
    
    discovery.seed_hosts: ["172.31.2.101", "172.31.2.102",'172.31.2.103']
    
    cluster.initial_master_nodes: ["172.31.2.101", "172.31.2.102",'172.31.2.103']
    
    action.destructive_requires_name: true
    
    gateway.recover_after_nodes: 2
    

    配置文件详解

    cluster.name: ELK-Cluster #ELK 的集群名称,名称相同即属于是同一个集群
    node.name: elk-node1 #当前节点在集群内的节点名称,与 host1 不能相同
    path.data: /elk/data #ES 数据保存目录
    path.logs: /elk/logs #ES 日志保存目
    bootstrap.memory_lock: true #服务启动的时候锁定足够的内存,防止数据写入swap
    network.host: 0.0.0.0 #监听 IP
    http.port: 9200 #监听端口
    #集群中 node 节点发现列表
    discovery.seed_hosts: ["172.31.2.101","172.31.2.102","172.31.2.103" #集群初始化那些节点可以被选举为 master
    cluster.initial_master_nodes: ["172.31.2.101","172.31.2.102","172.31.2.103"]
    #2.x 5.x 6.x 配置节点发现列表
    discovery.zen.ping.unicast.hosts: ["192.168.15.11", "192.168.15.12"]
    #一个集群中的 N 个节点启动后,才允许进行数据恢复处理,默认是 1
    gateway.recover_after_nodes: 2
    
    # 设置是否可以通过正则或者_all 删除或者关闭索引库,默认 true 表示必须需要
    显式指定索引库名称,生产环境建议设置为 true,删除索引库的时候必须指定,
    否则可能会误删索引库中的索引库。
    action.destructive_requires_name: true
    

    修改内存限制,并同步配置文件:
    内存锁定的配置参数:

    https://discuss.elastic.co/t/memory-lock-not-working/70576
    

    修改内存

    [root@es1 ~]# vim /etc/elasticsearch/jvm.options
    -Xms2g
    -Xmx2g
    

    最小和最大内存限制,为什么最小和最大设置一样大?

    https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
    

    官方配置文档最大建议 30G 以内。

    修改授权

    [root@es1 ~]# chown elasticsearch.elasticsearch /data/elk/ -R
    

    改启动文件

    [root@es1 ~]# vim /usr/lib/systemd/system/elasticsearch.service
    
    
    User=elasticsearch
    Group=elasticsearch
    
    LimitMEMLOCK=infinity
    

    重新加载

    [root@es1 ~]# systemctl daemon-reload
    

    重新启动

    [root@es1 ~]# systemctl restart elasticsearch
    

    查看端口

    [root@es1 ~]# ss -tanl
    
    LISTEN               0                     128                                               *:9200                                           *:*
    LISTEN               0                     128                                               *:9300                                           *:*
    

    登录浏览器查看:http://172.31.2.101:9200/

    安装 elasticsearch 插件之 head:

    插件是为了完成不同的功能,官方提供了一些插件但大部分是收费的,另外也有一些开发
    爱好者提供的插件,可以实现对 elasticsearch 集群的状态监控与管理配置等功能。

    浏览器安装 elasticsearch 插件:

    https://chrome.google.com/webstore/category/extensions?hl=zh-CN
    

    搜索:elasticsearch head

    ELK脚本批量删除index索引

    删除多少天的

    DATE=`date -d "5 days ago" +%Y.%m.%d`
    

    删除的文件名

    完整脚本

    [root@es01 ~]# cat es-delete.sh
    #!/bin/bash
    DATE=`date -d "5 days ago" +%Y.%m.%d`
    # 放index索引名称
    NAME="
    XXXX
    XXXX
    XXXX
    "
    for i in ${NAME};do
      FILE_NAME=${i}-${DATE}
      # 删除index索引名
      curl -XDELETE http://ip:9200/${FILE_NAME}
    done
    

    手动测试

    [root@es01 ~]# curl -XDELETE http://ip:9200/xxx-xxx-index索引
    
  • 相关阅读:
    java web分页查询初试
    SQL注入原理深度解析
    JS 清除IE缓存
    Android 代码混淆及第三方jar包不被混淆
    [leetcode]Unique Paths II
    ffmpeg API录制rtsp视频流
    HDU 2045 不容易系列之(3)—— LELE的RPG难题
    Ffmpeg和SDL创建线程(转)
    “富豪相亲大会”究竟迷失了什么?
    Ffmpeg和SDL如何同步视频(转)
  • 原文地址:https://www.cnblogs.com/xuanlv-0413/p/15374785.html
Copyright © 2020-2023  润新知