zoukankan      html  css  js  c++  java
  • Linux系统 Elasticsearch、Logstash、Kibana集群部署文档 版本6.5.4

    Elasticsearch、Logstash、Kibana集群部署文档 版本6.5.4

    一、Elasticsearch部署文档

    由于Elasticsearch、Logstash、Kibana均不能以root账号运行但是Linux对非root账号可并发操作的文件、线程都有限制。

    1.修改文件限制修改系统文件

    # vim /etc/security/limits.conf

    * soft nofile 65536

    * hard nofile 65536

    * soft nproc 2048

    * hard nproc 4096

    2.调整进程数修改系统文件

    # vim /etc/security/limits.d/20-nproc.conf

    *          soft    nproc     4096

    root       soft    nproc     unlimited

    3.调整虚拟内存&最大并发连接修改系统文件

    # im /etc/sysctl.conf

    vm.max_map_count = 262144

    fs.file-max = 655360

    # sysctl -p

    4.安装JDK并修改配置文件

    # mkdir /usr/local/java

    # tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/java/

    # vim /etc/profile

    JAVA_HOME=/usr/local/java/jdk1.8.0_201

    CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

    PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH

    # source /etc/profile

    5. 创建elasticsearch目录 并解压elasticsearch

    # mkdir /usr/local/elasticsearch

    # tar -zxf elasticsearch-6.5.4.tar.gz -C /usr/local/elasticsearch

    # mkdir  /usr/local/elasticsearch/elasticsearch-6.5.4/data

    查看配置文件

    # grep '^[a-Z]' /usr/local/elasticsearch/elasticsearch-6.5.4/config/elasticsearch.yml

    修改配置为文件主机名

    # vim /etc/hosts

    192.168.2.123 elasticsearch1

    192.168.2.222 elasticsearch2

    192.168.2.221 elasticsearch3

    6.创建用户给予权限

    # useradd elasticsearch

    # chown -R elasticsearch.elasticsearch /usr/local/elasticsearch/

    7.切换elasticsearch用户修改配置文件 启动elasticsearch服务

    # su -  elasticsearch

    # /usr/local/elasticsearch/elasticsearch-6.5.4/bin/elasticsearch -d

    查看集群启动后能否正常工作

    # curl -X GET "192.168.2.123:19200/"

    查看当前索引和分片情况

    # curl -i -XGET 'http://192.168.2.123:19200/_count?pretty'

    使用head插件显示索引和分片情况安装elasticsearch-head插件

    集群节点状态

    注:status为green表示正常,yellow为警告,red为故障

    # curl http://192.168.2.123:19200/_cluster/health?pretty

    查看集群详细信息

    # curl '192.168.2.123:19200/_cluster/state?pretty'

    # http://192.168.2.123:19200/_cluster/state?pretty

    #master配置文件

    # ======================== Elasticsearch Configuration =========================
    #判别节点是否是统一集群
    cluster.name: elasticsearch-cluster
    #节点的hostname
    node.name: elasticsearch1
    #该节点为主节点
    node.master: true
    #表示这不是数据节点
    node.data: false
    #本地ip端口
    network.host: 192.168.2.123
    http.port: 19200
    #数据存放路径
    path.data: /usr/local/elasticsearch/elasticsearch-6.5.4/data
    #日志路径
    path.logs: /usr/local/elasticsearch/elasticsearch-6.5.4/logs
    #锁住内存,使内存不会再swap中使用
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    #配置自动发现
    discovery.zen.ping.unicast.hosts: ["192.168.2.222","192.168.2.123","192.168.2.221"]
    discovery.zen.minimum_master_nodes: 1

    #slave节点配置文件

    # ======================== Elasticsearch Configuration =========================
    cluster.name: elasticsearch-cluster
    node.name: elasticsearch2
    path.data: /usr/local/elasticsearch/elasticsearch-6.5.4/data
    path.logs: /usr/local/elasticsearch/elasticsearch-6.5.4/logs
    node.master: false
    node.data: true
    network.host: 192.168.2.222
    http.port: 19200
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    discovery.zen.minimum_master_nodes: 1
    discovery.zen.ping.unicast.hosts: ["192.168.2.123","192.168.2.222","192.168.2.221"]

    # ======================== Elasticsearch Configuration =========================
    cluster.name: elasticsearch-cluster
    node.name: elasticsearch3
    path.data: /usr/local/elasticsearch/elasticsearch-6.5.4/data
    path.logs: /usr/local/elasticsearch/elasticsearch-6.5.4/logs
    node.master: false
    node.data: true
    network.host: 192.168.2.221
    http.port: 19200
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    discovery.zen.minimum_master_nodes: 1
    discovery.zen.ping.unicast.hosts: ["192.168.2.123","192.168.2.222","192.168.2.221"]

    二、elasticsearch-logstash部署文档

    1、解压安装filebeat-6.5.4服务(日志收集器)

    # tar -zxf filebeat-6.5.4-linux-x86_64.tar.gz -C /usr/local/elasticsearch/

    # mv  /usr/local/elasticsearch/filebeat-6.5.4-linux-x86_64/ /usr/local/elasticsearch/filebeat-6.5.4

    启动服务

    # nohup ./usr/local/elasticsearch/filebeat-6.5.4/filebeat -c filebeat.yml &

    查看配置文件

    # grep "^s*[^# ].*$" /usr/local/elasticsearch/filebeat-6.5.4/filebeat.yml

    2、解压安装logstash服务

    #t ar -zxf logstash-6.5.4.tar.gz -C /usr/local/elasticsearch/

    # ./logstash -f ../config/logstash.conf &

    配置logstash服务配置文件

    # ./logstash -t  -f /usr/local/elasticsearch/logstash-6.5.4/config/logstash.conf

    logstash.conf配置文件

    # Sample Logstash configuration for creating a simple
    # Beats -> Logstash -> Elasticsearch pipeline.

    #input {
    # beats {
    # port => 5044
    # }
    #}
    input{
    kafka{
    bootstrap_servers => ["192.168.2.123:19092,192.168.2.222:19092"]
    topics => "test"
    codec => "json"
    #client_id => "test"
    #group_id => "test"
    #auto_offset_reset => "latest" #从最新的偏移量开始消费
    #consumer_threads => 5
    #decorate_events => true #此属性会将当前topic、offset、group、partition等信息也带到message中
    #topics => ["test","loge"] #数组类型,可配置多个topic
    #type => "bhy" #所有插件通用属性,尤其在input里面配置多个数据源时很有用
    }
    }

    output {
    #{
    #if [fields][tag] == "test"
    #{
    elasticsearch {
    hosts => ["http://192.168.2.123:19200"]
    index => "test-%{+YYYY-MM-dd}"
    codec => "json"
    #index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
    }
    }

    三、elasticsearch-kibana部署文档

    1.修改配置文件启动kibana服务

    # tar -zxf kibana-6.5.4-linux-x86_64.tar.gz -C /usr/local/elasticsearch/

    # mv /usr/local/elasticsearch/kibana-6.5.4-linux-x86_64 /usr/local/elasticsearch/kibana-6.5.4

    # nohup /usr/local/elasticsearch/kibana-6.5.4/bin/kibana  > /dev/null 2>&1 &

    # http://192.168.2.123:15601

    配置文件

    # Kibana is served by a back end server. This setting specifies the port to use.
    server.port: 15601

    # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
    # The default is 'localhost', which usually means remote machines will not be able to connect.
    # To allow connections from remote users, set this parameter to a non-loopback address.
    server.host: "192.168.2.123"

    # Enables you to specify a path to mount Kibana at if you are running behind a proxy.
    # Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath
    # from requests it receives, and to prevent a deprecation warning at startup.
    # This setting cannot end in a slash.
    #server.basePath: ""

    # Specifies whether Kibana should rewrite requests that are prefixed with
    # `server.basePath` or require that they are rewritten by your reverse proxy.
    # This setting was effectively always `false` before Kibana 6.3 and will
    # default to `true` starting in Kibana 7.0.
    #server.rewriteBasePath: false

    # The maximum payload size in bytes for incoming server requests.
    #server.maxPayloadBytes: 1048576

    # The Kibana server's name. This is used for display purposes.
    server.name: "192.168.2.123"

    # The URL of the Elasticsearch instance to use for all your queries.
    elasticsearch.url: "http://192.168.2.123:19200"

    # When this setting's value is true Kibana uses the hostname specified in the server.host
    # setting. When the value of this setting is false, Kibana uses the hostname of the host
    # that connects to this Kibana instance.
    #elasticsearch.preserveHost: true

    # Kibana uses an index in Elasticsearch to store saved searches, visualizations and
    # dashboards. Kibana creates a new index if the index doesn't already exist.
    kibana.index: ".newkibana"

     

    四、elasticsearch-head部署文档

    安装配置docker服务

    #yum -y install git docker

    启动docker服务

    #systemctl start docker

    docker服务开机自动开启      

    #systemctl enable docker

    搜索elasticsearch-head容器镜像

    #docker search elasticsearch-head           

    下载elasticsearch-head基础容器镜像

    # docker pull docker.io/alivv/elasticsearch-head

    更改镜像名称

    # docker tag docker.io/alivv/elasticsearch-head:latest elasticsearch-head:v1

    查看下载的容器镜像

    #docker images

    部署elasticsearch-head服务

    #docker run -d -p 19100:9100 --name elasticsearch-head --hostname elasticsearch-head --restart always elasticsearch-head:v1

  • 相关阅读:
    python 全栈开发,Day43(python全栈11期月考题)
    python 全栈开发,Day43(引子,协程介绍,Greenlet模块,Gevent模块,Gevent之同步与异步)
    python 全栈开发,Day42(Thread类的其他方法,同步锁,死锁与递归锁,信号量,事件,条件,定时器,队列,Python标准模块--concurrent.futures)
    python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)
    python 全栈开发,Day40(进程间通信(队列和管道),进程间的数据共享Manager,进程池Pool)
    python 全栈开发,Day39(进程同步控制(锁,信号量,事件),进程间通信(队列,生产者消费者模型))
    python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
    python 全栈开发,Day37(操作系统的发展史)
    python 全栈开发,Day36(作业讲解(大文件下载以及进度条展示),socket的更多方法介绍,验证客户端链接的合法性hmac,socketserver)
    python 全栈开发,Day35(TCP协议 粘包现象 和解决方案)
  • 原文地址:https://www.cnblogs.com/devops-docker/p/11506704.html
Copyright © 2011-2022 走看看