头图

介绍

架构
image.png

目标

  • 在CentOS7中搭建ELK分布式日志管理;
  • 熟悉ElasticSearch 集群配置;
  • 熟悉Logstash+FileBeat数据采集配置;
  • 熟悉Kibana可视化管理配置;

环境

  • VMware
  • CentOS7
  • Jdk 1.8
  • elasticsearch-7.13.3-linux-x86_64.tar.gz
  • kibana-7.13.3-linux-x86_64.tar.gz
  • logstash-7.13.3-linux-x86_64.tar.gz
  • filebeat-7.13.3-linux-x86_64.tar.gz

分析

  • 虚拟机节点
    image.png
  • ElasticSearch 集群构建

    节点说明
    192.168.157.120ES集群1
    192.168.157.121ES集群2
  • Logstash + FileBeat 日志采集节点

    节点说明
    192.168.157.130日志节点
    192.168.157.131日志节点
    192.168.157.132日志节点
  • Kibana 可视化管理

    节点说明
    192.168.157.122:5601可视化地址

约定

  • 下载存放目录:/mysoft
  • 安装顺序:ElasticSearch -> Kibana -> Logstash + filebeat
  • ElasticSearch 约定

    模块内容
    软件安装位置/usr/local/elasticsearch
    集群端口9200
    集群节点192.168.157.122 192.168.157.122
    集群名称ES
    数据文件存放目录/usr/local/elasticsearch/data
    日志文件存放目录/usr/local/elasticsearch/logs
    用户(非root)elastic
    密码(非root)elastic
  • Kibana 约定

    模块内容
    软件安装位置/usr/local/Kibana
    本机端口5601
    本机地址192.168.157.122
    ES集群节点["http://192.168.157.120:9200","http://192.168.157.121:9200"]
    用户(非root)kibana
    密码(非root)kibana
  • Logstash +fileBeat 约定

    模块内容
    Logstash安装位置/usr/local/elk/logstash
    FileBeat安装位置/usr/local/elk/fileBeat
    部署节点192.168.157.121(这里配置一个收集点)
    发送ES节点["http://192.168.157.120:9200","http://192.168.157.121:9200"]

ElasticSearch 安装

  • 通用操作
  1. 进入目录
    cm /mysoft
  2. 解压包
    tar zxvf elasticsearch-7.13.3-linux-x86_64.tar.gz
  3. 移动并修改名称
    mv elasticsearch-7.13.3 /usr/local/elasticsearch
  4. jdk问题处理
    vi /usr/local/elasticsearch/bin/elasticsearch-env
    image.png
  5. 用户与授权

    # 创建用户
    useradd elastic
    # 设置密码
    passwd elastic
    # 赋予用户权限
    chown -R elastic:elastic /usr/local/elasticsearch/
  • 配置ES节点-1

    #设置集群名称(集群名称,节点之间要保持一致)
    cluster.name: my-application
    #设置节点名称(节点名称,集群内要唯一  例:node-1 ,node-2)
    node.name: node-1
    # elasticsearch数据文件存放目录
    path.data: /usr/local/elasticsearch/data
    # elasticsearch日志文件存放目录
    path.logs: /usr/local/elasticsearch/logs
    #对所有IP开放
    network.host: 0.0.0.0
    # HTTP端口号
    http.port: 9200
    # ES集群地址
    discovery.seed_hosts: ["192.168.157.120", "192.168.157.121"]
    # ES集群节点
    cluster.initial_master_nodes: ["node-1", "node-2"]
    #跨域配置
    #action.destructive_requires_name: true
  • 配置ES节点-2

    #设置集群名称(集群名称,节点之间要保持一致)
    cluster.name: my-application
    #设置节点名称(节点名称,集群内要唯一  例:node-1 ,node-2)
    node.name: node-2
    # elasticsearch数据文件存放目录
    path.data: /usr/local/elasticsearch/data
    # elasticsearch日志文件存放目录
    path.logs: /usr/local/elasticsearch/logs
    #对所有IP开放
    network.host: 0.0.0.0
    # HTTP端口号
    http.port: 9200
    # ES集群地址
    discovery.seed_hosts: ["192.168.157.120", "192.168.157.121"]
    # ES集群节点
    cluster.initial_master_nodes: ["node-1", "node-2"]
    #跨域配置
    #action.destructive_requires_name: true
  • 启动ES集群

    # 切换用户 
    su elastic  
    # 要使用 授权用户 elastic 启动  
    su elastic -l -c "/usr/local/elasticsearch/bin/elasticsearch"    # 调试启动  
    su elastic -l -c "/usr/local/elasticsearch/bin/elasticsearch -d"  #后台启动
  • 查看状态
    netstat -nltp查看端口号
    image.png
  • 单节点测试

    # 分别访问集群节点
    http://192.168.157.120:9200/
    http://192.168.157.121:9200/

    可以看到如下信息,表示单节点安装成功
    image.png

  • 集群节点测试

    # 访问地址 查看集群节点状态
    集群列表:http://192.168.157.120:9200/_cat/nodes?v
    集群状态:http://192.168.157.120:9200/_cluster/health

    可以看到如下信息,表示集群配置安装成功
    image.png

kibana 安装

  • 安装

    cm /mysoft
    tar zxvf kibana-7.13.3-linux-x86_64.tar.gz
    mv kibana-7.13.3 /usr/local/kibana
    
  • 用户与授权

    # 创建用户
    useradd kibana
    # 设置密码
    passwd kibana
    # 赋予用户权限
    chown -R kibana:kibana /usr/local/kibana/
  • 配置

    cd /usr/local/kibana/config/kibana.yml 
    # 配置本机ip 
    server.host: "192.168.157.122" 
    # 配置es集群url 
    elasticsearch.hosts: ["http://192.168.157.120:9200","http://192.168.157.121:9200"]
    
  • 启动

    su kibana #切换用户
    cd /usr/local/kibana
    ./bin/kibana
    
  • 访问

    地址:http://192.168.157.122:5601/app/home/

    image.png

logstash 安装

  • 安装

    cm /mysoft
    tar zxvf logstash-7.13.3-linux-x86_64.tar.gz
    mv logstash-7.13.3 /usr/local/logstash
    
  • 启动

    cd /usr/local/logstash
    ./bin/logstash
    
  • 配置

    案例:配置收集本机elasticsearch日志,然后推给ES。
    
    input {
     file {
         # path  可以用/var/log/*.log,/var/log/**/*.log,如果是/var/log则是/var/log/*.log
         path => "/usr/local/elasticsearch/logs/my-application.log"
         # 以JSON格式读取日志
         codec => "json"
         # type 通用选项. 用于激活过滤器
         type => "elasticsearch"
         # start_position 选择logstash开始读取文件的位置,begining或者end。
         start_position => "beginning" #从文件开始处读写
     }
    }
    
    # output plugin  输出插件,将事件发送到特定目标。
    output{
     elasticsearch {
         # elasticseach host配置
         hosts => ["http://192.168.157.120:9200"]
         #对日志进行索引归档
         index => "es-%{+YYYY.MM.dd}" 
     }
     # 输出进行格式化,采用Ruby库来解析日志 
     stdout{codec => rubydebug}
    }
    

综合测试

  • 访问kibana可视化

    地址:http://192.168.157.122:5601/app/home/ 
  • 测试收集的ES日志
    image.png
  • 配置索引
    image.png
    image.png
    image.png
  • 查看ES日志详情
    image.png

Jack
1 声望0 粉丝