zoukankan      html  css  js  c++  java
  • Centos7.5搭建ELK-6.5.0日志分析平台

    Centos7.5搭建ELK-6.5.0日志分析平台

    1. 简介

    工作工程中,不论是开发还是运维,都会遇到各种各样的日志,主要包括系统日志、应用程序日志和安全日志,对于开发人员来说,查看日志,可以实时查看程序的运行错误,以及性能分析,通常,一个大中型的应用程序会被部署到多台服务器,那日志文件也会分散到不同的机器上,这样查看日志难道要一台一台去查看?显然是太麻烦了,开源的日志分析系统 ELK 完美的解决了这个问题。
    ELK 并不是一个独立的系统,她是由 ElasticSearch、Logstash、Kibana 三个开源的工具组成。

    • ElasticSearch

      ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    • Logstash

      Logstash 是一个开源的日志分析、收集工具,并将日志存储以供以后使用。

    • Kibana

      Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

    2. 安装

    1. 下载elk的三个组建,es,logstash,kibana

      https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.tar.gz
      https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
      https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz
      
    2. 设置参数

      • 设置内核参数

        vim /etc/sysctl.conf   # 添加下面一行
        vm.max_map_count = 262144
        systcl -p    ## 加载配置
        
      • 修改系统最大文件打开数

        vim /etc/security/limits.conf   ##添加如下两行,保存后重新登陆用户及生效
        * soft nofile 65536
        * hard nofile 65536
        
      • 关闭防火墙

        service firewalld stop
        
    3. 解压并移动

      ## 新建目录
      mkdir /usr/local/elk
      ## 解压
      tar -vxzf elasticsearch-6.5.0.tar.gz
      tar -vxzf kibana-6.5.0-linux-x86_64.tar.gz 
      tar -vxzf logstash-6.5.0.tar.gz 
      ## 移动
      mv elasticsearch-6.5.0 /usr/local/elk/
      mv kibana-6.5.0-linux-x86_64 /usr/local/elk/
      mv logstash-6.5.0 /usr/local/elk/
      
    4. 安装elasticsearch数据存储器,用于数据存储

      vim /usr/local/elk/elasticsearch-6.5.0/config/elasticsearch.yml
      # ---------------------------------- Cluster -----------------------------------
      cluster.name: ES-cluster    ##设置集群名称,集群内的节点都要设置相同,可自定义
      # ------------------------------------ Node ------------------------------------
      node.name: node-1     ## 节点名称,自定义,各个节点不可相同
      # ----------------------------------- Paths ------------------------------------
      path.data: /usr/local/elk/elasticsearch-6.5.0/data
      path.logs: /usr/local/elk/elasticsearch-6.5.0/logs
      # ---------------------------------- Network -----------------------------------
      network.host: 192.168.9.90    ## 本机IP
      http.port: 9200    ## 端口,默认9200
      # --------------------------------- Discovery ----------------------------------
      discovery.zen.ping.unicast.hosts: ["192.168.9.89","192.168.9.90"]     ## 此集群内所有节点的IP地址,这里没有使用自动发现,而是指定地址发现,因为规模较小
      discovery.zen.minimum_master_nodes: 1 
      
    5. 添加用户,不能使用root用户启动

      groupadd -g 1008 elasticsearch
      useradd -g 1008 -u 1008 elasticsearch
      chown -R elasticsearch:elasticsearch /usr/local/elk/elasticsearch-6.5.0/
      
    6. 启动elasticsearch

      su elasticsearch
      ./elasticsearch
      ## 验证是否启动成功
      ps -ef | grep elasticsearch
      
    7. 安装kibana

      vim /usr/local/elk/kibana-6.5.0-linux-x86_64/config/kibana.yml 
      server.port: 5601     ## kibana默认端口
      server.host: "192.168.9.90"    ## 服务的host,直接填本机IP即可。
      elasticsearch.url: "http://192.168.9.89:9200"   ## elasticsearch的连接地址,集群时,连接其中一台节点即可。
      
    8. 启动kibana

      cd bin
      ./kibana
      
    9. 安装logstash

      vim /usr/local/elk/logstash-6.5.0/config/logstash.yml 
      ##修改host为0.0.0.0,这样别的电脑就可以连接整个logstash,不然只能本机连接。
      http.host: "0.0.0.0"   
      
    10. 配置logstash配置文件,保存在elk/conf/all.conf

      input {                                      ## input为输入口
              redis {
                      data_type => "list"          ## 队列输入,默认输入类型为list
                      db => 10                     ## 指定redis库
                      key => "redis-pipeline"      ## redis是key-value式的内存数据库,指定key即是指定队列的标识key的大概意思
                      host => "192.168.9.79"       ## 下面是连接信息,如果有密码则需要添加password这一项
                      port => "6379"                
                      threads => 5                 ## 线程数
              }
      }
       
      filter {        ## 过滤器filter
              grok {    ## grok插件,可以通过正则匹配,将日志的message进行格式化转换。
                      match => ["message","%{YEAR:YEAR}-%{MONTHNUM:MONTH}-%{MONTHDAY:DAY} %{HOUR:HOUR}:%{MINUTE:MIN}:%{SECOND:SEC},(?<MSEC>([0-9]*)) %{LOGLEVEL:loglevel} [(?<Classname>(.*))] - (?<Content>(.*))"]
              }
      }
       
      output {      ## 输出elasticsearch
              elasticsearch {
                      hosts => ["192.168.9.89:9200","192.168.9.90:9200"]    ## 输出的elasticsearch的数据节点IP
                      index => "logstash-test"      ## 索引值
                      #user => "elastic"            ## elasticsearch 的用户密码,需要安装x-pack才会有,这里先不用
                      #password => "changeme"
              }
      }
      
    11. 启动logstash

      cd /usr/local/elk/logstash-6.5.0/bin
      ./logstash -f /usr/local/elk/conf/all.conf
      

    到现在,elk的三个组建就全部启动了。

  • 相关阅读:
    poj 2362 Square
    poj 1011 Sticks
    hust 1062 Divisibility
    hdu 4115 Eliminate the Conflict
    Android
    android stdio 快捷键
    Android Lint的使用
    Android studio导出配置
    fragment显示 Binary XML file line #12: Error inflating class fragment 错误
    markdown 字体颜色
  • 原文地址:https://www.cnblogs.com/yisany/p/10218455.html
Copyright © 2011-2022 走看看