CatatanLepas , oleh, wirawanBrotoyuwono, september, 2006

"Sugih tanpa bandha, nglurug tanpa bala, menang tanpa ngasorake."
Mungkin ini lebih terasa nyaman untuk didengar.
> Prakata
> ListCatatan :
>> Gatal ya Digaruk Saja
>> Dreaming Properties
>> Sisa 4. Tak Lebih.
>> Tim yang Solid
>> Pengemis-pun Kasihan
>> Gundul.Harus itu.
>> Ganti, ya jangan..
>> Serba Bodoh
> TumorOtakSaya :
>> Gejala.Awam ?!
>> Diagnosa
>> MedicalTreatment(1)
>> MedicalTreatment(2)
>> HomeCare
>> Hari ini
> BayanganLiar :
>> SteveJobs
>> Kambing Hitam
>> Copy'n'Paste
>> BIOS
>> SampahOrganik
>> Korespondensi
>> Kucing
>> MSCA
>> Lupa
>> CCTV
>> T.I.K
>> RadenGatotkaca
>> Telat Terus
>> TempatSampah
>> Proyek
>> Putar Kepala
>> AlurStudi
>> VoIP
>> Hosting
>> TelMon
>> eMail
>> ReviSet
>> PresPLO
>> Grafik(2)
>> Tidur(3)
>> Kuda
>> Lepas Tongkat
>> ssh
>> Tidur(2)
>> Nginternet
>> Bau Sate
>> MbahDukun
>> Kress Kress
>> Perangko
>> Password
>> Pakai 3
>> Robot
>> GrafikAneh
>> PendekarCapKakiTiga
>> Panjang Sebelah ?!
>> JamPulang
>> PHP ber-awk
>> Tidur
>> arsip(Lama) :
> Cerpen :
>> cerpen -- Sosok dan Mouse
>> cerpen -- Grep Rasa Durian
>> cerpen -- Lurah DHCP
>> cerpen -- Komidi 'RRD'
>> cerpen -- Desain Grafis cap ___________ Kue Lapis
> Artikel :
>> artikel -- Terbilang Perl-way
>> artikel -- BillingSystem
>> artikel -- TelkomMonitor
>> artikel -- upTimeMonitor

> Galeri :
>> MDF_(dok/WB)
>> Terbilang -- v.PHP
>> GoogleMON
.. CatatanLepas
upTimon - uptime Monitor

oleh :wirawanBrotoyuwono, juni, 2007


Dari satu dialog dengan seorang 'Beliau' tentang kualitas layanan jaringan universitas yang harus selalu ditingkatkan, maka mesin-mesin pemberi layanan-pun harus selalu dalam kondisi yang mendukung terwujudnya kualitas yang diharapkan. Mesin harus selalu 'up' (- Mungkinkah itu?! , ya paling tidak 'arahnya ke situ' -). Lalu, terlintas ide perlu adanya pencermatan pada kondisi 'up' mesin-mesin tersebut.

upTimon - uptimeMonitor
Dalam linux terdapat utilitas 'uptime' yang melaporkan panjang waktu 'up' pada mesin itu sendiri. Laporan berubah dari menit ke menit. Besaran menit kondisi 'up' selalu meningkat sesuai pergantian menit. Begitu terus, hingga terjadi gangguan lantas kondisi 'down' terjadi. Bila ini terjadi maka 'memori' tentang besaran waktu akan ter-reset ke nilai 0 menit lagi. Artinya kita kehilangan laporan 'uptime' sebelumnya, kecuali kita memang menyempatkan untuk mencatat setiap laporan 'uptime' dari menit ke menit untuk 'njagani' bila kondisi 'down' terjadi.
Untuk keperluan pencatatan tersebut, 'upTimon' disusun.

Bangunan Aplikasi

