zoukankan      html  css  js  c++  java
  • elk+redis分布式分析nginx日志

    一.elk套件介绍

    ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成。官方网站: https://www.elastic.co/products

    Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等。

    Logstash 是一个完全开源的工具,他可以对你的日志进行收集、分析,并将其存储供以后使用(如,搜索)。

    kibana 也是一个开源和免费的工具,他 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

    工作原理如下如所示:

    **客户端的logstash从日志里取出数据推送到服务端的redis里,服务端的logstash从redis里取出推送到elasticsearch,elasticsearch进行分析,kibana来展示

    注:安装全部使用rpm安装,方便管理

    二、服务端安装过程

    1.安装依赖JDK

    版本:jre-8u91-linux-x64.rpm

    # rpm -ivh jre-8u91-linux-x64.rpm
    Preparing...        ########################################### [100%]
    1:jre1.8.0_91       ########################################### [100%]
    Unpacking JAR files...
    	plugin.jar...
    	javaws.jar...
    	deploy.jar...
    	rt.jar...
    	jsse.jar...
    	charsets.jar...
    	localedata.jar...
    	jfxrt.jar...
    

    2.安装logstash

    版本:logstash-2.3.2-1.noarch.rpm

    # rpm -ivh logstash-2.3.2-1.noarch.rpm 
    Preparing...         ########################################### [100%]
    

    3.安装elasticsearch

    版本:elasticsearch-2.3.3.rpm

    # rpm -ivh elasticsearch-2.3.3.rpm 
    Preparing...           ########################################### [100%]
    

    4.安装kibana

    版本:kibana-4.5.1-1.x86_64.rpm

    # rpm -ivh kibana-4.5.1-1.x86_64.rpm 
    Preparing...            ########################################### [100%]
    1:kibana                ########################################### [100%]
    

    5.安装redis

    版本: redis-3.0.0.tar.gz

    #tar xf redis-3.0.0.tar.gz
    #cd redis-3.0.0
    #make
    #mkdir /usr/local/redis
    #mkdir /usr/local/redis/bin
    #cp src/redis-benchmark /usr/local/redis/bin/
    #cp src/redis-check-aof /usr/local/redis/bin/
    #cp src/redis-check-dump /usr/local/redis/bin/
    #cp src/redis-cli /usr/local/redis/bin/
    #cp src/redis-sentinel /usr/local/redis/bin/
    #cp src/redis-server /usr/local/redis/bin/
    #cp redis.conf  /usr/local/redis/
    #cd /usr/local/redis/
    #mv redis.conf redis_6378.conf
    

    三.客户端安装过程#

    1.安装依赖JDK

    版本:jre-8u91-linux-x64.rpm

    # rpm -ivh jre-8u91-linux-x64.rpm
    Preparing...        ########################################### [100%]
    1:jre1.8.0_91       ########################################### [100%]
    Unpacking JAR files...
    	plugin.jar...
    	javaws.jar...
    	deploy.jar...
    	rt.jar...
    	jsse.jar...
    	charsets.jar...
    	localedata.jar...
    	jfxrt.jar...
    

    2.安装logstash

    版本:logstash-2.3.2-1.noarch.rpm

    # rpm -ivh logstash-2.3.2-1.noarch.rpm 
    Preparing...         ########################################### [100%]
    

    四.客户端配置

    #cd /etc/logstash/conf.d/
    #新建一个conf文件
    ## vi nginx_access.conf
    

    配置文件如下:

        input {
            file {
                type => "nginx_access"
    			#分析的日志路径。一般都是咱们的squid or nginx日志路径
                path => ["/usr/local/nginx/logs/access.log"]
                codec => plain {
                            charset => ["UTF-8"] #字符编码UTF-8
                    }
            }
        }
        output {
            stdout {}
            redis {
    			#将过滤好的数据推送到服务端的redis里
                host => '服务端IP地址'
                data_type => 'list'
                key => 'elk:redis'
            codec => json {
                            charset => ["UTF-8"]
                    }
            }
        }
    

    启动服务

    /etc/init.d/logstash start
    

    五、服务端配置

    1.修改logstash配置文件

    # cd /etc/logstash/conf.d/
    # vi nginx_access.conf
    
    input {
    	    redis {
    		#从redis里取出日志
            host => '服务器IP地址'
            data_type => 'list'
            port => "6378"
            key => 'elk:redis'
            type => 'redis-input'
            codec => plain {
                    charset => "UTF-8"
         }
        }
    }
    filter {
        json{
            source =>"message"	
            }
    }
    #把日志交给elastic分析
    output {
        elasticsearch {
            hosts => ["127.0.0.1:9200"]
            codec => "json"
        }
    }
    

    2.修改logstash运行内存

    vi /etc/init.d/logstash
    LS_HEAP_SIZE="1g"
    #此处可以根据你服务器的配置来修改
    

    3.配置elasticsearch

    vi  /usr/share/elasticsearch/bin/elasticsearch.in.sh
    if [ "x$ES_MAX_MEM" = "x" ]; then
        ES_MAX_MEM=4g
    fi
    将max调整为4g
    #此处可以根据你服务器的配置来修改
    修改elasticsearch 监听地址
    vi /etc/elasticsearch/elasticsearch.yml
    network.host: 0.0.0.0
    

    4.启动相关服务

    /etc/init.d/elasticsearch start
    /etc/init.d/logstash start
    /etc/init.d/kibana start
    /usr/local/redis/bin/redis-server /usr/local/redis/redis_6378.conf &
    #记得redis添加防火墙,要不容易被啪啪。
    

    5.kibana显示

    略。
  • 相关阅读:
    面试官问你如何解决web高并发这样回答就好了
    react-native页面间传递数据的几种方式
    图片上传知识点梳理
    使用Vue CLI 3将基于element-ui二次封装的组件发布到npm
    OpenCV学习笔记09--通过cvPtr2D或指针算法绘制图形
    [code segments] OpenCV3.0 SVM with C++ interface
    LINUX设备驱动程序笔记(一)设备驱动程序简单介绍
    redis 简单安装使用
    Linux常见压缩命令
    计算机网络13--网络应用的体系结构
  • 原文地址:https://www.cnblogs.com/liu-yao/p/5678963.html
Copyright © 2011-2022 走看看