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的三个组建就全部启动了。

  • 相关阅读:
    Python元组、列表、字典
    测试通过Word直接发布博文
    Python环境搭建(windows)
    hdu 4003 Find Metal Mineral 树形DP
    poj 1986 Distance Queries LCA
    poj 1470 Closest Common Ancestors LCA
    poj 1330 Nearest Common Ancestors LCA
    hdu 3046 Pleasant sheep and big big wolf 最小割
    poj 3281 Dining 最大流
    zoj 2760 How Many Shortest Path 最大流
  • 原文地址:https://www.cnblogs.com/yisany/p/10218455.html
Copyright © 2011-2022 走看看