最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

日志分析工具——goaccess

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-24 14:10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

每天把日志分析结果通过邮件发送给boss和研发,是不是省去自己写脚本的时间了?

下面是goaccess安装步骤,我也是从其他地方抓取的,安装很简单,网上一搜一大把

安装GoAccess
RedHat或centos,使用yum:
yum install goaccess
GoAccess有两种使用方法,一种是直接在控制台显示和操作。
当你要立马分析出今天早上10点到12点的IP访问情况的时候,直接在控制台敲命令是最快的。
另外一种就是生成html文件或者数据文件。
如果你希望每天管理的服务器集群能给你发送一个昨天访问日志的情况,这个就是不二选择了。
控制台使用GoAccess
goaccess的参数:
-f <input-file> : 需要解析的日志文件-a --agent-list : 在host模块是不是能点击IP出现这个IP的user-agentlist,就是出现如图的功能
-c --conf-dialog: 是否显示log和format配置对话窗口。
就是下面的这个窗口
这个窗口有很多可以研究的。

首先,goaccess支持的日志格式有哪些?
Common Log Format (CLF)
通用日志格式,例子:
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326主机   用户身份 作者 [日期] "请求方法  请求路径 请求协议" 状态码 字节数
NCSA Commbined Log Format
这个是Common Log Format的扩展,例子:
125.125.125.125 - dsmith [10/Oct/1999:21:15:05 +0500] "GET /index.html HTTP/1.0" 200 1043 "http://www.ibm.com/" "Mozilla/4.05 [en] (WinNT; I)" "USERID=CustomerA;IMPID=01234"主机 用户身份 作者 [日期] "请求方法 请求路径 请求协议" 状态码 字节数 referrer 客户端代理 cookie
W3C
IIS 4.0和5.0是使用这种格式的,例子如下:

[AppleScript] 纯文本查看 复制代码
#Software: Microsoft Internet Information Server 4.0#Version: 1.0#Date: 1998-11-19 22:48:39#Fields: date time c-ip cs-username s-ip cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs-bytes time-taken cs-version cs(User-Agent) cs(Cookie) cs(Referrer)1998-11-19 22:48:39 206.175.82.5 - 208.201.133.173 GET /global/images/navlineboards.gif - 200 540 324 157 HTTP/1.0 Mozilla/4.0+(compatible;+MSIE+4.01;+Windows+95) USERID=CustomerA;+IMPID=01234 [url]http://yourturn.rollingstone.com/webx?98@@webx1.html[/url]

CloudFront
AWS上的日志格式
自定义格式
关于自定义格式所设置的参数说明在这里

-d --with-output-resolver 在HTML输出或者json输出中开启IP 解析
如果开启了-d,goaccess就会使用GEOIP来进行IP解析。
-e --exclude-ip=<ip address>
Host模块中不需要被统计的IP,比如可以将爬虫的IP过滤掉
-h --help 帮助文档-H --http-protocol 显示的时候是否带上HTTP协议信息-m --with-mouse 控制面板开启支持鼠标点击,带上了m之后,双击鼠标就相当于回车的操作-M --http-method 是否带上HTTP方法信息
-H和-M带上之后效果为:
-o --output-format=csv|json 输出为csv或者json形式-p --conf-file=<filename>
指定配置文件,如果你有配置文件,配置文件中又恰巧设置了log-format和date,那么你就不会被强制进入到format对话框了。如果你没有设置的话,默认使用~/.goacessrc。
-q --no-query-string
忽略请求的参数部分
-r --no-term-resolver
在Host模块中是否进行IP的解析。加上-r是禁止IP解析。
--no-color
输出无颜色标示
--real-os
展示真实的操作系统。在Operation System模块中,是否展示更详细的操作系统信息。
如图:
下面说说的是控制台的键盘操作:
F1是打开帮助文档
F5是刷新当前窗口
q是退出当前窗口,直到退出程序
o是进入选择条目
0-9 是选择模块
tab和shift+tab是在前后模块之前切换
j和k是在模块内部条目切换
s是模块内部条目排序方式

ps:模块切换在右上角有当前模块的标示

使用GoAccess生成文件
说起GoAccess最让你爽的就是能生成html了,然后每天就可以看个统计报表。
下面的命令能生成html页面:
goaccess -d -f web.log -a -p /home/yejianfeng/.goaccessrc > test.html
生成的html的截图如下:
也可以生成json:
goaccess -q -f web.log -a -p /home/yejianfeng/.goaccessrc -o json >test.json
和csv
goaccess -q -f web.log -a -p /home/yejianfeng/.goaccessrc -o csv>test.csv

我一般是将分析结果保存为HTML格式,然后通过python脚本发送出去,脚本如下:


[AppleScript] 纯文本查看 复制代码
#!/usr/bin/python
#coding:utf-8
import smtplib
import sys
from email.Header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
def sendMail(sender,receiver,subject,attfile):
    smtpserver = 'smtp.126.com'
    username = 'admin123'
    password = '111111'
    msg = MIMEMultipart('alternative')
    msg['Subject'] = Header(subject,'utf-8')
    f = open(attfile)
    html = ''.join(f.readlines())
    f.close()
    part2 = MIMEText(html,'html','utf-8')
    msg.attach(part2)
    att = MIMEText(open(attfile,'rb').read(),'base64','utf-8')
    att["Content-Type"] = 'application/octet-stream'
    att["Content-Disposition"] = 'attatchment;filename="report.html"'
    msg.attach(att)
    smtp = smtplib.SMTP()
    smtp.connect('smtp.126.com')
    smtp.login(username,password)
    smtp.sendmail(sender,receiver,msg.as_string())
    smtp.quit()
if __name__ == '__main__':
    sender = 'admin123@126.com'
    receiver = ['user01@126.com','user02@126.com']
    subject = 'xxx日志分析报告'
    sendMail(sender,receiver,subject,sys.argv[1])


本文出自 “赵海华_运维之路” 博客,请务必保留此出处http://baiying.blog.51cto.com/1068039/1565880




楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-29 23:30

Powered by BI168大数据社区

© 2012-2014 168大数据

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