zoukankan      html  css  js  c++  java
  • 使用logstash配置nginx和tomcat日志统一收集到一台日志服务器

    https://blog.csdn.net/u013619834/article/details/53221383?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    https://www.cnblogs.com/chenqionghe/p/12503181.html

    https://blog.csdn.net/alex_xfboy/article/details/88298165

    https://www.cnblogs.com/FengGeBlog/p/10300682.html

     https://www.jianshu.com/p/d3042a08eb5e

    Tomcat日志详解

    https://www.cnblogs.com/winner-0715/p/7074280.html

    相关服务器安装jdk和redis请参考

    http://blog.csdn.net/u013619834/article/details/38894649
    http://blog.csdn.net/u013619834/article/details/38899405


    负责发送日志的所有服务器安装logstash

    1.下载安装包
    wget https://download.elastic.co/logstash/logstash/logstash-2.4.1.tar.gz


    2.安装
    tar zxvf logstash-2.4.1.tar.gz
    mv logstash-2.4.1 /usr/local/logstash
    mkdir -p /usr/local/logstash/etc


    3.修改配置文件
    vim /usr/local/logstash/etc/logstash.cnf
    添加

    input {
        file {
            type => "tomcat-catalina"
            path => "/u02/8080-tomcat/logs/catalina.out"
            codec => multiline {
                pattern => "^s"
                what => "previous"
            }
        }
    }
    
    
    output {
        redis {
            host => "172.17.17.15"
            port => 6379
            data_type => "list"
            key => "logstash-tomcat-catalina"
        }
    }






    4.如果系统中没设置环境变量,需要添加JAVA_HOME环境变量
    vim /usr/local/logstash/bin/logstash.lib.sh
    添加
    JAVA_HOME=/usr/java/jdk1.7.0_79

    5.启动
    mkdir -p /usr/local/logstash/logs
    nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash.cnf >> /usr/local/logstash/logs/nohup.out 2>&1 &

    6.到redis查看
    redis-cli
    LPOP "logstash-tomcat-catalina"





    负责接收数据的logstash服务器安需要安装logstash,并使用以下配置文件

    vim /usr/local/logstash/etc/logstash.cnf
    添加

    input {
        redis {
            host => "172.17.17.15"
            port => 6379
            data_type => "list"
            key => "logstash-tomcat-catalina"
        }
    }
    
    
    filter {
        ruby {
            code => "event['filedatetag'] = event.timestamp.time.localtime.strftime('%Y-%m-%d')"
        }
    
    }
    
    output {
        file {
             path => "/data/log/tomcat/%{host}/catalina-%{filedatetag}.log"
             message_format=>"%{host}----%{message}"
        }
        #stdout{
        #    codec=>rubydebug
        #}
    
        if [message] =~ "Exception" {
            file {
                path => "/data/log/tomcat/exception/exception-%{filedatetag}.log"
            }
        }
    }
    



    收集nginx日志的配置文件

    客户端上的配置

    vim /usr/local/logstash/etc/nginx_log.cnf

    input {
        file {
            type => "nginx_access_log"
            path => "/data/logs/nginx/access_log.log"
        }
        file {
            type => "nginx_access"
            path => "/data/logs/nginx/access.log"
        }
        file {
            type => "nginx_access_check"
            path => "/data/logs/nginx/access_check.log"
        }
    }
    
    
    output {
        redis {
            host => "172.17.17.15"
            port => 6379
            data_type => "list"
            key => "logstash-nginx-log"
        }
    }

    日志服务器上的配置

    vim /usr/local/logstash/etc/nginx_log.cnf

    input {
        redis {
            host => "172.17.17.15"
            port => 6379
            data_type => "list"
            key => "logstash-nginx-log"
        }
    }
    
    
    filter {
        ruby {
            code => "event['filedatetag'] = event.timestamp.time.localtime.strftime('%Y-%m-%d')"
        }
    
    }
    
    output {
        file {
             path => "/data/log/nginx/%{host}/%{type}/%{type}-%{filedatetag}.log"
             message_format=>"%{message}"
        }
    }
    input {
        redis {
            host => "172.17.17.15"
            port => 6379
            data_type => "list"
            key => "logstash-nginx-log"
        }
    }
    
    
    filter {
        ruby {
            code => "event['filedatetag'] = event.timestamp.time.localtime.strftime('%Y-%m-%d')"
        }
        json {
            source => "message"
            target => "jsoncontent"
        }
    
    }
    
    output {
        file {
             path => "/data/log/nginx/all/%{type}/%{type}-%{filedatetag}.log"
             message_format=>"%{message}"
             #message_format=>"%{host}----%{type}----%{message}"
        }
    
    
        if [message] =~ "code=514" {
            file {
                path => "/data/log/nginx/zabbix_monitor/yunxin-code514.log"
                message_format=>"%{message}"
            }
        }
    
    
        exec {
            command => "/usr/local/redis/bin/redis-cli -h 127.0.0.1 incr zabbix_nginx_log_count_%{type}"
        }
        exec {
            command => "/usr/local/redis/bin/redis-cli -h 127.0.0.1 incr zabbix_nginx_log_count_%{type}_%{[jsoncontent][status]}"
        }
        #stdout{
        #    codec=>rubydebug
        #}
    }
  • 相关阅读:
    通用数据级权限控制解决方案的实现(二)(转)
    linux copy file to window
    日历 存储过程
    ssas 日期 时间维度表 sql 代码
    Dynamic CRM常用代码记录
    跨服务器查询sql (摘要)
    验证码实现
    office文档转pdf
    页面导出生成pdf,使用wkhtmltopdf第三方工具
    iTextSharp简单生成pdf和操作pdf添加水印
  • 原文地址:https://www.cnblogs.com/zhoading/p/13781719.html
Copyright © 2011-2022 走看看