Web VMStat: Usa ka Real Time System Statistics (Memory, CPU, Processess, etc) Monitoring Tool para sa Linux


Web-Vmstat kini usa ka gamay nga aplikasyon nga gisulat sa Java ug HTML nga nagpakita sa buhi nga mga istatistika sa sistema sa Linux, sama sa Memorya, CPU, I /O, Mga Proseso, ug uban pa gikuha sa vmstat monitoring command line sa usa ka nindot nga Web page nga adunay mga tsart (WebSocket streams gamit ang websocketd program.

Nagrekord ako og usa ka dali nga pagrepaso sa video kung unsa ang mahimo sa aplikasyon sa usa ka sistema sa Gentoo.

Sa usa ka sistema sa Linux kinahanglan nga i-install ang mosunod nga mga utilities.

  1. Usa ka wget para sa pagkuha sa mga file gamit ang HTTP, HTTPS ug FTP nga mga protocol.
  2. Nano o VI CLI Text Editor.
  3. Unzip Archive Extractor.

Kini nga panudlo maggiya kanimo pinaagi sa pag-install sa Web-Vmstat nga aplikasyon sa CentOS 6.5, apan ang pamaagi balido alang sa tanan nga mga pag-apod-apod sa Linux, ang mga butang nga magkalainlain mao ra ang mga init nga script (opsyonal), nga makatabang kanimo sa pagdumala mas sayon ang tibuok proseso.

Basaha Usab: Pagmonitor sa Linux Performance gamit ang Vmstat Commands

Lakang 1: I-install ang Web-Vmstat

1. Sa dili pa ipadayon ang pag-instalar sa Web-Vmstat, siguroha nga naa nimo ang tanan nga gikinahanglan nga mga sugo nga na-install sa imong sistema. Mahimo nimong gamiton ang manager sa package sama sa yum, apt-get, etc nga mando aron ma-install kini. Pananglitan, ubos sa mga sistema sa CentOS, gigamit namo ang yum command aron i-install kini.

# yum install wget nano unzip

2. Karon adto sa opisyal nga web page sa Veb-Vmstat sa ug i-download ang pinakabag-o nga bersyon gamit ang Download ZIP button o gamita ang wget sa pag-download gikan sa command line.

# wget https://github.com/joewalnes/web-vmstats/archive/master.zip

3. I-extract ang na-download nga master.zip archive gamit ang unzip utility ug isulod sa gikuha nga folder.

# unzip master.zip
# cd web-vmstats-master

4. Ang direktoryo sa web nagkupot sa HTML ug Java nga mga file nga gikinahanglan aron ang aplikasyon modagan sa usa ka palibot sa Web. Paghimo og direktoryo sa ilawom sa imong sistema diin gusto nimo nga i-host ang mga file sa Web ug ibalhin ang tanan nga sulud sa web sa kana nga direktoryo.

Kini nga panudlo naggamit /opt/web_vmstats/ sa pag-host sa tanang aplikasyon sa web files, apan mahimo ka nga maghimo ug bisan unsang arbitraryong agianan sa imong sistema nga gusto nimo, siguruha lang nga imong gihuptan ang hingpit nga web path.

# mkdir /opt/web_vmstats
# cp -r web/* /opt/web_vmstats/

5. Ang sunod nga lakang mao ang pag-download ug pag-instalar sa websocketd streaming program. Lakaw ngadto sa opisyal nga WebSocket nga panid ug i-download ang package aron mohaum sa imong sistema sa arkitektura (Linux 64-bit, 32-bit o ARM).

# wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_386.zip
# wget https://github.com/joewalnes/websocketd/releases/download/v0.2.9/websocketd-0.2.9-linux_amd64.zip

6. I-extract ang WebSocket archive gamit ang unzip command ug kopyaha ang websocketd binary ngadto sa usa ka system executable path aron kini magamit sa tibuok sistema.

# unzip websocketd-0.2.9-linux_amd64.zip
# cp websocketd /usr/local/bin/

7. Karon mahimo nimong sulayan kini pinaagi sa pagpadagan sa websocketd nga sugo gamit ang mosunod nga command syntax.

# websocketd --port=8080 --staticdir=/opt/web_vmstats/ /usr/bin/vmstat -n 1

Deskripsyon sa matag parameter nga gipatin-aw sa ubos.

  1. –port=8080: Usa ka port nga gigamit sa pagkonektar sa HTTP protocol – mahimo nimong gamiton ang bisan unsang port number nga imong gusto.
  2. –staticdir=/opt/web_vmstats/: Ang dalan diin ang tanang Web-Vmstat web files gi-host.
  3. /usr/bin/vmstat -n 1: Usa ka Linux Vmstat command nga nag-update sa status niini kada segundo.

Lakang 2: Paghimo Init File

8. Kini nga lakang kay opsyonal ug magamit lamang sa init nga mga sistema nga gisuportahan sa script. Para madumala ang proseso sa WebSocket isip system daemon paghimo ug init service file sa /etc/init.d/ nga dalan nga adunay mosunod nga sulod.

# nano /etc/init.d/web-vmstats

Idugang ang mosunod nga sulod.

#!/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. Human mabuhat ang file, idugtong ang mga permiso sa pagpatuman ug idumala ang proseso gamit ang start o stop switch.

# chmod +x /etc/init.d/web-vmstats
# /etc/init.d/web-vmstats start

10. Kung aktibo ang imong Firewall i-edit ang /etc/sysconfig/iptables file sa firewall ug ablihi ang port nga gigamit sa proseso sa websocketd aron magamit kini sa gawas nga mga koneksyon.

# nano /etc/sysconfig/iptables

Kung mogamit ka sa port 8080 sama sa kini nga panudlo idugang ang mosunod nga linya sa iptables file pagkahuman sa lagda nga nagbukas sa port 22.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

11. Aron mahuman ang tibuok proseso i-restart ang iptables nga serbisyo aron magamit ang bag-ong lagda.

# service iptables restart
# service web-vmstats start

Ablihi ang usa ka browser ug gamita ang mosunod nga URL aron ipakita ang mga istatistika sa sistema sa Vmstats.

http://system_IP:8080

12. Aron ipakita ang ngalan, bersyon ug uban pang mga detalye bahin sa imong kasamtangan nga makina ug ang operating system nga nagdagan niini. Adto sa Web-Vmstat files path ug padagana ang mosunod nga mga sugo.

# cd /opt/web_vmstats
# cat /etc/issue.net | head -1 > version.txt
# cat /proc/version >> version.txt

13. Dayon ablihi ang index.html file ug idugang ang mosunod nga javascript code sa atubangan sa

linya.

# nano index.html

Gamita ang mosunod nga 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. Aron tan-awon ang kataposang resulta i-refresh ang http://system_IP:8080 web page ug kinahanglan nimong makita ang impormasyon ug live statistics bahin sa imong makina karon sama sa mga screenshot sa ubos.