zoukankan      html  css  js  c++  java
  • Linux操作篇之ELK

    一、介绍

    1、ELK是一个完整的集中的日志收集分析系统。包含以下特点:

    a、能够收集多种源的日志数据

    b、能够稳定的把日志数据传输到中间系统

    c、多种存储日志数据的方式

    d、可以支持可视化界面分析

    e、能够提供错误报告、提前预警

    2、ELK是三个软件首字母缩写,分别是

    elasticsearch:分布式搜索引擎,提供收集、分析、存储三大功能

    logstash:收集、分析、过滤日志的工具,支持大量的数据收集方式。工作方式为C/S模式。client安装在需收集日志的设备上,server端负责将各个client收集到的日志进行过滤、修改后发往elasticsearch。

    kibana:可以为前面两者提供良好的UI界面,帮助提高对日志的汇总、分析和搜索等功能的友好度。

    3、上面三者组成了ELK,但一般情况下还需要client,filebeat提供了这一功能。内涵四种功能:

    packetbeat:收集网络流量数据

    topbeat:收集系统的进程、CPU、内存等使用运行情况

    filebeat:收集文件数据

    winlogbeat:收集Windows中的事件日志数据

    4、工作流程

    测试部署过程(此处设计两台,一台为ELK_server,一台为Nginx_server)

    二、ELK_server端:

    环境准备:关闭防火墙、关闭SELinux(因为是测试环境,就关闭了)。

    yum -y install java-1.8*  (安装jdk,ELK需要java环境)

    1、安装elasticsearch

    上传elasticsearch安装包

    tar -xzf elasticsearch-7.9.0-linux-x86_64.tar.gz

    useradd elasticsearch  (因为elasticsearch启动不能用root用户,所有新建一用户)

    chown -R elasticsearch.elasticsearch elasticsearch-7.9.0  (将目录权限改为新建的用户)

    cp -a elasticsearch-7.9.0 /usr/local

    su elasticsearch

    cd /usr/local/elasticsearch-7.9.0

    ./bin/elasticsearch -d

    查看服务是否启动成功

    netstat -antp | grep 9200

    或者使用curl  localhost:9200

     表示启动成功。

    2、安装logstash

    上传logstash软件包

    tar -xzf logstash-6.8.15.tar.gz

    cp -a logstash-6.8.15  /usr/local

    vi /usr/local/logstash-6.8.15/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns

    最下面新起一行,填写以下代码。

    # nginx
    WZ ([^ ]*)
    NGINXACCESS %{IP:remote_ip} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}

    完成后,保存退出

    vi /usr/local/logstash-6.8.15/test.conf  (新建配置文件,启动服务时需要)

    input {
        beats {
            port => "5044"
        }
    }
    #数据过滤
    filter {
        grok {
            match => { "message" => "%{NGINXACCESS}" }
        }
        geoip {
            #nginx端IP地址
            source => "192.168,171.140"
        }
    }
    #输出配置为本机端口9200端口,这是elasticsearch端口
    output {
        elasticsearch {
            hosts => ["127.0.0.1:9200"]
        }
    }

    完成后,保存退出

    启动服务(服务启动较慢)

    nohup /usr/local/logstash-6.8.15/bin/logstash -f /usr/local/logstash-6.8.15/test.conf &

    查看服务启动情况:netstat  -anpt  | grep 5044

    3、安装Kibana

    上传Kibana安装包

    tar -xzf kibana-7.9.0-linux-x86_64.tar.gz

    cp -a kibana-7.9.0-linux-x86_64 /usr/local

    vi /usr/local/kibana-7.9.0-linux-x86_64/config/kibana.yml

    将 #server.port: 5601  改为 server.port: 5601

    将 #server.host: "localhost"  改为 server.host: "192.168.171.141"  (这样其他电脑通过浏览器进行访问了)

    启动服务(启动过程耗时较长)

    nohup  /usr/local/kibana-7.9.0-linux-x86_64/bin/kibana  --allow-root &

    查看服务:netstat -anpt | grep 5601

    启动成功后,可以通过浏览器进行访问了(IP:5601)

    至此,server端的安装完成。

    三、Nginx_server端配置

    1、安装nginx服务(因为是测试,所以选用yum安装方式)

    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    yum -y install nginx


    2、上传filebeat,解压。
    tar -xzf filebeat-7.9.0-linux-x86_64.tar.gz
    cp -a filebeat-7.9.0-linux-x86_64 /usr/local/

    3、修改配置文件并启动服务

    cd /usr/local/filebeat-7.9.0-linux-x86_64/
    vi filebeat.yml
    enable:false  修改为true
    paths:/var/log/*.log 修改为/var/log/nginx/*.log

    output.elasticsearch  修改为  output.logstash   (也可以将此注释掉,下面注释中有)

    hosts:["localhost:9200"]  修改为  hosts:[server端IP:5044]  

    nohup ./usr/local/filebeat-7.9.0-linux-x86_64/filebaet -e -c filebeat.yml &

    4、设置并查看

    点击 Discover

    输入logstash-* 点击 next

    选择时间,就可以查看了

    本人小白一个^^ QQ:641055499,欢迎骚扰!
  • 相关阅读:
    每日日报2020.12.1
    每日日报2020.11.30
    981. Time Based Key-Value Store
    1146. Snapshot Array
    565. Array Nesting
    79. Word Search
    43. Multiply Strings
    Largest value of the expression
    1014. Best Sightseeing Pair
    562. Longest Line of Consecutive One in Matrix
  • 原文地址:https://www.cnblogs.com/641055499-mozai/p/15514891.html
Copyright © 2011-2022 走看看