goaccess
文章目录
complie-on-debian10
sed -i "s|deb.debian.org|mirrors.huaweicloud.com|g" /etc/apt/sources.list && \
sed -i "s|security.debian.org|mirrors.huaweicloud.com|g" /etc/apt/sources.list && \
apt-get clean && \
apt-get update && \
apt-get -y upgrade && \
apt-get install \
locales \
ca-certificates \
curl \
wget \
vim \
psmisc \
procps \
autoconf \
gcc \
make \
tcl \
gettext \
difference \
iproute2 \
tree \
p7zip-full \
libssl-dev \
zlib1g-dev \
libncursesw5-dev \
libgeoip-dev \
libmaxminddb-dev \
pkg-config \
-yq
mkdir -p goaccess
curl -fksSL https://tar.goaccess.io/goaccess-1.4.3.tar.gz | tar -xvz --strip-components 1 -C goaccess
cd goaccess
CFLAGS+="-O3" ./configure \
--enable-utf8 \
--enable-geoip=mmdb \
--with-getline \
--with-openssl
## static 编译
CFLAGS+="-O3 -static" LIBS="$(pkg-config --static --libs openssl ncursesw)" ./configure \
--enable-utf8 \
--enable-geoip=mmdb \
--with-getline \
--with-openssl
make
make install
Your build configuration:
Prefix : /usr/local
Package : goaccess
Version : 1.4.3
Compiler flags : -pthread
Linker flags : -lnsl -lncursesw -lmaxminddb -lcrypto -lssl -lpthread
UTF-8 support : yes
Dynamic buffer : yes
Geolocation : GeoIP2
Storage method : In-Memory with On-Disk Persistent Storage
TLS/SSL : yes
Bugs : hello@goaccess.io
complie-on-cenntos7
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup && \
sed -i "s@#baseurl@baseurl@g" /etc/yum.repos.d/CentOS-Base.repo && \
sed -i "s@mirrorlist=http@#mirrorlist=http@g" /etc/yum.repos.d/CentOS-Base.repo && \
sed -i "s@baseurl=.*/centos@baseurl=https://mirrors.huaweicloud.com/centos@g" /etc/yum.repos.d/CentOS-Base.repo && \
yum clean all && \
yum makecache && \
yum update -y && \
yum install -y \
net-tools \
gcc \
gcc-c++ \
cmake \
make \
automake \
autoconf \
libtool \
readline-devel \
openssl-devel \
zlib-devel \
curl \
psmisc \
ncurses-devel \
geoip-devel \
libmaxminddb-devel
mkdir -p goaccess
curl -fksSL https://tar.goaccess.io/goaccess-1.4.3.tar.gz | tar -xvz --strip-components 1 -C goaccess
cd goaccess
CFLAGS+="-O3" ./configure \
--enable-utf8 \
--enable-geoip=mmdb \
--with-getline \
--with-openssl
make
make install
whereis goaccess
goaccess: /usr/local/bin/goaccess /usr/local/etc/goaccess
安装完后/usr/local/bin/goaccess和/usr/local/etc/goaccess/goaccess.conf为主要文件
errors
## 错误1
checking for SSL_CTX_new in -lssl... no
configure: error: ssl library missing
## 解决办法
CFLAGS+="-O3 -static" LIBS="$(pkg-config --static --libs openssl)"
## 错误2
checking for mvaddwstr in -lncursesw... no
configure: error: *** Missing development libraries for ncursesw
## 解决办法
CFLAGS+="-O3 -static" LIBS="$(pkg-config --static --libs openssl ncursesw)"
## 错误3
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
collect2: error: ld returned 1 exit status
configure:3440: error: in `/goaccess':
configure:3442: error: C compiler cannot create executables
/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lncursesw
/usr/bin/ld: cannot find -ltinfo
/usr/bin/ld: cannot find -ldl
/usr/bin/ld: cannot find -lc
gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-lssl -lcrypto -ldl -pthread -lncursesw -ltinfo -ldl
-lssl -lgssapi_krb5 -lkrb5 -lcom_err -lk5crypto -lcrypto -ldl -lz -lncursesw -ltinfo
## 解决办法
yum install openssl-static ncurses-static zlib-static glibc-static libstdc++-static
## 错误3
/usr/bin/ld: cannot find -lintl
fatal error: CoreFoundation/CFLocale.h: No such file or directory
## 解决办法
## 没有找到解决办法
## https://stackoverflow.com/questions/64481053/gettext-wont-build-libintl-so
use
默认的nginx日志格式
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
/usr/local/bin/goaccess --log-file /tmp/access.log --log-format COMBINED
LANG='zh_CN.UTF-8' goaccess --log-file /tmp/access.log --log-format COMBINED -o /usr/share/nginx/html/site/report.html --real-time-html
cat access.log | docker run -p 7890:7890 --rm -i -e LANG='zh_CN.UTF-8' allinurl/goaccess:1.4.3 --log-format COMBINED --date-format='%d/%b/%Y' --time-format='%H:%M:%S' -a -o html --real-time-html - > /usr/share/nginx/html/site/report.html
json
log_format api escape=json
'{'
'"remote_addr":"$remote_addr",'
'"X-Forwarded-For":"$http_X_Forwarded_For",'
'"remote_user":"$remote_user",'
'"time_local":"$time_local",'
'"method":"$request_method",'
'"uri":"$uri",'
'"server_protocol":"$server_protocol",'
'"request_body":"$request_body",'
'"status":"$status",'
'"body_bytes_sent":"$body_bytes_sent",'
'"http_referer":"$http_referer",'
'"user_agent":"$http_user_agent",'
'"upstream_response_time":"$upstream_response_time"'
'}';
time-format %H:%M:%S # 定义时分秒格式 通过%t调用
date-format %d/%b/%Y # 定义日期格式 通过%d调用
log-format %^:"%h",%^:%^,%^:%^,%^:"%d:%t %^",%^:"%m",%^:"%U",%^:"%H",%^:%^,%^:"%s",%^:%^,%^:"%R",%^:"%u",%^:%^
## 参考 https://www.rootop.org/pages/4742.html
ref
上次更新 2020-12-06
原始文档 查看本文 Markdown 版本 »