1、安裝依賴
yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-develyum install gcc -y
2、安裝goaccess
# wget https://tar.goaccess.io/goaccess-1.3.tar.gz
# tar -xzvf goaccess-1.3.tar.gz
# cd goaccess-1.3/
# ./configure --enable-utf8 --enable-geoip=legacy
# make
# make install
3、修改nginx.conf文件的日志存儲格式
log_format main '$remote_addr - $remote_user [$time_local] requesthost:"$http_host"; "$request" requesttime:"$request_time"; '
'$status $body_bytes_sent "$http_referer" - $request_body'
'"$http_user_agent" "$http_x_forwarded_for"';
4、修改文件/usr/local/etc/goaccess.conf改成goaccess格式標準對應為
time-format %H:%M:%S
date-format %d/%b/%Y
log-format "%x","%h",%^,%^,"%m","%U","%s",%^,"%b","%D",%^,"%R","%u"
log-format COMBINED
5、測試生成頁面
goaccess -f /var/log/nginx/access.log -o /你的目錄路徑/log.html --log-format=COMBINED
6、加入定時任務
編寫定時執(zhí)行腳本 goaccess.sh
#!/bin/bash
LANG="zh_CN.UTF-8"
goaccess -p /goaccess配置目錄/goaccess.conf -f /nginx日志目錄/access.log -o /日志輸出目錄/log$(date +%Y%m%d).html --log-format=COMBINED
設置定時任務,第天凌晨2點執(zhí)行 >/dev/null 2>&1表現(xiàn)不輸出日志
# crontab -e
0 2 * * * /bin/bash /root/goaccess.sh >/dev/null 2>&1
7、重啟定時任務
systemctl restart crond #重啟
systemctl status crond #查看狀態(tài)
注意:若定時任務執(zhí)行出錯,類似:
import _mysql ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
可能是你缺少 libmysqlclient.so.18,或是高于 libmysqlclient.so.18
你可以查看mysql版本,安裝相應的mysql-community-libs-compat。如我的mysql版本是5.7,安裝如下:
yum --enablerepo=mysql57-community install mysql-community-libs-compat
創(chuàng)建軟鏈
#/usr/lib64/mysql 你的libmysqlclient.so.18所在位置
#lib64你的系統(tǒng)位數(shù)
ln -s /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18