Qnap [Req] GoAccess

giopas

Grand Maître Jedi
20 Avril 2015
1 084
9
68
EU
Serait-il possible d'avoir un qpkg de cette app, qui pourrait être utile soit pour Apache que pour caddy[1]??

https://goaccess.io/

What is it?
GoAccess is an open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.

It provides fast and valuable HTTP statistics for system administrators that require a visual server report on the fly.

Merci!

[1] https://caddy.community/t/analyzing-caddys-log-files-real-time-with-goaccess/6157
 
Ok, je l'ai installé et j'ai essayé de mettre la config plus ou moins comme cela décrite ici, mais au moment de le tester (avec Caddy), je me suis fermé dehors quand j'ai stoppé Caddy à travers le QTS App Center :)

Comment je peux rédemarrer Caddy par ligne de commande? Car si je lance le script j'ai cela:

Code:
[/share/CACHEDEV1_data/.qpkg/CAddy] # ./Caddy.sh restart
 more: can't open '/var/run/caddy.pid': No such file or directory
 Caddy is disabled.

:oops: :-D
 
euuuuuh

me semble pas avoir mis de daemon sur Caddy
mais si tu as rempli normalement c'est bon ou

/etc/init.d/Caddy.sh stop && /etc/init.d/Caddy.sh start

ça revient au même
 
Merci!

J'ai donc modifié le ficher GoAccess.sh comme il suit:

Code:
goaccess --no-global-config --config-file=/share/Public/goaccess/goaccess.conf

Et j'ai créé le fichier goaccess.conf comme il suit:

Code:
port 7890
daemonize false
log-format COMBINED
log-file /share/Public/caddy/caddy.log
# output /home/Qhttpd/Web/goaccess/index.html <- en effet, je en sais pas où il faut rediriger l'output
output index.html
real-time-html true

Quand je démarre GoAccess.sh j'ai pourtant l'erreur suivant:

Code:
[/share/CACHEDEV1_DATA/.qpkg/GoAccess] # ./GoAccess.sh start                                 
/opt/GoAccess/bin/goaccess: /opt/GoAccess/lib/libcrypto.so.1.0.0: no version information available (required by /opt/GoAccess/bin/goaccess)
/opt/GoAccess/bin/goaccess: /opt/GoAccess/lib/libssl.so.1.0.0: no version information available (required by /opt/GoAccess/bin/goaccess)
Error Opening file /opt/GoAccess/share/GeoIP/GeoIP.dat
/share/Public/caddy/caddy.log
Parsed 1 linesproducing the following errors:

Token '2019/10/07' doesn't match specifier '%h'

Format Errors - Verify your log/date/time format

Est-ce qu'il faut aussi avoir les libreries libcrypto et libssl et il y a un problème avec GeoIP.dat?

Merci!

giopas
 
tu peux ignorer l'erreur libcrypto.. je pense... c'est parce que j'ai implémenter une autre version que celle du NAS et il semble vouloir chercher les info de celle du firmware

Error Opening file /opt/GoAccess/share/GeoIP/GeoIP.dat tu n' a pas la base GeopIP il faut la DL (ou ignorer GeoIP dans ta conf)

Token '2019/10/07' doesn't match specifier '%h'

problème de formatage de date
 
Salut Stéphane,

Est-ce que tu as compilé GoAccess avec le flag --enable-geoip (voir ici)?

Car j'ai pas mal d'erreurs comme celui au bas:
Code:
Error Traversing Database for ipnum = 1040453326 - Perhaps database is corrupt?

D'ailleurs, comme décris ici il parrait que je suis arrivé à le faire marcher, sauf que je ne comprends pas pourquoi - pour accèder au fichier index.html - il faut que j'utilise la porte :82 (càd celui du WebServer de QTS) au lieu de celle de GoAccess.

Merci!
 
Merci Stéphane.

Alors je ne m'explique pas cet erreur.

Bref, plus ou moins j'arrive à le faire marcher avec cette config:

