Récemment, « convoitant » une bonne affaire, j'ai changé le serveur pour un hôte VPS Alibaba Cloud International Hong Kong. Le plus grand sentiment après avoir déménagé ici n'est pas l'amélioration de la vitesse - car le VPS coréen kdatacenter utilisé à l'origine est également très rapide lorsqu'il est accessible sur le réseau de télécommunications - mais les performances de l'hôte VPS Alibaba Cloud sont vraiment bonnes par rapport aux autres hôtes VPS qui le sont également. 1 Go. C'est un peu faible.
Je viens d'utiliser un outil pour analyser la charge du système du VPS Alibaba Cloud Hong Kong et la charge du système ne cessait d'augmenter. Parfois, j'ai simplement découvert que je ne pouvais pas l'ouvrir lorsque j'écrivais un article en arrière-plan. J'ai ouvert le journal du serveur et trouvé de nombreuses adresses IP anormales, telles que l'analyse des ports, l'injection SQL, les fichiers de sauvegarde de sites Web "manquants" et les tests de résistance AB... En bref, il y avait de nombreuses adresses IP anormales.
Analyser le comportement IP dans les journaux est un travail fastidieux, surtout lorsque les journaux dépassent des centaines de Mo, et il est très lent de les ouvrir sous forme de fichiers texte. Cet article partagera deux excellents outils d'analyse des journaux du serveur : ngxtop et GoAccess. ngxtop analyse les fichiers journaux Nginx et les affiche en temps réel à l'aide d'une interface similaire à la commande top.
ngxtop peut analyser les fichiers journaux précédents et peut également surveiller les journaux du serveur en temps réel. Vous pouvez rapidement trouver les adresses IP les plus visitées dans les journaux, les erreurs 403/500/404, les classements des pages demandés, etc. dans le port, tout comme en utilisant. la commande Haut. ngxtop est un outil léger, tandis que GoAccess ressemble davantage à un puissant outil de statistiques de journaux.
GoAccess est non seulement riche en graphiques et en texte, mais également rapide, avec une vitesse d'analyse des enregistrements de journaux de 8 W par seconde, et Websocket actualise les statistiques toutes les 10 secondes. GoAccess dispose non seulement d'une interface de ligne de commande, mais peut également générer une page Web HTML, vous permettant de voir intuitivement le nombre de visiteurs dans le journal, les fichiers demandés, les erreurs 404 et autres, l'emplacement de l'utilisateur, le navigateur, le système d'exploitation, l'URL source, Code d'état HTTP, etc.
Bref, ngxtop et GoAccess sont deux outils puissants d'analyse des logs des serveurs comme Apache et Nginx. Une fois maîtrisés ces deux logiciels, les IP « potentiellement » dangereuses pour le serveur peuvent être révélées. En tant que webmaster, apprendre à utiliser un logiciel supplémentaire signifie que vous pouvez économiser une autre dépense de serveur, telle que :
- Utilisez Huginn pour capturer les mises à jour des comptes publics RSS et WeChat à partir de n'importe quel site Web - créez une plateforme de lecture d'informations à guichet unique
- Linux VPS monte Google Drive et Dropbox-réalise la synchronisation et la sauvegarde des données de l'hôte VPS
- Trois outils gratuits pour vous aider à détecter l'authenticité des serveurs VPS - Méthodes de test de performances et de vitesse de l'hôte VPS
PS : mis à jour le 21 octobre 2017, Les amis intéressés par l'utilisation du VPS Alibaba Cloud Hong Kong peuvent d'abord lire mon avis : Alibaba Cloud International Edition Hong Kong Computer Room Speed and Performance Evaluation - Rapide mais disque IO et mémoire C'est le goulot d'étranglement. Si vous souhaitez également surveiller la stabilité du réseau du serveur VPS, vous pouvez utiliser cet outil : Installation et configuration de Smokeping - un outil gratuit de surveillance des performances du réseau open source pour le déploiement visuel maître/esclave.
1. Installation et utilisation de ngxtop
1.1 installation de ngxtop
Page d'accueil du projet :
- HTTPS://GitHub.com/Lebinhong/Ce petit haut
ngxtop convient aux journaux du serveur Nginx. ngxtop peut être installé avec la commande suivante :
Fedora:yum install python-pip
CentOS/RHEL需先安装EPEL,安装完后:yum install python-pip
Debian/Ubuntu:apt-get install python-pip
pip install ngxtop
Ou vous pouvez l'installer directement à partir des sources :
wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip
unzip ngxtop-master.zip
cd ngxtop-master
python setup.py install
1.2 utilisation de ngxtop
L'utilisation de base de ngxtop est la suivante :
gxtop [选项]
ngxtop [选项] (print|top|avg|sum) <变量>
ngxtop info
Les options ont les paramètres suivants :
-l : Spécifiez le chemin complet du fichier journal (Nginx ou Apache2)
-f : format du journal
–no-follow : traite le fichier journal actuellement écrit au lieu de traiter les journaux nouvellement ajoutés au fichier journal en temps réel
-t : fréquence de mise à jour
-n : afficher le numéro de ligne
-o : règle de tri (la valeur par défaut est le nombre d'accès)
-a …, –a … : ajoutez des expressions (généralement des expressions agrégées telles que sum, avg, min, max, etc.) à la sortie.
-v : afficher des informations détaillées
-i : traiter uniquement les enregistrements qui correspondent aux règles
-c <file> ou –config <file> spécifie le fichier de configuration nginx et analyse automatiquement le format du journal
-i <filter-expression> ou –filter <filter-expression> Les filtres qui satisfont l'expression seront traités
-p <filter-expression> ou –pre-filter <filter-expression> expression dans le filtre pour vérifier la phase de pré-analyse.
Les variables de ngxtop sont : remote_addr, remote_user, time_local, request, request_path, status, body_bytes_sent, http_referer, http_user_agent
. Il est principalement utilisé pour analyser l'adresse IP, le chemin de la requête, le statut HTTP, le référent, l'agent utilisateur, etc.
1.3 ngxtop exemple
Vous pouvez utiliser ngxtop info pour afficher l'adresse du journal du serveur local et le chemin du fichier de configuration. Cependant, il ne peut afficher que certains fichiers journaux par défaut et certains fichiers journaux personnalisés ne seront pas affichés.
Découvrez les dix principales URL de requête pour les erreurs 404. code de commande :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow top request_path --filter 'status == 404'
L'effet est le suivant :
Découvrez les dix adresses IP les plus visitées. code de commande :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr
L'effet est le suivant :
Découvrez les dix principales adresses IP du trafic. code de commande :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --order-by 'avg(bytes_sent) * count'
Découvrez les codes d'erreur supérieurs à 400 et affichez la demande, l'état et http_referer. code de commande :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow -i 'status >= 400' print request status http_referer
Recherchez les 10 principales valeurs moyennes de bytes_sent avec le code d'état 200 et request_path commençant par wzfou. code de commande :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("wzfou")'
Grâce aux commandes ci-dessus, vous pouvez verrouiller rapidement les adresses IP de certaines requêtes anormales. Par défaut, ngxtop affichera les 10 premiers enregistrements. Vous pouvez ajouter le paramètre –n xxx pour contrôler le nombre affiché. La commande est la suivante :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr -n 20
ngxtop implémente les journaux du serveur de surveillance. Pour afficher la surveillance des journaux Nginx en temps réel, vous n'avez besoin que du paramètre –no-follow. La commande est la suivante :
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --group-by remote_addr
L'effet est le suivant :
2. Installation et utilisation de GoAccess
2.1 Installation de GoAccess
Site officiel de GoAccess :
- HTTPS://go access.IO/
GoAccess prend en charge l'analyse des journaux de serveur tels qu'Apache, Nginx, Amazon S3, Elastic Load Balancing et CloudFront. La commande d'installation est la suivante :
apt-get install libncursesw5-dev libgeoip-dev
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8 --enable-geoip=legacy
make
make install
En fonction de vos propres besoins, vous pouvez ajuster les options de configuration lors de l'installation de GoAccess. comme suit:
--enable-debug
Compilez avec les indicateurs de débogage et désactivez les optimisations du compilateur.--enable-utf8
Prise en charge étendue des caractères. Dépend du module Ncursesw.--enable-geoip=<legacy|mmdb>
Prise en charge de la géolocalisation. Dépend du module MaxMind GeoIP. l'héritage utilisera la base de données GeoIP d'origine. mmdb utilisera la base de données GeoIP2 améliorée.--enable-tcb=<memhash|btree> Tokyo Cabinet
prise en charge du stockage. memhash utilisera la base de données de hachage en mémoire du Cabinet de Tokyo. btree utilisera la base de données sur disque B+Tree du Cabinet de Tokyo.
–disable-zlib Désactive l'utilisation de la compression zlib sur les bases de données B+Tree.--disable-bzip
Désactivez l'utilisation de la compression bzip2 sur les bases de données B+Tree.--with-getline oblige
à utiliser un tampon de ligne à extension dynamique pour analyser les requêtes de ligne complète, sinon un tampon de taille fixe (4096) sera utilisé.--with-openssl
Permet la communication entre GoAccess et son serveur WebSocket pour prendre en charge OpenSSL.
2.2 Utilisation de GoAccess
La syntaxe GoAccess est la suivante :
goaccess [filename] [ options ... ] [-c][-M][-H][-q][-d][...]
Les paramètres couramment utilisés sont décrits comme suit :
-f –log-file=<fichier journal>
Spécifiez le chemin d'accès au fichier journal d'entrée. Si un fichier d'entrée est spécifié dans le fichier de configuration, il est prioritaire sur celui spécifié sur la ligne de commande via le paramètre
-f
.-l –log-debug=<nom de fichier>
Envoie toutes les informations de débogage au fichier spécifié. Les options de configuration doivent être spécifiées
--enable-debug
-p –config-file=<fichier de configuration>
Spécifie d'utiliser un fichier de configuration personnalisé. Si ce paramètre est défini, sa priorité sera supérieure au fichier de configuration globale (le cas échéant).
–invalid-requests=<nom de fichier>
Enregistrez les demandes non valides dans le fichier spécifié.
--no-global-config
Désactivez le chargement des fichiers de configuration globale. Les répertoires possibles doivent être
/usr/etc/
,/etc/
ou/usr/local/etc/
, sauf indication contraire lors de l'exécution de ./configure--sysconfdir=/dir
.-a –liste-d'agents
Ouvrez la liste UserAgent. Lorsqu'elle est activée, la vitesse d'analyse sera réduite.
-d –avec-résolveur-de-sortie
Activez la résolution IP lors de la sortie de rapports
HTML
ouJSON
.-e –exclude-ip <IP|plage IP>
Excluez une adresse IPv4 ou IPv6. Utilisez des connecteurs pour représenter les segments IP (début-fin).
-H –http-protocol=<oui|non>
Commutateur de protocole de requête HTTP. Un champ de requête sera créé contenant le protocole de requête + la requête réelle.
-M –http-method=<oui|non>
Changement de méthode de requête HTTP. Un champ de requête sera créé contenant la méthode de requête + la requête réelle.
-o –output=<json|csv>
Redirigez le fichier donné vers la sortie standard, en utilisant le suffixe pour déterminer le format de sortie :
-q –aucune chaîne de requête
Ignorez la chaîne de requête demandée. Autrement dit : www.google.com/page.htm?query => www.google.com/page.htm
Remarque : La suppression de la chaîne de requête réduira considérablement la consommation de mémoire, en particulier pour les requêtes d'horodatage.-r –aucun résolveur de terme
Désactivez la résolution IP pendant la sortie du terminal.
–444-comme-404
Traitez le statut non standard 444 comme 404.
–4xx-à-unique-count
Ajoutez le nombre d'erreurs client 4xx au nombre de visiteurs uniques.
–tous les fichiers-statiques
Comptez les fichiers statiques contenant des chaînes de requête.
–date-spec=<date|heure>
Définissez le format d'affichage de la date, l'un est le format de date standard (par défaut) et l'autre est le format avec les heures ajoutées à la date.
Valable uniquement dans le panneau des invités. Utile pour analyser les données des visiteurs au niveau horaire. Exemple de format d'affichage :18/Dec/2010 :19
--double-décodage
Décodez une valeur doublement codée. Y compris UserAgent, Request et Referer.
–enable-panel=<PANNEAU>
Ouvrez le panneau spécifié. Liste des panneaux :
–hour-spec=<heure|min>
Définissez le format d'affichage de l'heure, l'un est le format d'heure standard (par défaut) et l'autre est le format avec les minutes ajoutées à l'heure (toutes les dix minutes).
est utilisé pour le panneau de distribution de temps. Utile pour analyser les pics de trafic pendant des périodes spécifiques.–ignorer les robots d'exploration
Ignorez les robots d'exploration.
–ignore-panel=<PANNEAU>
Ignorer le panneau spécifié. Liste des panneaux :
–ignore-referer=<référent>
Ignorez la source des statistiques. Les caractères génériques sont pris en charge. Par exemple :
*.domain.com
ww?.domain.*
–ignore-status=<STATUT>
Ignorez l’analyse ou affichez un ou plusieurs codes d’état. S'il existe plusieurs codes d'état, utilisez ce paramètre pour en spécifier un à la fois.
–num-tests=<numéro>
Définissez le nombre de lignes de test, c'est-à-dire testez le journal d'accès en utilisant le format journal/date/heure donné. La valeur par défaut est de 10 lignes. S'il est défini sur 0 , l'analyseur n'effectuera aucun test et analysera directement l'intégralité du fichier. Si une ligne correspond au format journal/date/heure donné avant d'atteindre le
numéro
, l'analyseur considérera le fichier journal comme valide, sinon GoAccess renverraEXIT_FAILURE
et affichera les messages d'erreur pertinents.–traitement et sortie
Analysez le journal et n'émettez pas de données en quittant. Principalement utilisé lorsque vous souhaitez uniquement ajouter des données à la base de données sur disque sans générer de rapports.
–OS réel
Affichez le vrai nom du système d'exploitation. Par exemple : Windows XP, Snow Leopard.
–sort-panel=<PANNEAU, CHAMP, COMMANDE>
S trie les panneaux lors du chargement initial. Trier les options séparées par des virgules. Les options utilisent le format : PANNEAU, MÉTRIQUE, COMMANDE
–fichier-statique <extension>
Ajoutez un suffixe de fichier statique. Par exemple :
.mp3
. Les noms de suffixes sont sensibles à la casse.-g –std-géoip
Base de données GeoIP standard, faible empreinte mémoire.
–geoip-database <fichier géocité>
Définissez le chemin de la base de données GeoIP. Par exemple : GeoLiteCity.dat. Il doit être téléchargé localement depuis maxmind.com. La prise en charge est disponible pour IPv4 et IPv6. Remarque :
--geoip-city-data
est un alias pour--geoip-database
.
Remarque : Si vous utilisez GeoIP2, vous devez télécharger la base de données ville/pays depuis MaxMind et la définir via--geoip-database
.
Format du journal GoAccess. GoAccess dispose également d'un paramètre utilisé pour définir le format du journal du serveur : –log-format <logformat>. Le paramètre log-format est suivi d'un espace ou d'un délimiteur de tabulation (t
), qui est utilisé pour spécifier le format de la chaîne de journal.
Si vous utilisez le nom de format de journal prédéfini dans le tableau ci-dessous, il peut être directement utilisé comme variable dans le format journal/date/heure GoAccess.
COMBINED | 联合日志格式 VCOMBINED | 支持虚拟主机的联合日志格式 COMMON | 通用日志格式 VCOMMON | 支持虚拟主机的通用日志格式 W3C | W3C 扩展日志格式 SQUID | Native Squid 日志格式 CLOUDFRONT | 亚马逊 CloudFront Web 分布式系统 CLOUDSTORAGE | 谷歌云存储 AWSELB | 亚马逊弹性负载均衡 AWSS3 | 亚马逊简单存储服务 (S3)
2.3 Comment définir le format du journal
Tout d’abord, jetez un œil à votre log_format. La directive log_format est la suivante :
Syntaxe : chaîne de nom log_format… ;
Valeur par défaut : log_format combiné « … » ;
Section de configuration : http
name représente le nom du format et string représente le format équivalent. log_format a un format de journal combiné par défaut qui n'a pas besoin d'être défini, qui est équivalent au format de journal combiné d'Apache, comme indiqué ci-dessous :
log_format combined '$remote_addr - $remote_user [$time_local] '
' "$request" $status $body_bytes_sent '
' "$http_referer" "$http_user_agent" ';
Bien entendu, vous pouvez également ajouter les informations que le journal du serveur doit obtenir en fonction de vos propres besoins. Les variables suivantes sont autorisées dans le format de journal :
remote_addr, $http_x_forwarded_for 记录客户端IP地址
remote_user 记录客户端用户名称
request 记录请求的URL和HTTP协议
status 记录请求状态
body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
bytes_sent 发送给客户端的总字节数。
connection 连接的序列号。
connection_requests 当前通过一个连接获得的请求数量。
msec 日志写入时间。单位为秒,精度是毫秒。
pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
http_referer 记录从哪个页面链接访问过来的
http_user_agent 记录客户端浏览器相关信息
request_length 请求的长度(包括请求行,请求头和请求正文)。
request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
time_iso8601 ISO8601标准格式下的本地时间。
time_local 通用日志格式下的本地时间。
Voici un exemple de paramètre log_format :
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$gzip_ratio" $request_time $bytes_sent $request_length';
log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
open_log_file_cache max=1000 inactive=60s;
server {
server_name ~^(www.)?(.+)$;
access_log logs/$2-access.log main;
error_log logs/$2-error.log;
location /srcache {
access_log logs/access-srcache.log srcache_log;
}
}
}
Voici la correspondance entre le format du journal GoAccess et le format du journal du serveur :
%t 匹配time-format格式的时间字段
%d 匹配date-format格式的日期字段
%h host(客户端ip地址,包括ipv4和ipv6)
%r 来自客户端的请求行
%m 请求的方法
%U URL路径
%H 请求协议
%s 服务器响应的状态码
%b 服务器返回的内容大小
%R HTTP请求头的referer字段
%u 用户代理的HTTP请求报头
%D 请求所花费的时间,单位微秒
%T 请求所花费的时间,单位秒
%^ 忽略这一字段
Exemple de modification du journal GoAccess :
log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $http_x_forwarded_for $request_time $upstream_response_time';
Le fichier de configuration par défaut de GoAccess goaccess.conf
est placé dans le chemin /usr/local/etc
. Le format par défaut est : log-format %h %^[%d : %t %^] "%r" %s %b "%R" "%u".
Observez le format de journal du serveur ci-dessus et constatez qu'il y a plus de temps de réponse $request_time
et de temps de réponse en amont $upstream_response_time.
Nous pouvons le modifier comme suit :
原来:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
修改:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ %^ %T
Les trois derniers éléments %^ %^ %T
, %^
signifie ignorer, %T
signifie "temps de réponse en secondes, précis en millisecondes" . En modifiant le format de GoAccess, il correspond au format de journal de notre serveur.
2.4 Exemple GoAccess
Si votre serveur utilise un format de journal commun, un format de journal commun, y compris un hôte virtuel, le format W3C et Amazon CloudFront (téléchargement distribué), etc., il n'est pas nécessaire de modifier le format de journal, utilisez-le simplement directement. LNMP et Oneinstack utilisent tous deux le format COMBINED.
GoAccess analyse la commande log dans le terminal :
goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED
Dans la commande ci-dessus, -f spécifie le journal /path/to/log à analyser ; –log-format format de journal, le format par défaut de LNMP est : COMBINED. L'effet après l'exécution est le suivant :
Les touches de raccourci d'opération sont les suivantes :
F1
ouh
page d'aide principale.
F5
Redessinez la fenêtre principale.
q
Quittez le programme, la fenêtre actuelle ou le module en panne.
o
ouENTER
développe le module sélectionné ou ouvre une fenêtre.
0-9
etShift + 0
activent le module sélectionné.
j
Faites défiler vers le bas dans le module développé.
k
Faites défiler vers le haut dans le module développé.
c
Définissez ou modifiez le jeu de couleurs.
^ f
Faites défiler l'écran vers l'avant dans le module actuel.
^ b
Reculez d'un écran dans le module actuel.
TAB
module à bascule (vers l'avant).
SHIFT + TAB
Module de commutation (vers l'arrière).
s
Trie les options des modules actifs.
/
recherche dans tous les modules (prend en charge les expressions régulières).
n
Trouvez l'emplacement où l'événement se produira ensuite.
g
Passez à la première option ou en haut de l'écran.
G
Passer à la dernière option ou au bas de l'écran.
Si vous souhaitez afficher les dix adresses IP les plus visitées, appuyez sur la touche numérique 5 pour ouvrir les détails du module. Comme indiqué ci-dessous:
Plusieurs autres modules numériques correspondants sont les suivants :
Appuyez sur 1 pour cibler "Visites par jour"
Appuyez sur 2 pour accéder aux "URL les plus demandées".
Appuyez sur 3 pour accéder aux « Fichiers statiques les plus demandés »
Appuyez sur 4 pour accéder aux "404 les plus demandés".
Appuyez sur 5 pour accéder aux « IP utilisateur les plus demandées »
Appuyez sur 6 pour accéder au « Système d'exploitation de l'utilisateur »
Appuyez sur 7 pour accéder au « Navigateur de l'utilisateur »
Appuyez sur 8 pour accéder aux statistiques horaires
Sortie GoAccess. La commande est la suivante :
Générez un rapport HTML :
# goaccess access.log -a -o report.html
Générez un rapport JSON :
# goaccess access.log -a -d -o report.json
Générez un fichier CSV :
# goaccess access.log --no-csv-summary -o report.csv
GGoAccess est très flexible et prend en charge l'analyse et le filtrage en temps réel. Par exemple : vous devez diagnostiquer rapidement les problèmes en surveillant les journaux en temps réel :
# tail -f access.log | goaccess -
Mieux encore, vous pouvez également utiliser tail -f pour travailler avec un outil de correspondance de modèles, tel que : grep
, awk
, sed
, etc.
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -
Ou vous pouvez analyser le fichier à partir de zéro avec le tube ouvert et appliquer un filtre en même temps :
# tail -f -n +0 access.log | grep --line-buffered 'Firefox' | goaccess -o out.html --real-time-html -
Par exemple:
Sortez GoAccess en HTML, puis accédez-y avec un navigateur. Vous pouvez utiliser la commande suivante :
goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html
L'effet d'y accéder avec un navigateur est le suivant (cliquez pour agrandir) :
Les graphiques générés par GoAccess sont très beaux et vous pouvez également afficher des options détaillées dans les graphiques. Pour plus de détails, vous pouvez également consulter la démo sur le site officiel : https://rt.goaccess.io/
Sortez GoAccess en HTML et actualisez-le en temps réel. La commande est la suivante :
goaccess -d -f /data/wwwlogs/howsvps.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html --real-time-html --port=9870 --daemonize
Ce qui précède montre qu'une fois que le démon a démarré GoAccess, il utilise Websocket pour établir une longue connexion. Il écoute le port 7890 par défaut. Vous pouvez spécifier le numéro de port via le paramètre --port
.
Après avoir précisé le numéro de port, pensez à l'ouvrir dans votre pare-feu VPS :
iptables -A INPUT -p tcp -m tcp --dport 9870 -j ACCEPT
3. Résumé
ngxtop convient aux besoins de recherche simples, tandis que GoAccess se concentre sur l'analyse globale et peut même être utilisé comme statistiques. Si votre site Web utilise SSL, lorsque GoAccess génère la page HTML pour une surveillance en temps réel, n'oubliez pas de configurer ssl-cert
et ssl- dans le fichier de configuration
élément.goaccess.conf
clé.
Bien entendu, nous pouvons également utiliser crontab pour demander périodiquement à GoAccess de générer des pages HTML statistiques, ce qui équivaut à une surveillance en ligne en temps réel des journaux du serveur. Le code est le suivant (générer une page HtmL toutes les 5 minutes) :
*/5 * * * * goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/wzfou.com/wzfou.html
Pour ceux qui ne savent pas comment définir le format du journal GoAccess, vous pouvez directement utiliser l'outil de conversion en ligne : https://github.com/stockrt/nginx2goaccess. Commande:
用法: ./nginx2goaccess.sh '<log_format>' ./nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
Les résultats de sortie peuvent être directement utilisés dans les paramètres de format de journal GoAccess :
- Generated goaccess config: time-format %T date-format %d/%b/%Y log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u"