Target :

  • Aplikasi mencatat besaran menit laporan uptime terakhir tepat sebelum kondisi 'down' terjadi.
  • Aplikasi bisa diatur skedul eksekusi-nya untuk pertimbangan skala akurasi.
  • Aplikasi dioperasikan terus-menerus selama mesin dalam kondisi 'up'.
  • Laporan hasil bisa dikelola sebagai catatan 'uptime' mesin.
  • Laporan hasil bisa dijadikan kajian menentukan status 'kesehatan' mesin.
  • Aplikasi bisa diterapkan pada kebanyakan mesin ber-linux.
  • Aplikasi terbuka untuk dikembangkan seperlunya.

    Kebutuhan Sistem
    OS : Linux
    Tool : utilitas 'uptime', skeduling 'anacron'
    Interpreter : Perl

    Bentuk
    Dari beberapa sampel 'bentuk' keluaran utilitas 'uptime', (- yang 'bisa' saya tangkap -),

    > 08:01:26 up 14 days 52 min, ...
    > 08:47:35 up 14 days 1:38, ...
    >   9:47am up 5:42, ...
    >   5:45pm up 8 min, ...
    Susunan 'bentuk' dijadikan dasar perhitungan ke dalam besaran menit.

    Aliran dan Logika
    Prinsip dasar, aliran dan logika dalam aplikasi adalah,
  • Melakukan 'uptime', menghitung 'besaran waktu up'-nya lantas membandingkan dengan 'besaran waktu up sebelumnya'.
  • Perhitungan dan perbandingan besaran waktu selalu dalam menit. Dalam pertimbangannya, 'bentuk' laporan sangat berpengaruh. misal ' min' ,' 3 days' , '13:13' dsb.
  • (- dari logika saya -), dalam kondisi 'up', maka besaran menit akan 'menaik' dan bila terjadi kondisi 'down' maka besaran menit akan ter-reset ke nilai '0' (=nol).
  • Pencantuman hasil laporan bila ada kondisi 'menit baru < menit lama'. Ini terjadi ketika mesin 'down' lalu 'up' lagi.
  • Laporan hasil adalah informasi ''up' terakhir tepat sebelum 'down' terjadi.


    OpenSource Code
    file: uptimon.pl --- perl-skripting :

    
    #!/usr/bin/perl
    
    system("cp -f upt.txt upt0.txt");
    system("uptime >upt.txt");
    system("date >date.txt");
    open(UP,"upt.txt");
    while (){
    	chomp;
    	s/.* up //;
    	s/average:/average/;
    	if (grep(/day/,$_) and (!grep(/\:/,$_))){
    		print "format 1....\n";
    		print "$_";
    		s/.* up //;
    		s/s//g;
    		s/,.*//;
    		s/:/ /;
    		print "$_";
    		@mn=split(/ /,$_);
    		#$menit=($mn[0]*$mn[1]) + ($mn[2]*60) + $mn[3];
    		$menit=($mn[0]*1440) + $mn[2];
    		}
    	if (grep(/day/,$_) and (grep(/:/,$_))){
    		print "format 2.....\n";
    		print "$_";
    		#s/.* up //;
    		s/s//g;
    		s/day,/1440/;
    		s/,.*//;
    		s/:/ /;
    		@mn=split(/ /,$_);
    		$menit=($mn[0]*$mn[1]) + ($mn[2]*60) + $mn[3];
    		}
    	if (!grep(/day/,$_) and (grep(/:/,$_))){
    		print "format 3.....\n";
    		print "$_";
    		s/,.*//;
    		s/ //;
    		s/:/ /;
    		@mn=split(/ /,$_);
    		$menit=($mn[0]*60) + $mn[1];
    		}
    	if (!grep(/day/,$_) and (grep(/min/,$_))){
    		print "format 4.....\n";
    		print "$_";
    		s/,.*//;
    		#s/ //;
    		@mn=split(/ /,$_);
    		$menit=$mn[0];
    		}
    	}
    #######################################
    open(O,"menit0.txt");
    while(){
    	chomp;
    	$menit0=$_;
    	}
    #######################################
    print "\nmenit0 = $menit0\n";
    print "menit  = $menit\n";
    system("echo '$menit' >menit0.txt");
    #######################################
    if ($menit < $menit0){
    	open(HS,">> hasil.txt");
    	open(DATE,"date.txt");
    	while(){
    		chomp;
    		print HS "$_ >>>";
    		}
    	open(OLD,"upt0.txt");
    	while(){
    		s/days,/days/;
    		s/,.*//;
    		print HS "$_";
    		}
    	}
    
    

    Bagian Penyelesaian
    Skedul-ing
    Untuk penjadwalan eksekusi aplikasi dipakai anacron dengan meng-konfigur 'crond'-nya.
    Informasi Hasil
    Penyajian bisa dilakukan dengan pengelolaan file 'hasil.txt'.

    Demikian 'upTimon'-nya, ya pasti dengan selalu tidak menutup kemungkinan 'koreksi' dari sidang pembaca. Seadanya, inilah 'open source'. Salam.

    minomartani,juni,2007
    PostingTerbaru :
    >> SteveJobs , 11/10/11
    >> KambingHitam , 11/08/11
    >> Copy'n'Paste , 18/04/11
    >> BIOS , 11/04/11
    >> SampahOrganik , 29/03/11
    >> Korespondensi , 28/03/11
    >> Kucing , 23/03/11
    >> MSCA , 21/03/11
    >> Lupa ,14/03/11
    >> CCTV ,10/03/11
    >> T.I.K ,7/03/11
    >> Gatotkaca ,7/03/11
    >> Telat Terus ,28/02/11
    >> TempatSampah ,24/02/11
    >> Proyek ,21/02/11