J'héberge beaucoup d'hôtes virtuels utilisant Apache dans une LAMP de base configurée à l'aide de Webmin / Virtualmin. Je recherche un outil de haut niveau dans lequel je peux surveiller les connexions actuelles. La partie hébergement virtuel semble me causer des problèmes ici. Voici ce que j'ai essayé:
netstat
- Je peux voir les connexions, mais elles me montrent comme si elles utilisaient toutes mon domaine principal, par exemplemydomain.com:www
.iftop
- J'aime beaucoup, mais les inconvénients sont les mêmes quenetstat
: ne montre pas l'hôte virtuel.apachetop
- semble ne montrer aucune information pour tous mes hôtes virtuels. Je me connecte pour séparer les fichiers journaux personnalisés, ce qui, je suppose, est la cause de son inefficacité.ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
- ne fonctionne pas non plus .
Donc, en gros, je cherche quelque chose de similaire à la sortie de courant netstat
, mais d'inclure l'hôte virtuel la demande est pour, par exemple: avirtualsite.com:www
.
apache2
websites
virtualhost
webmin
Piotr Kula
la source
la source
apachetop
- mais qui ne contrôle que le fichier i fournir .. damnit- pas tous les serveurs ...Réponses:
La réponse d'Andrea Corbellini vous explique pourquoi cela ne fonctionne pas avec les outils que vous utilisez et comment fonctionne l'hébergement virtuel. Voici le moyen le plus simple auquel je puisse penser pour le faire dans Apache ...
mod_status
va vous aider.Clause de non-responsabilité: je ne sais pas comment cela se passe dans Webmin - J'utilise des fichiers de configuration nus pour configurer des serveurs. Voici juste un aperçu de base des étapes.
C'est un
top
outil similaire, mais représenté comme une page Web. Il répertorie l'état actuel directement interrogé par Apache. Il ne dépend donc pas de l'analyse des fichiers journaux, comme c'est leapachetop
cas pour.Activer
mod_status
:Accordez-vous l'accès.
/etc/apache2/mods-enabled/status.conf
et éditer:ExtendedStatus
surOn
(facultatif, mais plus génial et un peu plus lent)Dans le
<Location /server-status>
, ajoutez votre adresse IP à la ligne avec laAllow
directive. Exemple:Redémarrez Apache:
Profitez de l'outil dans votre navigateur, par exemple:
http://1.2.3.4/server-status
Cela ressemblera à cet exemple de capture d'écran .
Continuez à appuyer F5pour obtenir des mises à jour. Ou obtenez un plugin de navigateur génial et regardez-le être mis à jour!
Webmin
addendum de l'OP pour les futurs visiteurs
Dans Webmin, les étapes de base concernant le module Status peuvent être trouvées ici:
la source
Tous les outils que vous essayez ne vous donneront jamais la bonne réponse. La raison en est que les informations que vous demandez sont perdues lorsque la connexion est établie.
Prenons un exemple: supposons que votre serveur Web ait une adresse IP ( 1.2.3.4 ) et deux noms d’hôte ( a.mydomain.com et b.mydomain.com ) qui correspondent à cette adresse IP.
Que se passe-t-il lorsque vous utilisez votre navigateur Web préféré lorsque vous visitez le site a.mydomain.com ?
So
netstat
& co. sachez seulement qu'une connexion entrante est établie à 1.2.3.4 . La raison pour laquelle vous voyez un nom d’hôte au lieu d’une adresse IP est que l’adresse IP a un enregistrement rDNS, ellenetstat
préfère donc l’indiquer au lieu de l’IP, car c’est plus agréable. Essayeznetstat -n
(ou supprimez l'enregistrement rDNS) et vous verrez l'adresse IP.Mais ce n'est pas tout: quand j'ai dit que les informations sur le nom d'hôte utilisé pour établir la connexion avaient été perdues, je n'avais pas entièrement raison. Du point de vue de la pile TCP / IP, cette phrase est vraie. Mais si nous voyons les choses du point de vue du protocole HTTP, les choses sont différentes. Dans chaque demande HTTP, il existe un en-
Host:
tête contenant le nom d'hôte utilisé par le navigateur pour effectuer la demande.Donc, en bref, vous devriez regarder les fichiers de log de votre serveur web. Le serveur Web est le service qui gère les demandes HTTP et, par conséquent, le seul service qui connaît le nom d'hôte "d'origine".
la source
Une autre façon est de taper
dans votre terminal
la source
access.log
ne contient pas toutes les demandes. Au lieu de cela, je regarde/usr/local/apache/domlogs/
pour voir les demandes de virtualhost (réparties entre SSL, non-SSL et même FTP). Le chemin peut être différent sur Ubuntu cPanel./var/log/httpd/access_log
Vous pouvez vérifier tous les ips connectés sur le port 80 avec cette bash
Remarque: si vous voulez voir un autre port, changez 80
SORTIE:
la source
Vous pouvez vérifier cela avec:
la source
Si vous voulez pid, utilisateur et commande:
la source
Vous pouvez également utiliser GoAccess de manière interactive pour afficher vos visiteurs actuels. Il analyse votre journal d’accès Apache à cet effet et affiche un ensemble de statistiques sur votre site.
la source