GoAccess.sh:
Code:
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="GoAccess"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
APACHE_ROOT=/share/`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f /etc/config/def_share.info`
export QNAP_QPKG=$QPKG_NAME


export QPKG_ROOT
export QPKG_NAME

export SHELL=/bin/sh
export LC_ALL=en_US.UTF-8
export USER=admin
export LANG=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
export TERM=xterm

export HOME=$QPKG_ROOT



case "$1" in
  start)
    ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
    if [ "$ENABLED" != "TRUE" ]; then
        echo "$QPKG_NAME is disabled."
        exit 1
    fi

/bin/ln -sf $QPKG_ROOT /opt/$QPKG_NAME
/bin/ln -sf $QPKG_ROOT/goaccess /usr/bin/goaccess

### GeoIP Options
# cd /share/CACHEDEV1_DATA/.qpkg/GoAccess/share/GeoIP
# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
# gunzip GeoLite2-City.mmdb.gz
# wget -N http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
# gunzip GeoLite2-Country.mmdb.gz

### Launch goaccess
goaccess --no-global-config --config-file=/share/homes/admin/script/goaccess/goaccess.conf &

    ;;

  stop)

killall -9 goaccess

rm -rf /opt/$QPKG_NAME

    ;;

  restart)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0

goaccess.conf:
Code:
### The port to which the connection is being attempted to connect.
port 7890

### Run GoAccess as daemon (if --real-time-html enabled).
daemonize true

### Log format type
# date-format %Y/%m/%d
# time-format %H:%M:%S
log-format COMMON

### Enable real-time HTML output.
real-time-html true

### Write  output to stdout given one of the following files and the
### corresponding extension for the output format:
output /home/Qhttpd/Web/goaccess/index.html

### Specify the path to the input log file. If set, it will take
### priority over -f from the command line.
log-file /share/homes/admin/script/caddy/accesslogs/reverseproxy.log

### GeoIP Options
# geoip-database /share/CACHEDEV1_DATA/.qpkg/GoAccess/share/GeoIP/GeoLite2-City.mmdb
# geoip-database /share/CACHEDEV1_DATA/.qpkg/GoAccess/share/GeoIP/GeoLite2-Country.mmdb

###### OTHER OPTIONS
# Enable a list of user-agents by host. For faster parsing, do not
# enable this flag.
agent-list true

# Ignore request's query string.
# i.e.,  www.google.com/page.htm?query => www.google.com/page.htm
#
# Note: Removing the query string can greatly decrease memory
# consumption, especially on timestamped requests.
no-query-string true
 
Je viens de découvrir que en mettant le fichier index.html dans le partage /share/Web/goaccess/ le fichier est bien accessible avec le webserver de QTS (pour moi, à la porte 82), mais après il se met pas à jour, car il n'arrive pas à établir le tunnel websocket vers la porte 7890.

Demande pour Qoolbox: où est-ce que je dois placer le fichier index.html pour qu'il soit après accessible avec un simple http://[mon IP interne]:7890/index.html?

Est-ce que je dois créer un dossier partagé où il y a quelque chose qui m'échappe ?

Merci!

Sent from my ONEPLUS A5000 using Tapatalk

 
Ok, mais cela est seulement accessible à travers la porte 82 (dans mon cas), n'est pas? Comment je peux après établir une connexion websocket vers la porte 7890?

D'ailleurs, est-ce que dans ma config il est correct de mettre "daemonize true" out cela n'est même pas nécessaire ?

Sent from my ONEPLUS A5000 using Tapatalk

 
Salut Stéphane,

J'ai demandé sur GitHub (ici) et il paraît qu'il faut compiler les sources avec:

Code:
--enable-geoip=mmdb

Est-ce que tu pourrais regarder cela stp?

Par ailleurs, je suis arrivé à le faire marcher même avec Caddy (en utilisant deux reverse proxy). Une fois résolue la question de geoip je vais poster toute la config!

Merci bcp!