goaccess了,它是一个日志分析工具,并不只是为nginx使用的,你也可以用它来分析apache,具有解析速度快,使用简单,能生成json,html,csv等特点。

1.goaccess的基本安装

wget http://tar.goaccess.io/goaccess-1.1.tar.gz

yum install glib2 glib2-devel GeoIP-devel ncurses-devel

tar xvf goaccess-1.1.tar.gz -C /usr/local

cd /usr/local/

cd goaccess-1.1/

./configure --enable-geoip --enable-utf8  --with-openssl

make && make install

goaccess -f /var/log/nginx/access.log -a 

lanmp默认使用common log format日志格式

2.日志分析结果的输出的城市显示

wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

gunzip GeoLiteCity.dat.gz

goaccess -f /var/log/nginx/access.log  --log-format="%h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"" --date-format="%d/%b/%Y" --time-format=%H:%M:%S -a --geoip-database=/usr/local/goaccess-1.1/GeoLiteCity.dat  > /tmp/nginx-log-`date +%F-%H-%M-%S`.html

其中log format依实际nginx的格式自己设定,如果nginx的log format为默认,可以使用goaccess中推荐的common log format日志格式设置,如果nginx的日志中有使用引号,在命令行中须使用\进行转义

如果nginx格式自己有变动,可以依据https://goaccess.io/man对命令行中的格式进行自定义

goaccess命令中的相关参数命令可以阅读https://github.com/allinurl/goaccess中的详细解释

--geoip-database=/usr/local/goaccess-1.1/GeoLiteCity.dat此条参数为输出时加载GeoLiteCity.dat的数据,goaccess中默认使用的geoip数据不全,只能显示到country,不能显示到city。

3.使用mutt和msmtp将生成的html文件自动发送至邮箱

配置msmtp,只需要在用户根目录下创建.msmtprc 文件添加如下配置文件即可,msmtp主要配置发件的服务器地址,以及认证信息

yum -y install mutt msmtp
[root@iZ25b31bdp0Z tmp]# cat /root/.msmtprc

defaults

tls on

logfile /var/log/msmtp/msmtp.log

account default

host smtp..com                          

port                                          //不同的邮箱的smtp端口可能不一样,自行去邮箱官网查询

from marility@.com          //发件人的邮箱

auth login                                    //授权选择login就可以

tls off

user marility@.com          //邮箱用户

password PASSWORD              //这处PASSWORD密码为邮箱smtp的授权码,不是网页邮件登陆密码,此处密码为明文,也可以使用gpg2进行加密,详细设定可以查看文尾
[root@iZ25b31bdp0Z tmp]# cat /root/.muttrc

set sendmail="/usr/bin/msmtp"            

set use_from=yes

set realname="marility"                                     //邮件发送时显示的用户名

set from=marility@.com                    //发件人的邮箱

set envelope_from=yes

set charset = "utf-8"

set send_charset = "us-ascii:iso-8859-1:gb18030:utf-8"
chmod +x nginxlogsend.sh

echo " " | mutt -s "nginx-log-`date +%F-%H-%M-%S`" @qq.com -a /tmp/nginx-log------.html

echo "邮件内容" | mutt –s "邮件标题" 收件人邮箱 –a 附件的路径

4.自动化发送生成的日志分析文件

写一个脚本,在脚本中执行如上两条命令,然后加入到crontab中

vim /root/nginxlogsend.sh

#!/bin/bash
#
# goaccess -f /var/log/nginx/access.log --log-format="%h %^[%d:%t %^] \"%r\" %s %b \"%R\" \"%u\"" --date-format="%d/%b/%Y" --time-format=%H:%M:%S -a --geoip-database=/usr/local/goaccess-1.1/GeoLiteCity.dat > /data/nginx-log.html echo " " | mutt -s "nginx-log-`date +%F-%H-%M-%S`" @qq.com -a /data/nginx-log.html tar zcf /data/nginx-log-`date +%F-%H-%M-%S`.tar.gz /data/nginx-log.html
crontab –e

  * * * /root/nginxlogsend.sh 

5.msmtp密码加密

因为/root/.msmtprc中用户邮箱的smtp的授权码在上述示例中使用的明文,在此不安全。

在msmtp中除了将密码放置于配置文件中,还可以读取gpg2加密文件

5.1生成密钥对

在主机A.B两边各种生成自己的gpg2密钥对

gen –gen-key

依次选择1>0>4096>输入用户信息及解密密码(解密密码很重要,后期解密文件使用)>o

之后提示移动鼠标键盘,在tty中无法使用,在此可以使用dd命令随机写入

dd if=/dev/zero of=/dev/null bs=10 count=10000

5.2查看密钥对并导出自己的公钥

gen2 –K

其中下图中黑色部分为密钥ID

导出密钥格式为gpg2 –a –o 公钥文件名称 –-export 密钥ID

5.3将A机器(A必须为msmtp主机)公钥传给B机器

5.4在B机器上导入A机器公钥

5.5在B机器上将存有密码的文件进行加密

gpg2 –e –r marility msmpasswd

其中marility为A机器上生成密钥时的用户,msmpasswd为存有密码的文件,

执行之后会生成一个msmpasswd.gpg的文件,使用cat查看得出乱码,到达加密效果

5.6将B机器上的加密文件回传到A主机

5.7对加密文件进行解密测试

使用格式为gpg2 –no-tty –-passphrase=A机器上解密密码 –q –d 加密文件

5.8更改/root/.msmtprc中配置,如下

