zoukankan      html  css  js  c++  java
  • ELK搭建(filebeat、elasticsearch、logstash、kibana)

    ELK部署(文章有点儿长,搭建时请到官网将tar包下载好,按步骤可以完成搭建使用)

    ELK指的是ElasticSearchLogStashKibana三个开源工具

    LogStash是负责数据的收集和过滤处理

    ElasticSearch 是一个开源分布式搜索引擎,负责数据的存储、检索和分析

    Kibana 是提供可视化的页面,对数据进行可视化预览

    首先前提安装好java环境,java1.8

    yum -y list java

    yum install java-1.8.0-openjdk.x86_64

    然后在官方下载ElasticSearch Kibana LogStash包

    https://www.elastic.co/cn/downloads

    这边用的版本elasticsearch-6.3.2 Kibana-6.3.2 LogStash-6.3.2

    一、对系统参数做调整

    vim /etc/security/limits.conf (修改如下内容)

    * soft nofile 65536

    * hard nofile 65536

    * soft nproc 65536

    * hard nproc 65536

     

    vim /etc/security/limits.d/20-nproc.conf (修改如下内容)

    * soft nproc  4096

    root soft nproc  unlimited

    vim /etc/sysctl.conf  (添加如下内容)

    vm.max_map_count = 655360

    fs.file-max=655360

    sysctl -p 使内容生效

    确保所有生效 必须重启服务器一遍 reboot

    二、安装Elasticsearch

    elasticsearch需要新建一个用户用来启动

    useradd -d /home/els -m els

    su els

    mkdir -p /home/els/tools/

    tar包放置 /home/els/tools

    cd /home/els/tools

    tar -xzf elasticsearch-6.3.2.tar.gz

    mv elasticsearch-6.3.2 /home/els/

    cd /home/els/elasticsearch-6.3.2/

    vim config/elasticsearch.yml(修改如下内容)

    path.data: /home/els/elasticsearch-6.3.2/data    #自定义 数据存放地址

    path.logs: /home/els/elasticsearch-6.3.2/logs   #自定义 日志存放地址

    http.cors.enabled: true #开启跨域访问支持 默认为false

    http.cors.allow-origin: "*" #跨域访问允许的域名地址,支持正则

    network.host: 0.0.0.0  #任意IP可以访问

    chown -R els.els /home/els/elasticsearch-6.3.2

    nohup ./bin/elasticsearch &   

    浏览器访问 ip:9200 得到如下内容 便搭建成功

    三、搭建elasticsearch_head

    mkdir -p /root/ELK

    cd /root/ELK

    yum install git npm

    git clone https://github.com/mobz/elasticsearch-head.git

    cd elasticsearch-head

    npm install

    nohup npm run start &

    然后浏览器访问ip:9100 连接你的Elasticsearch  ip:9200

    四、安装Logstash

    Logstash的安装同样如此,可以直接用root用户 将6.3.2的tar包解压,进入目录

    Vim /你定义的目录/logstash-6.3.2/config/test.conf

    input {

    file{

    path => [“/var/log/messages”] #这可以是个列表 多个Log日志也是可以的

        start_position => "beginning"

    }

    }

    output{

    ctdout{

    codec => rubydebug #直接输出到屏幕

    }

    elasticsearch {

            hosts => ["http://13.1.18.135:9200"]  #同时输出到elastisearch

            index => "syslog-%{+YYYY.MM.dd}"

            action => "index"

            document_type => "test"

    }

    cd /你定义的目录/logstash-6.3.2/

    ./bin/logstash  -f config/test.conf

    屏幕有输出,同时浏览器访问ip:9100,也能看到根据索引的输出信息

    后期会详细说Logstash检索功能以及通过缓存中间件来传递数据接收数据

    五、安装kibana

    同样时将tar包解压到你的目录下

    tar zxvf kibana-6.2.2-darwin-x86_64.tar.gz

    cd /你的目录/kibana-6.2.2-darwin-x86_64

    vim config/kibana.yml (修改如下内容)

    server.host: "0.0.0.0"

    elasticsearch.url: "http://localhost:9200"   #我这里使用同一台服务器 不是的话请用IP

    nohup ./bin/kibana -H 0.0.0.0 &  #后台启用

    浏览器访问 ip:5601

    然后到左边菜单最下方Management 设置索引值

    create Index Patern

    输入 syslog* *匹配所有,与之前Logstash中输出outputindex

    最后创建

    然后到左边菜单中Discover中查看信息

    左边设置当前的索引 ,右上角设置检索日期,和设置自动更新

    搭建完成

    接着以一个数据传递方式添加一个filebeat工具 是个轻量级的数据采集 可以直接输出到Logstash或者elasticsearch

    配置同样简单

    下载filebeat-6.3.2-linux-x86_64.tar.gz

    解压到你的目录下 (修改下输入参数和输出参数)

    vim filebeat-6.3.2-linux-x86_64/filebeat.yml

    修改参数请按yml格式

    可以输入多个地址

    输入配置:

    参数type , enabled, paths, fields(这个参数传入Logstash字段,用于判断)

    输出配置:

    output.logstash:

    hosts: ["13.1.18.135:5022"] #表示传输到主机的5022端口负责接送数据

    开启filebeat  注意-e -c顺序

    ./filebeat -e -c filebeat.yml

    #可自行使用

    #output.redis:  

    # hosts: ["13.1.18.135:6379"]

    #  password: '123456'  #redis.confrequirepass 123456 密码必须配置

    #  key: "log_file" #传输的键值

    #  db: 0   #0

    #  timeout: 5  #超时时间

    输出配置可以有Elasticsearch,中间件缓存 redis,rabbitmq,kafka

    此时需要修改之前的Logstash中配置文件的test.confinput

    input {

           beats {

           port => 5022  #开启5022端口接收数据

          #Filebeat传来数据

    }

    }   

    #同上的redis配置

    #input {

    #        redis{

    #        port => '6379'

    #        host => '13.1.18.135'

    #        data_type => "list"

    #        type => "log"

    #        key => "log_file"

    #        db => '0'

    #        password => '123456'

    #}

    重启启动logstash

    ./bin/logstash  -f config/test.conf

    当前的传输过程如下图

     

    后期需要可以为多个filebeat用于多台服务器的日志同时采集,elastcsearch也可以设置为多个节点

    下篇文章关于logstash的检索配置

  • 相关阅读:
    HTTP之multipart/formdata格式
    PHP之什么是CGI
    ObjectiveC之多语言的预编译头
    JS之addEventListener
    JS之要点Review
    iOS之JSON框架的选择
    iOS之Block笔记
    iOS之HTTP框架的选择
    PHP之自动加载对象
    HTTP之LastModified和ETag
  • 原文地址:https://www.cnblogs.com/Liang-jc/p/9584807.html
Copyright © 2011-2022 走看看