zoukankan      html  css  js  c++  java
  • elk平台分析nginx日志的基本搭建

    一.elk套件介绍

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

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

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

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

    工作原理如下如所示:

    logstash从日志里取出数据推送到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%]
    

    默认都安装到了

    /opt/logstash
    /opt/logstash/bin/logstash
    

    测试:

    [root@node2 ~]# /opt/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
    ####输入liuyao 并且回车
    
    
    liuyao
    
    Settings: Default filter workers: 1
    Logstash startup completed
    {
           "message" => "liuyao",
          "@version" => "1",
        "@timestamp" => "2016-07-17T05:01:42.551Z",
              "host" => "localhost"
    }
    {
           "message" => "",
          "@version" => "1",
        "@timestamp" => "2016-07-17T05:01:42.552Z",
              "host" => "localhost"
    }
    

    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%]
    

    案例:

    分析nginx日志:

    1.先启动elasticsearch

    修改elasticsearch配置文件
    vi /etc/elasticsearch/elasticsearch.yml
    监听ip
    network.host: 0.0.0.0
    运行端口
    http.port: 9200
    保存退出
    启动
    /etc/init.d/elasticsearch start
    查看运行情况
    # netstat -tnlp | grep java
    tcp        0      0 0.0.0.0:9300                0.0.0.0:*                   LISTEN      1284/java           
    tcp        0      0 0.0.0.0:9200                0.0.0.0:*                   LISTEN      1284/java  
    

    2.配置logstash配置文件

    #cd /etc/logstash/conf.d
    # vim nginx_logstash.conf
    
    配置文件如下:
    
    #标准输入
    input {
     file {
    	#日志路径
        path => ["/usr/local/nginx/access.log"]
    	#日志类型	        
    	type => "nginx_access"
     }
    }
    	#正则匹配
     filter {
       grok {
    	match => { "message" => "(?<clientip>d{1,3}.d{1,3}.d{1,3}.d{1,3})s-s-s(?<datetime>d{4}-d{2}-d{2}sd{2}:d{2}:d{2})s"(?<mothd>(.*))s(?<url>(.*))sHTTP.*"s(?<httpcode>[4-6][0-9]{1,3})s(?<send_bytes>d*)s"(?<http_refer>.*)"s"(?<http_agent>[^"]*)".*"
    }
    }
    }
    #标准输出
    output {
        elasticsearch {
            hosts => ["127.0.0.1:9200"]
            codec => "json"
            index => "logstash-nginx-%{+YYYY.MM.dd}"
        }
    }
    
    重启logstash
    
    /etc/init.d/logstash restart
    

    3.运行kibana

    # /etc/init.d/kibana restart
    

    打开浏览器:

    IP:5601访问
    

    创建

  • 相关阅读:
    数字随机码
    MYSQL数据导出乱码 MYSQL数据导入乱码
    提交表单弹出新窗口
    腾讯捐款居然用Q币,无耻!
    PowerShell如何依靠全局错误处理并执行脚本
    Windows PowerShell 2.0语言之函数和过滤器
    Windows PowerShell 2.0创建调用脚本文件
    Windows PowerShell 2.0 开发之命令别名
    Windows PowerShell 2.0之函数和脚本块共存
    Windows PowerShell 2.0命令别名技巧与内置别名
  • 原文地址:https://www.cnblogs.com/liu-yao/p/5678584.html
Copyright © 2011-2022 走看看