zoukankan      html  css  js  c++  java
  • filebeat+kafka+logstash+Elasticsearch+Kibana日志收集系统搭建

    原理架构图:

    一、Elasticsearch单机部署

    创建elastic用户组及elastic用户

    # 注意:elasticsearch不能使用root启动,不然会报错!
    
    ]# groupadd elastic
    ]# useradd elastic -g elastic -p 123456
    
    # 更改elk文件夹及内部文件的所属用户及组为elastic:elastic
    
    ]# chown -R elastic:elastic /home/soft/elastic
    

    修改配置:

    ]# vi elasticsearch.yml
    
    ]# network.host: 10.193.196.57
    ]# discovery.seed_hosts: ["10.193.196.57", "127.0.0.1"]
    ]# -Xms8g  #根据自己服务器环境来配置
    ]# -Xmx8g  
    
    # 新增配置:属于gateway属性,解决跨域问题
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    
    # 新增配置:(属于Memory属性)
    bootstrap.memory_lock: false
    bootstrap.system_call_filter: false
    
    # 切换到elastic用户再启动
    
    ]# su elastic
    ]# ./bin/elasticsearch -d  ## -d 后台启动
    
    # 虚拟内存数量超标,Linux限制一个进程可访问的VMA(虚拟内存)数量。虚拟内存区域是一个连续的虚拟地址空间区域。在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。调优这个值将限制进程可拥有VMA的数量。
    
    # 使用root用户修改/etc/sysctl.conf文件
    
    # 添加内容
    ]# vim /etc/sysctl.conf
    vm.max_map_count = 262144
    
    检查查看
    sysctl -p     # 配置验证
    

    调整ES日志模板

    curl -H "Content-Type:application/json" -XPUT http://10.4.xx.xx:9200/_template/k8s -d '{
      "template" : "k8s*",
      "index_patterns": ["k8s*"],  
      "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 0
      }
    }'
    
    elasticsearch-head
    1)源码安装,通过npm run start 启动(不推荐)
    2)通过docker安装(推荐)
    3)通过chrome插件安装(推荐)
    4)通过es的plugin方式安装(不推荐)
    

    二、Logstash单机部署

    2.1 下载并解压
    
    ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.6.2.tar.gz
    ~]# tar xf logstash-7.6.2.tar.gz -C /opt/
    ~]# ln -s logstash-7.6.2 logstash       ## 做软链方便后期升级
    
    2.2 配置logstash
    
    ~]# vi logstash.conf
    input {
      kafka {
        bootstrap_servers => ["10.193.xx.xx:9098"]      ## 填写kafka地址
        topics => "filebeat"
        group_id => "es"
        codec => json
      }
    }
    
    filter {
      grok {
      match => {
        "message" => "^[(?<createtime>%{YEAR}[./-]%{MONTHNUM}[./-]%{MONTHDAY}[- ]%{TIME}?)]|(?<appname>[-%{WORD}]+?)|(?<thread>[w-]+?)|%{LOGLEVEL:loglevel}"
      }
      }
    
    date {
        match => ["createtime", "yyyy-MM-dd HH:mm:ss"]
        target => "@timestamp"
      }
      mutate{
        remove_field => ["beat.name"]
      }
    }
    
    output {
        elasticsearch {
            hosts => ["http://10.193.xx.xx:9200"]      ##填写es地址
        }
    }
    
    2.3 启动logstash
    
    nohup ./bin/logstash -f config/logstash.conf &    ##后台启动
    
    2.4 logstash数据接受测试:
    数据输出到控制台是否正常配置文件中修改ouput部分
    #output {
    #    stdout { codec => rubydebug }
    #}
    

    三、zookeeper单机部署

    3.1 下载并解压至指定目录
    ~]# wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
    ~]# tar xf zookeeper-3.4.14.tar.gz -C /opt/
    ~]# ln -s zookeeper-3.4.14 zookeeper
    
    3.2 修改配置文件
    ~]# cp zoo_sample.cfg zoo.cfg
    
    3.3 启动es
    ./bin/zkServer.sh start ## 自带启动脚本
    

    四、kafka单机部署

    4.1 下载并解压指定目录
    
    ~]# wget http://mirror.apache-kr.org/kafka/2.1.0/kafka_2.13-2.4.1.tgz
    ~]# tar xf kafka_2.13-2.4.1.tar.gz -C /opt/
    ~]# ln -s kafka_2.13-2.4.1  kafka
    
    4.2 修改配置
    
    listeners=PLAINTEXT://:9098   ##修改端口
    zookeeper.connect=10.193.196.57:2188     ## 指定zk地址
    log.dirs=/opt/soft/logs/kafka/kafka-logs   ## 修改日志路径
    
    4.3 启动kafka
    ./bin/kafka-server-start.sh   ## 自带启动脚本
    
    4.4 创建topic
    ~]# ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_name
    
    ## 通过zk客户端连接验证
    ~]# ./bin/zkCli.sh -server 10.193.xx.xx:2188
    [zk: 10.193.xx.xx:2188(CONNECTED) 3] ls /brokers/topics
    
    
    
    五、kibana单机部署
    
    5.1 下载并解压至指定目录
    ~]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz
    ~]# tar -zxvf kibana-6.4.0-linux-x86_64.tar.gz -C /opt/
    ~]# ln -s kibana-6.4.0-linux-x86_64 kibana
    
    5.2 修改主配置文件
    
    ~]# vim config/kibana.yml       ## 修改内容如下
    server.port: 5601
    server.host: "192.168.xx.xx"
    server.name: "kibana94"
    elasticsearch.url: "http://192.168.0.94:9200"      ## 指定es地址
    
    5.3 启动kibana
    
    ~]# nohup ./bin/kibana &   ## 后台启动
    
    5.4 验证访问
    ![](https://img2020.cnblogs.com/blog/1864043/202004/1864043-20200414111411127-543707324.png)
    
    
  • 相关阅读:
    Dagger2 (二) 进阶篇
    Dagger2 (一) 入坑篇
    RoboGuice 3.0 (三)总结篇
    RoboGuice 3.0 (二)进阶篇
    RoboGuice 3.0 (一)入坑篇
    spring源码
    Java transient关键字使用
    Spring源码学习
    jvm系列(一):java类的加载机制
    Java中newInstance()和new()
  • 原文地址:https://www.cnblogs.com/Mongol-J/p/12667370.html
Copyright © 2011-2022 走看看