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,欢迎骚扰!
  • 相关阅读:
    MOSS 之 自定义MembershipProvider实现Forms方式验证——学习实战篇
    (转)jquery.validate全攻略
    LinQ To Entity的增删改查(转)
    如何将程序集(.dll文件)添加到GAC(全局程序集缓存)?
    CSS Sprites (转)
    如何查看MOSS未知错误?
    用.Net开发Windows服务初探(转)
    早该知道的7个JavaScript技巧(转)
    最容易犯的13个JavaScript错误——转
    jQuery插件开发全解析(转)
  • 原文地址:https://www.cnblogs.com/641055499-mozai/p/15514891.html
Copyright © 2011-2022 走看看