Web VMStat: een realtime systeemstatistieken (geheugen, CPU, processen, enz.) Monitoringtool voor Linux
Web-Vmstat het is een kleine applicatie geschreven in Java en HTML die live Linux-systeemstatistieken weergeeft, zoals Geheugen, CPU, I /O, Processen, enz. overgenomen van de vmstat-monitoringopdrachtregel op een mooie webpagina met grafieken (SmoothieCharts) en diagrammen via WebSocket-streams met behulp van het websocketd-programma.
Ik heb een korte videoreview opgenomen van wat de applicatie kan doen op een Gentoo systeem.
Vereisten
Op een Linux-systeem moeten de volgende hulpprogramma's worden geïnstalleerd.
- Een wget voor het ophalen van bestanden met behulp van HTTP-, HTTPS- en FTP-protocollen.
- Nano- of VI CLI-teksteditor.
- Pak archiefextractor uit.
Deze tutorial begeleidt u bij het installeren van de Web-Vmstat-applicatie op CentOS 6.5, maar de procedure is geldig voor alle Linux-distributies. Het enige dat verschilt zijn alleen de init-scripts (optioneel), waarmee u het hele proces eenvoudiger kunt beheren.
Lees ook: Bewaak de Linux-prestaties met behulp van Vmstat-opdrachten
Stap 1: Installeer Web-Vmstat
1. Voordat u doorgaat met het installeren van Web-Vmstat, moet u ervoor zorgen dat alle hierboven vereiste opdrachten op uw systeem zijn geïnstalleerd. U kunt pakketbeheer zoals yum, apt-get, enz. gebruiken om het te installeren. Onder CentOS-systemen gebruiken we bijvoorbeeld de opdracht yum om het te installeren.
yum install wget nano unzip
2. Ga nu naar de officiële webpagina van Veb-Vmstat op en download de nieuwste versie met de knop Download ZIP of gebruik wget om te downloaden vanaf de opdrachtregel.
wget https://github.com/joewalnes/web-vmstats/archive/master.zip
3. Pak het gedownloade master.zip-archief uit met het unzip-hulpprogramma en ga naar de uitgepakte map.
unzip master.zip
cd web-vmstats-master
4. De webmap bevat de HTML- en Java-bestanden die nodig zijn om de applicatie in een webomgeving te laten draaien. Maak een map onder uw systeem waar u de webbestanden wilt hosten en verplaats alle webinhoud naar die map.
Deze tutorial gebruikt /opt/web_vmstats/ om alle applicatiewebbestanden te hosten, maar u kunt elk willekeurig pad op uw systeem maken dat u bevalt, zorg er wel voor dat u het absolute webpad behoudt.
mkdir /opt/web_vmstats
cp -r web/* /opt/web_vmstats/
5. De volgende stap is het downloaden en installeren van het streamingprogramma websocketd. Ga naar de officiële WebSocket-pagina en download het pakket dat past bij uw systeemarchitectuur (Linux 64-bit, 32-bit of ARM).
Op 32-bit systeem
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_386.zip
Op 64-bit systeem
wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_amd64.zip
6. Pak het WebSocket-archief uit met de opdracht unzip en kopieer het binaire bestand websocketd naar een uitvoerbaar systeempad om het beschikbaar te maken systeembreed.
unzip websocketd-0.2.9-linux_amd64.zip
cp websocketd /usr/local/bin/
7. Nu kunt u het testen door de opdracht websocketd uit te voeren met de volgende opdrachtsyntaxis.
websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1
Beschrijving van elke parameter die hieronder wordt uitgelegd.
- –poort=8080: een poort die wordt gebruikt om verbinding te maken via het HTTP-protocol. U kunt elk gewenst poortnummer gebruiken.
- –staticdir=/opt/web_vmstats/: het pad waar alle Web-Vmstat-webbestanden worden gehost.
- /usr/bin/vmstat -n 1: een Linux Vmstat-opdracht die de status elke seconde bijwerkt.
Stap 2: Maak een initbestand
8. Deze stap is optioneel en werkt alleen met systemen die het init-script ondersteunen. Om het WebSocket-proces als een systeemdaemon te beheren, maakt u een init-servicebestand op het pad /etc/init.d/ met de volgende inhoud.
nano /etc/init.d/web-vmstats
Voeg de volgende inhoud toe.
#!/bin/sh
source function library
. /etc/rc.d/init.d/functions
start() {
echo "Starting webvmstats process..."
/usr/local/bin/websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1 &
}
stop() {
echo "Stopping webvmstats process..."
killall websocketd
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: stop start"
;;
esac
9. Nadat het bestand is gemaakt, voegt u uitvoeringsrechten toe en beheert u het proces met start of stop schakelaars.
chmod +x /etc/init.d/web-vmstats
/etc/init.d/web-vmstats start
10. Als uw firewall actief is, bewerkt u het /etc/sysconfig/iptables firewallbestand en opent u de poort die door het websocketd-proces wordt gebruikt om deze beschikbaar te maken voor externe verbindingen.
nano /etc/sysconfig/iptables
Als je poort 8080 gebruikt zoals in deze tutorial, voeg dan de volgende regel toe aan het iptables-bestand na de regel die poort 22 opent.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
11. Om het hele proces te voltooien, start u de iptables-service opnieuw op om de nieuwe regel toe te passen.
service iptables restart
service web-vmstats start
Open een browser en gebruik de volgende URL om Vmstats-systeemstatistieken weer te geven.
http://system_IP:8080
12. Om de naam, versie en andere details weer te geven over uw huidige machine en het besturingssysteem dat erop draait. Ga naar het bestandspad Web-Vmstat en voer de volgende opdrachten uit.
cd /opt/web_vmstats
cat /etc/issue.net | head -1 > version.txt
cat /proc/version >> version.txt
13. Open vervolgens het bestand index.html en voeg de volgende JavaScript-code toe vóór de regel.
nano index.html
Gebruik de volgende JavaScript-code.
<div align='center'><h3><pre id="contents"></pre></h3></div>
<script>
function populatePre(url) {
var xhr = new XMLHttpRequest();
xhr.onload = function () {
document.getElementById('contents').textContent = this.responseText;
};
xhr.open('GET', url);
xhr.send();
}
populatePre('version.txt');
</script>
14. Om het eindresultaat te bekijken, vernieuwt u de webpagina http://system_IP:8080. U ziet dan informatie en live statistieken over uw huidige machine, zoals in de onderstaande schermafbeeldingen.