[root@iZ25b31bdp0Z tmp]# cat /root/.msmtprc
defaults
tls on
logfile /var/log/msmtp/msmtp.log account default
host smtp..com
port
from marility@.com
auth login
tls off
user marility@.com
passwordeval gpg2 --no-tty --passphrase=chunlanyy -q -d msmpasswd.gpg ##此处为passwordeval,并非为password

Goaccess的简单使用的更多相关文章

  1. 使用GoAccess构建简单实时日志分析系统

    很早就知道Nginx日志分析工具GoAccess,但之前由于只能静态分析,感觉不太强大.最近发现它能够实时显示报表而且报表也比之前强大很多能做趋势分析.因此果断下载安装.以下是基于CentOS的安装配 ...

  2. goaccess nginx日志分析工具简单使用

    goaccess 是一个比较方便的支持实时的日志分析工具,比较方便,同时安装&&配置简单 安装 centos yum yum install -y goaccess 运行 我的ngin ...

  3. goaccess的安装和使用

    一.简介1.goaccess用于分析apache和nginx日志的强大工具 2.官网:https://goaccess.io 二.安装1.下载goaccess的安装包wget http://tar.g ...

  4. nginx日志分析利器GoAccess

    面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些?访问前10的请求有哪些?当你领略过goaccess之后,你就明白,这些问题,除了考验你的脚本背诵记 ...

  5. jboss7访问日志功能及使用goaccess工具分析

    网络上虽然很多文章分别讲到jboss7的访问日志如何配置,goaccess工具怎么分析nginx/tomcat等日志.但将两者放在一起即“通过goaccess分析jboss访问日志”的倒是没搜索到. ...

  6. 编写一个简单的基于jmespath 的prometheus exporter

    目的很简单,因为系统好多监控指标是通过json 暴露的,并不是标准的prometheus metrics 格式,处理方法 实际上很简单,我们可以基于jsonpath 解析json数据,转换为prome ...

  7. GoAccess日志分析工具

    1.1 GoAccess简介 GoAccess是一个非常良心的开源软件,它的良心之处体现在如下方面: 1)安装简单: 2)操作容易: 3)界面酷炫: GoAccess 官网 https://goacc ...

  8. goaccess 通过jsonpath 转换为prometheus metrics

    goaccess 是一个不错的日志分析工具,包含了json 数据同时支持基于websocket 的实时数据处理,当然我们可以通过jsonpath 的exporter 转换为支持promethues 的 ...

  9. goaccess iis w3c 自定义log 格式参考

    goaccess 支持强大的自定义log 格式,比如我们需要分析iis w3c 格式日志 参考iis w3c 字段 date time s-ip cs-method cs-uri-stem cs-ur ...

随机推荐

  1. Goldengate 应用环境 mysql to oracle

    前言 一个需求,mysql的某些表,实时同步至oracle,于是就产生了这篇文章,安装过程中,走了些弯路,原因是没太深刻理解,官方提供安装步骤所代表的意义. 环境 源端:mysql-server 5. ...

  2. Windows 命令提示符

    命令提示符(cmd): 启动:Win+R ,输入cmd回车 切换盘符:盘符名称: 进入文件夹:cd 文件夹名称 进入多级文件夹:cd 文件夹1\文件夹2\文件夹3 返回上一级:cd .. 直接回根路径 ...

  3. 创建者模式-Builder

    创建者模式使用多个简单的对象一步一步构建成一个复杂的对象.它提供了一种创建对象的最佳方式.一个 Builder 类会一步一步构造最终的对象,该 Builder 类是独立于其他对象的. 一.类图 创建者 ...

  4. Magolor的数据结构作业

    \(CodeForces 706E ~Working routine\) 给出一个矩阵,每次操作交换两个子矩阵,求最后状态. 使用链表存储,每次交换后,影响到的之后矩阵边缘的指针,暴力修改. \(~~ ...

  5. jQuery的ajaxFileUpload上传文件插件刷新一次才能再次调用触发change

    jQuery的ajaxFileUpload插件 关于用ajaxfileupload时,遇到一个要刷新一次页面才能再次上传,用live()方法来绑定 file表单 的change事件就能够解决,直接$( ...

  6. linux基础(六)

    今天我们来看一下Samba服务和nginx服务. Samba服务 1.samba的功能 samba是一个网络服务器,用于Linux和Windows之间共享文件. 2.samba服务的启动.停止.重启  ...

  7. LCD驱动程序架构和分析

    一.LCD驱动程序架构 1.裸机驱动代码分析 ①LCD初始化:控制器初始化,端口初始化,指明帧缓冲 ②LCD图形显示:将图形数据写入帧缓冲 void lcd_init() { lcd_port_ini ...

  8. 【Flutter学习】事件处理与通知之通知(Notification)

    一,概述 Notification是Flutter中一个重要的机制,在Widget树中,每一个节点都可以分发通知,通知会沿着当前节点(context)向上传递,所有父节点都可以通过Notificati ...

  9. 老板让我十分钟上手nx-admin

    大体流程 参考资料: nx-admin项目地址 首先这里就不讲解vue和vuex之类的基础东西了 有兴趣的可以去官方文档了解.这里根据流程走向大概说说 路由配置 首先找到路由配置,路由配置放在了src ...

  10. 安装纯净版debian!

    kali更新了1.1.0a,不知道新版的内核哪地方有bug,用着用着就卡死了,一怒之下卸载了装debian. 下载的netinst只有200M,基本上就是刚好能用,不要用硬盘装,会找不到网卡,无线也没 ...