运维入坑实践之ELK收集nginx日志

本文介绍如何使用Logstash收集Nginx服务的日志,并通过解析将关键信息存储到Elasticsearch中,最后利用Kibana进行数据展示。

需求分析:

收集nginx访问日志,并解析出日志中的各字段信息。

收集流程:

logstash搜集服务日志并对日志进行字段解析处理,处理完成后将数据写入elsaticsearch,kinban负载数据展示。

实现步骤:

  1. logstash配置:
    ##详细配置及部分配置项解释
    input {
        file{
            path => "/data/nginx.log" ##源日志路径
            type => "nginx01" ##同一配置文件中有多个input,可以使用type区分
            start_position => "beginning"
            codec => plain 
        }
    }
    
    
    filter {
        if [type] == "nginx01" {
            mutate {
                gsub =>["message",'"',""] ##将日志信息中的’“‘替换为空
                split => ["message","|"]  ##各字段信息以’|‘ 分割,此项必须声明,不指定将无法解析字段
                    add_field => {
                        "IP_ADDR" => "%{[message][0]}" ##给需要收集到es里面的数据设置别名
                    }
                    add_field => {
                        "DOMAIN_NAME" => "%{[message][1]}"
                    }
                    add_field => {
                        "UPSTREAM_ADDR" => "%{[message][2]}"
                    }
                    add_field => {
                        "HTTP_CODE" => "%{[message][6]}"
                    }
                    add_field => {
                        "HTTP_REFER" => "%{[message][8]}"
                    }
                    add_field => {
                        "USER_AGENT" => "%{[message][9]}"
                    }
    		remove_field => ["message","@version","path","beat","tags","type","input_type"] ##移除无用字段信息
           	 }
        }
    
    }
    output{
        elasticsearch {
            hosts => [ "192.168.25.101:9200", "192.168.25.102:9200", "192.168.25.103:9200" ] ##输出到es集群
            index => "nginx00-%{+YYYY.MM.dd}" ##定义索引格式
        }
    }

  2. kibana配置:

日志收集、字段解析完毕。kibana完美展示,大家可以使用kibana对收集进来的日志进行各维度的统计、分析。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值