美文网首页
ELK + filebeat 日志分析工具的部署和简单应用

ELK + filebeat 日志分析工具的部署和简单应用

作者: SateZheng | 来源:发表于2016-10-14 11:42 被阅读4414次

    参考文章:https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/

    环境: 
        - 两台 CentOS 6.5
        - elasticsearch-2.4.1
        - kibana-4.6.1
        - logstash-2.4.0
        - filebeat-1.3.1
    过程:
        - 安装 JDK
        - 安装 Elasticsearch
        - 安装 Kibana
        - 安装 Nginx
        - 安装 Logstash
        - 配置 Logstash
        - 安装 filebeat
        - 访问
    

    ELK 服务器中:

    安装 Java 环境

    • https://www.java.com/zh_CN/download/manual.jsp中下载java安装包

    • 解压到/usr/local/jdk 目录下

    • /etc/profile文件中追加:

    export JAVA_HOME=/usr/local/jdk
    export CLASS_PATH=$JAVA_HOME/lib
    export PATH=$JAVA_HOME/bin:$PATH
    
    • 使设置的环境变量生效。 source /etc/profile

    安装 Elasticsearch

    • https://www.elastic.co/downloads中下载Elasticsearch的安装包。

    • 解压,并移动到/usr/local/elasticsearch目录下。

    $ tar xvf elasticsearch-2.4.1.zip
    $ mv  elasticsearch-2.4.1  /usr/local/elasticsearch
    
    • 修改/usr/local/elasticsearch/config/elasticsearch.yml,来更改监听端口,监听127.0.0.1,提高安全性。
    # 如下更改
    network.host: 127.0.0.1
    
    • 启动(会有报错)
    $ cd /usr/local/elasticsearch/
    $ bash bin/elasticsearch -d
    # 会有报错,信息如下:
    Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
    

    -d是让es保持后台运行。
    报错信息提示我们es无法用root用户启动,所以可以创建elk用户,来启动es

    安装 kibana

    • https://www.elastic.co/downloads中下载kibana的安装包。

    • 解压,并移动到/usr/local/kibana目录下。

    • 修改/usr/local/kibana/config/kibana.yml,来更改监听端口,监听127.0.0.1

    # 修改如下
    server.host: "127.0.0.1"
    
    • 启动,观察/usr/local/kibana/nohup.out是否有报错信息
    $ cd /usr/local/kibana
    $ nohup bin/kibana &
    

    安装 Nginx

    • 直接yum安装
    $ yum install nginx
    
    • 修改/etc/nginx/conf.d/default.conf文件,如下:
    server {
        listen       80;
        server_name  _;
    
        location / {
            proxy_pass http://127.0.0.1:5601/;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    }
    
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
    
    • 启动nginx
    # 测试配置是否正常
    $ nginx -t
    # 启动
    $ /etc/init.d/nginx start
    

    安装 Logstash

    • https://www.elastic.co/downloads中下载Logstash的安装包。

    • 解压,并移动到/usr/local/logstash目录下。

    • 验证服务可用性

    $ cd /usr/local/logstash
    $ bin/logstash -e 'input { stdin { } } output { stdout {} }'
    Settings: Default pipeline workers: 2
    Pipeline main started
    # 任意输入,看输出是否正常,如下:
    hello
    2016-10-13T10:07:01.502Z satezheng hello
    # CTRL-D 退出
    

    配置 Logstash

    我们需要配置 Logstash 以指明从哪里读取数据,向哪里输出数据。这个过程我们称之为定义 Logstash 管道(Logstash Pipeline)。
    通常一个管道需要包括必须的输入(input),输出(output),和一个可选项目 Filter

    配置 ssl

    客户端和服务器之间通信使用ssl来认证身份,更加安全。

    • 修改/etc/pki/tls/openssl.cnf文件
    # 找到 [v3_ca] 段,添加下面一行,保存退出。
    subjectAltName = IP: logstash_server_ip
    
    • 生成srt文件
    $ cd /etc/pki/tls
    $ openssl req -config openssl.cnf -x509 -days 2650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
    
    • 发送srt文件到客户端
    $ cd /etc/pki/tls
    $ scp certs/logstash-forwarder.crt 客户端IP:/etc/pki/tls/certs
    
    配置 Logstash 管道文件
    • 创建filebeat-input.conf文件
    $ mkdir /usr/local/logstash/conf
    $ cd /usr/local/logstash/conf
    $ vim filebeat-input.conf
    # 写入:
    input {
      beats {
        port => 5044
            type => "logs"
            ssl => true
            ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
            ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
      }
    }
    
    • 创建filebeat-output.conf文件
    $ vim filebeat-input.conf
    # 写入:
    output {
      elasticsearch { hosts => ["127.0.0.1:9200"] }
      stdout { codec => rubydebug }
    }
    
    启动
    $ cd /usr/local/logstash
    $ nohup bin/logstash -f conf/ &
    

    客户端安装 filebeat

    filebeat代替之前的ogstash-forwarder

    • https://www.elastic.co/downloads/beats/filebeat下载

    • 解压并放到/usr/local/filebeat目录下

    • 修改filebeat.yml

    $ cd /usr/local/filebeat
    $ vim filebeat.yml
    

    写入:

    filebeat:
      prospectors:
        -
          paths:
            - /var/log/*
          input_type: log
          document_type: log
      registry_file: /var/lib/filebeat/registry
    
    output:
      logstash:
        hosts: ["服务端IP:5044"]
        tls:
          certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
    
    shipper:
    
    logging:
      files:
        rotateeverybytes: 10485760 # = 10MB
    
    • 启动
    $ cd /usr/local/filebeat
    $ nohup ./filebeat -e -c filebeat.yml &
    
    

    访问服务端IP来验证是否成功,有问题可以根据输出日志来解决。

    相关文章

      网友评论

          本文标题:ELK + filebeat 日志分析工具的部署和简单应用

          本文链接:https://www.haomeiwen.com/subject/agvgyttx.html