• [基础服务] [ELK] CentOS7.x安装ELFK / (ElasticSearch + Kibana + Logstash+Filebeat)


    🧲 相关资料

    ElasticSearch + Kibana + Logstash 以及插件安装和配置

    🍁 Docker方式安装

    生产环境不推荐使用该方式安装

    🌿 一:安装Elasticsearch

    Elasticsearch默认elasticsearch.yml
    
    # 集群名称
    cluster.name: my-application-es1
    # 节点名称
    node.name:node-1
    # 数据目录
    path.data:/usr/local/elasticsearch-7.17.3/data
    #log目录
    path.logs:/usr/local/elasticsearch-7.17.3/logs
    #修改 network.host 为 0.0.0.0,表示对外开放,如对特定ip开放则改为指定ip
    network.host: 0.0.0.0
    #配置端口,默认为9200,可更改端口不为9200
    http.port: 9200
    #初始主节点
    cluster.initial_master_nodes: ["node-1"]
    #下面的两个配置在安装elasticsearch-head的时候会用到
    #开启跨域访问支持,默认为false
    http.cors.enabled: true
    #跨域访问允许的域名地址,(允许所有域名)以上使用正则
    http.cors.allow-origin: "*"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    1.1 Docker 部署ES

    # ES相关环境搜索并拉取ES镜像
    docker search elasticsearch
    docker pull elasticsearch:7.17.5
    
    
    # 创建文件夹并授予权限相关
    chmod -R 777 /docker/es9200/
    
    
    
    # docker 运行
    docker run \
      -p 9200:9200 -p 9300:9300 \
      --privileged=true \
      --restart=always \
      --name es9200 \
      -e elasticsearch.username=elastic \
      -e elasticsearch.password=elastic12345 \
      -v /docker/es9200/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
      -v /docker/es9200/plugins:/usr/share/elasticsearch/plugins \
      -v /docker/es9200/logs:/usr/share/elasticsearch/logs \
      -v /docker/es9200/data:/usr/share/elasticsearch/data \
      -d elasticsearch:7.17.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 查看容器日志
    docker logs [你的容器id]
    
    • 1

    在这里插入图片描述

    • 编辑elasticsearch.yml
    #编辑elasticsearch.yml添加主机ip (否则无法访问)
    #设置ip地址,使任意网络均可访问
    network.host: 0.0.0.0
    #放开端口号
    http.port: 9200
    cluster.initial_master_nodes: ["node-1"]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    1.2 配置账号密码

    1.2.1 Elasticsearch X-Pack安全功能

    X-Pack 已经作为 Elastic 公司单独的产品线,提供安全性,警报,监视,报告,机器学习和许多其他功能,有着非常强大的功能。从6.3版本和 7.1 开始, X-Pack 默认包含在 Elasticsearch、Kibana 和 Logstash 中,所以无需再次安装,并且基础级安全永久免费,比如 用户登录权限校验等基础功能,当然也有付费的功能,但是我们用免费的就足够了。

    友情提醒:如果是自己学习使用就不推荐开启这个功能到,一顿操作下来没啥用,反正我开启后又关闭了,注意:必须手动显示的关闭,需要在ES的config/elasticsearch.yml加入这个参数:
    xpack.security.enabled: false

    • xpack内置的用户:

    xpack默认内置了这些用户,在设置xpack的时候,需要为这些用户设置一个默认值。

    用户角色
    elastic超级管理员
    apm_systemAPM服务器在Elasticsearch中存储监视信息时使用
    kibana用于负责Kibana连接Elasticsearch
    logstash_systemLogstash将监控信息存储在Elasticsearch中时使用
    beats_systemBeats在Elasticsearch中存储监视信息时使用
    remote_monitoring_userMetricbeat用户在Elasticsearch中收集和存储监视信息时使用
    1.2.2 在elasticsearch.yml开启xpack 和基础校验
    xpack.security.enabled: true
    xpack.license.self_generated.type: basic
    #这条如果不配,es将起不来
    xpack.security.transport.ssl.enabled: true
    
    • 1
    • 2
    • 3
    • 4
    1.2.3 开启xpack之后重启docker
    # 重启docker
    docker restart [es容器ID]
    # 进入容器
    docker exec -it es9200 /bin/bash
    # 执行下面命令
    elasticsearch-setup-passwords interactive
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Enter password for [elastic]:
    Reenter password for [elastic]:
    Enter password for [kibana]:
    Reenter password for [kibana]:
    Enter password for [logstash_system]:
    Reenter password for [logstash_system]:
    Enter password for [beats_system]:
    Reenter password for [beats_system]:
    Changed password for user [kibana]
    Changed password for user [logstash_system]
    Changed password for user [beats_system]
    Changed password for user [elastic]

    http://ip:9200/ 打开需要输入密码
    在这里插入图片描述

    之后进入es的安装根目录bin下 执行设置用户名和密码的命令,这里需要为4个用户分别设置密码,elastic, kibana, logstash_system,beats_system

    🌿二: 安装Kibana

    Kibana默认kibana.yml
    
    server.name: kibana
    server.host: "0"
    #elasticsearch.hosts: [ "http://elasticsearch:9200" ]
    elasticsearch.hosts: [ "http://自己的elasticsearch的IP:9200" ]
    elasticsearch.username: "es账号"
    elasticsearch.password: "es密码"
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    #设置kibana中文显示
    i18n.locale: "zh-CN"
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2.1 拉取镜像

    docker search kibana
    # 与ES选择同版本
    docker pull kibana:7.17.5
    
    • 1
    • 2
    • 3

    2.2 预置挂载目录和文件

    # 创建目录
    mkdir -p /docker/kibana5601/config/
    
    # 追加相关文件
    sudo tee /docker/kibana5601/config/kibana.yml <<-'EOF'
    server.name: kibana
    server.host: "0.0.0.0"
    kibana.index: ".kibana"
    #elasticsearch.hosts: [ "http://elasticsearch:9200" ]
    elasticsearch.hosts: [ "http://自己的es局域网网关路由的IP:9200" ]
    elasticsearch.username: "es账号"
    elasticsearch.password: "es密码"
    # 开启xpack对es监控
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    #设置kibana中文显示
    i18n.locale: "zh-CN"
    EOF
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2.3 运行安装

    #运行kibana 注意IP一定不要写错
    docker run \
    -p 5601:5601 \
    --privileged=true \
    --restart=always \
    --name kibana5601 \
    -v /docker/kibana5601/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
    -e ELASTICSEARCH_HOSTS=http://自己的elasticsearch的IP:9200 \
    -d kibana:7.17.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • curl 命令后没有报错信息
      在这里插入图片描述
    • 成功安装
      在这里插入图片描述

    登录设置的elastic 账号进行登录

    在这里插入图片描述

    在这里插入图片描述

    ❗❗ #! this request accesses system indices: [.kibana_7.17.5_001, .kibana_task_manager_7.17.5_001], but in a future major version, direct access to system indices will be prevented by default
    该请求访问系统索引:[.kibana7.17.5_001],但在未来的主要版本中,默认情况下将阻止直接访问系统索引

    📌说我们访问了系统索引,所以我们尽量别访问系统的索引, 在后面ES的主要版本中,会默认禁止直接访问系统索引。只要我们不访问系统索引应该就不会出现这个警告。

    2.4 基础设置

    🌿 三: 安装Logstash

    • 查找拉取镜像
    docker search logstash
    # 与ES选择同版本
    docker pull logstash:7.17.5
    # 运行安装相关镜像
    
    • 1
    • 2
    • 3
    • 4

    🌿 四: 安装Filebeat

    filebeat.yml (默认)

    # ============================== Filebeat inputs ===============================
    filebeat.inputs: 
    # ==========RS log==========
    # 定义要采集项目的log标签,如rs项目debug类型的日志,标签可以设为:rs_debug,并声明log路径 
    - type: log
      enabled: true
      tags: ["rs_debug"]
      paths:
        - /home/rs/logs/debug.log
    # 采集同一台服务器上的多个服务,使用 - 进行分隔,如mn项目的error类型的日志
    - type: log
      enabled: true
      tags: ["mn_error"]
      paths:
        - /home/mn/logs/error.log
    # ============================== Filebeat modules ==============================
    filebeat.config.modules:
      # Glob pattern for configuration loading
      path: ${path.config}/modules.d/*.yml
      # Set to true to enable config reloading
      reload.enabled: false
    # ======================= Elasticsearch template setting =======================
    setup.template.settings:
      index.number_of_shards: 1
      index.number_of_replicas: 0
    # Kibana 配置,Kibana所在服务器的内网地址
    setup.kibana:
      host: "127.0.0.1:5601"
    # ================================== Outputs ===================================
    # Logstash Output 注意:Logstash和Elasticsearch选择一个作为日志输出即可,不能同时选择
    output.logstash:
      hosts: ["127.0.0.1:5044"]
    # Processors 配置,保持默认
    processors:
      - add_host_metadata: ~
      - add_cloud_metadata: ~
      - add_docker_metadata: ~
      - add_kubernetes_metadata: ~
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    Docker 安装配置

    docker search filebeat
    # 与ES选择同版本
    docker pull filebeat:7.17.5
    
    # 运行安装继镜像
    docker run --restart=always -d \
    --name=filebeat5044 \
    -v /docker/elk/filebeat5044/filebeat.yml:/usr/share/filebeat/filebeat.yml \
    -v /docker/elk/filebeat5044/:/logs/ \
    --hostname=$(hostname) \
    docker.elastic.co/beats/filebeat:7.17.5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    🍁 KVM方式安装 (待补充)

    🍁 参考资料 & 致谢

    [1] Linux安装ElasticSearch、Kibana和Elasticsearch-head

  • 相关阅读:
    Spring Aop问题汇总
    基于STM32 ZigBee无线远程火灾报警监控系统物联网温度烟雾
    L49.linux命令每日一练 -- 第八章 Linux磁盘与文件系统管理命令 -- fdisk和partprobe
    Node.js--》简易资金管理系统后台项目实战(后端)
    公众号查题:一步一步搭建自己的查题公众号(内含永久接口)
    CSS3选择器详解 前端开发入门笔记(六)
    javapoet 注释中添加枚举值
    ArtFlow: Unbiased Image Style Transfer via Reversible Neural Flows
    app小程序手机端Python爬虫实战02-uiautomator2自动化抓取开发环境搭建
    Packet Sniffing and Spoofing Lab(报文嗅探&欺骗SEED 实验)
  • 原文地址:https://blog.csdn.net/YangCheney/article/details/125915397