设为首页 收藏本站
查看: 2177|回复: 0

[经验分享] 将apache日志输出为json格式并发送给logstash处理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-30 10:16:52 | 显示全部楼层 |阅读模式
1、Apache日志格式定义在apache配置文件中增加:

LogFormat "{ \
            \"@timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \
            \"@version\": \"1\", \
            \"tags\":[\"apache\"], \
            \"message\": \"%h %l %u %t \\\"%r\\\" %>s %b\", \
            \"clientip\": \"%a\", \
            \"duration\": %D, \
            \"status\": %>s, \
            \"request\": \"%U%q\", \
            \"urlpath\": \"%U\", \
            \"urlquery\": \"%q\", \
            \"bytes\": %B, \
            \"method\": \"%m\", \
            \"site\": \"%{Host}i\", \
            \"referer\": \"%{Referer}i\", \
            \"useragent\": \"%{User-agent}i\" \
           }" ls_apache_json
CustomLog logs/access_log.ls_json ls_apache_json

2、logforwarder配置文件增加以下文件定义内容
    {
      "paths": [ "/var/log/httpd/access_log.ls_json" ],
      "fields": { "type": "apache_json" }
    }

3、服务端logstash filter配置filter {
  if [type] == "apache_json" {
    json {
      source => "message"
    }

    if [useragent] != "-" and [useragent] != "" {
      useragent {
        add_tag => [ "UA" ]
        source => "useragent"
        prefix => "UA-"
      }
    }

    mutate {
      convert => ['duration', 'float']
    }

    ruby {
      code => "event['duration']/=1000000"
    }

    if [bytes]     == 0                    { mutate { remove_field => "[bytes]" } }
    if [urlquery]  == ""                 { mutate { remove_field => "urlquery" } }
    if [method]    =~ "(HEAD|OPTIONS)"         { mutate { remove_field => "method" } }
    if [useragent] == "-"                 { mutate { remove_field => "useragent" } }
    if [referer]   == "-"                 { mutate { remove_field => "referer" } }

    if "UA" in [tags] {
      if [device] == "Other" { mutate { remove_field => "device" } }
      if [name]   == "Other" { mutate { remove_field => "name" } }
      if [os]     == "Other" { mutate { remove_field => "os" } }
    }

  }
}

4、检查输入结果{
       "message" => "192.168.0.90 - - [27/Nov/2015:12:07:26 +0800] \"POST /zabbix/jsrpc.php?output=json-rpc HTTP/1.1\" 200 64",
      "@version" => "1",
    "@timestamp" => "2015-11-27T04:07:26.000Z",
          "file" => "/var/log/httpd/access_log.ls_json",
          "host" => "zabbix",
        "offset" => "1154812",
          "type" => "apache_json",
          "tags" => [
        [0] "apache",
        [1] "UA"
    ],
      "clientip" => "192.168.0.90",
      "duration" => 0.126574,
        "status" => 200,
       "request" => "/zabbix/jsrpc.php?output=json-rpc",
       "urlpath" => "/zabbix/jsrpc.php",
      "urlquery" => "?output=json-rpc",
         "bytes" => 64,
        "method" => "POST",
          "site" => "10.20.20.65",
       "referer" => "http://10.20.20.65/zabbix/dashboard.php?ddreset=1&sid=e5260b4dda5e072e",
     "useragent" => "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0",
       "UA-name" => "Firefox",
         "UA-os" => "Windows 10",
    "UA-os_name" => "Windows 10",
     "UA-device" => "Other",
      "UA-major" => "42",
      "UA-minor" => "0"
}

参考:
https://deviantony.wordpress.com ... -apache-access-log/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145263-1-1.html 上篇帖子: apache 默认虚拟主机 下篇帖子: clickjacking:X-frame-options header missing 漏洞解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表