Server Remote Auto Shutdown berbasis Jaringan

Selain bertanggung jawab terhadap kelancaran akses, seorang network administrator juga bertanggung jawab terhadap pengamanan data agar tidak mudah rusak/hilang. Salah satu penyebab yang dapat memicu rusaknya server / data adalah belum adanya antisipasi terhadap matinya aliran listrik tetap secara tiba-tiba, sehingga server mati tanpa proses shutdown.

Umumnya hal ini diantisipasi dengan menggunakan Uninteruptible Power Supply (UPS). Namun kadang kita masih lalai juga, menganggap bahwa memasang UPS sudah cukup, tanpa mengkonfigurasi secara optimal agar jika daya battery UPS sudah menipis server dapat shutdown secara otomatis, tanpa harus dijaga 24 jam oleh administrator.

Untuk skala kecil, kita masih dapat memasang 1 UPS untuk 1 server. Tapi jika server sudah berjumlah puluhan dan area jaringan sudah luas, cara yang ditempuh biasanya memanfaatkan 1 buah UPS besar untuk bebebrapa server sekaligus.

Tutorial ini membahas bagaimana mengoptimalkan fungsi UPS untuk melakukan auto shutdown ke sejumlah server, secara remote, melalui jaringan TCP/IP, baik jaringan wired maupun wireless. Eksperimen ini dilakukan dan diterapkan di Network Operation Center (NOC) Universitas Muhammadiyah Malang, dengan kondisi sebagai berikut :
• Ada puluhan PC server dengan sistem operasi Linux dan FreeBSD yang dijejer dalam satu rak, letaknya cukup berjauhan dengan UPS karena memang kurang memungkinkan menempatkan seluruh UPS kedalam rak. PC server inilah yang akan diamankan proses shutdown-nya.
• Ada 2 UPS daya 5000VA, dan 4 UPS daya 1000VA, sebagian tergolong smart UPS (dilengkapi software RUPS), dan lainnya UPS biasa yang sudah ditambah battery eksternal.
• Sejumlah peralatan jaringan seperti kabel LAN, switch, router mikrotik dan cisco yang konon boleh dimatikan tanpa shutdown sehingga tidak perlu pengamanan ekstra.
• Antar PC server sudah bisa saling remote menggunakan SSH.

Dengan kondisi diatas, memperpanjang atau mencabang kabel serial dari port RS-232 smart UPS agar bisa menjangkau puluhan PC server jelas kurang menguntungkan. Selain perlu banyak kabel, penulis belum tahu apakah sebuah port smart UPS bisa dipakai untuk mengendalikan beberapa port serial sekaligus? Yang pasti kami berfikir bagaimana memanfaatkan jaringan LAN yang ada untuk menjalankan fitur ini.

Untuk itu yang perlu dilakukan adalah memfungsikan salah satu smart UPS dan menginstal software bawaan UPS (kami menggunakan RUPS versi linux dari UPS ICA atau Prolink) pada salah satu server untuk dijadikan server pengendali (kontroler). Untuk keperluan ini sebaiknya dipilih UPS yang daya backup-nya paling lama atau beban server paling hemat listrik sehingga lebih menjamin dapat mematikan server lain sebelum mematikan dirinya sendiri.

Skema fisik sistem ini dapat dilihat pada gambar berikut :

skema-fisik-arups

Langkah – langkah instalasi server Kontroler :
1. Copy file linux.tar.gz dari CD RUPS ke harddisk server lalu ekstrak dan lakukan setup dengan mengetik :

#tar xvfz linux.tar.gz
#./install

Program RUPS akan terinstal pada direktori /etc/rups

2. Hubungkan port RS-232 dari UPS ke port serial pada PC server menggunakan kabel serial original bawaan UPS yang bersangkutan. Tentunya hubungkan pula power cord ke output UPS ini. Dan biarkan server lain dicatu oleh UPS lainnya.

3. Mengkonfigurasi software RUPS, ketik

# /etc/rups/rupsc config

Akan tampil seperti gambar dibawah :

[caption id="attachment_45" align="alignnone" width="406" caption="Konfigurasi RUPS"]konfigurasi RUPS[/caption]

• Pastikan nilai pada menu [B] sesuai dengan durasi backup UPS anda. Kami mengisinya 15 menit.
• Pastikan menu [F] sudah mengarah ke port serial yang sedang digunakan. Kami menggunakan com1 (ttyS0)
• Juga pastikan menu [E] diisi YES, dan menu [L] diisi ON
• Simpan konfigurasi dengan menekan tombol S.

4. Jalankan program RUPS dengan mengetik

#/etc/rups/rupsc start

Untuk mengujinya, anda dapat memutus aliran listrik dari stop ke UPS. Jika instalasi sudah benar maka program count down dari RUPS akan berjalan.

5. Pada server kontroler, buatlah private/public key dengan menjalankan perintah berikut:

# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: TEKAN ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
c5:37:30:27:fa:34:f1:3b:4d:d3:12:65:15:3b:37:d1 root@hotspot
The key's randomart image is:
+--[ RSA 2048]----+
|      .= . .+B|
|      o *   +E|
|     . = + ++o|
|      + o = oo|
|        S . o .  |
|             .   |
|                 |
+-----------------+

Selanjutnya, langkah-langkah pengendalian remote server yang akan di-shutdown:

6. Masih pada server kontroler, set public key yang berhak mengakses remote server dengan cara memasukkan public key ke dalam file authorized_keys pada computer remote. Pada contoh ini kami akan memasukkan public key ke server 10.10.1.19 dengan username root.

#scp ~/.ssh/id_rsa.pub root@10.10.1.19
#ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10.1.19

7. Untuk mencobanya Anda dapat memasuki server tersebut dengan mengetik

#ssh 10.10.1.19

Bila anda dapat masuk tanpa password, berarti sudah berhasil ditahap ini.

#exit

Ulangi cara nomor 6 dan 7 ini untuk setup remote server lainnya. Jumlah server remote tidak dibatasi sejauh terhubung ke jaringan (bisa diuji dengan ping <ip-remote-server>.

Tahap berikutnya adalah memasukkan perintah “shutdown –h now” pada program RUPS  :

8. Masuk ke direktori /etc/rups dan buat script shutdown, seperti contoh dibawah ini

#cd /etc/rups
#vi shutdown.sh

/usr/bin/ssh root@10.10.1.1 "shutdown -h now" &
/usr/bin/ssh root@10.10.1.2 "shutdown -h now" &
/usr/bin/ssh root@10.10.1.3 "shutdown -h now" &
/usr/bin/ssh root@10.10.1.5 "shutdown -h now" &
/usr/bin/ssh root@10.10.1.6 "shutdown -h now" &
/usr/bin/ssh root@10.10.1.7 "shutdown -h now" &
#dan seterusnya jika masih ada server remote lain…
/sbin/halt

#chmod 755 shutdown.sh

9. Edit file shutdown.ini, hapus seluruh isi file, kemudian ganti dengan /etc/rups/shutdown.sh

#vi shutdown.ini
/etc/rups/shutdown.sh

10. Selesai

Demikianlah langkah-langkah membuat server auto remote shutdown memanfaatkan media jaringan yang ada. Lebih lanjut cara ini dapat dikembangkan, misalnya dihubungkan dengan SMS gateway maka server akan dapat mengirim SMS pemberitahuan ke administrator jika server akan dishutdown. Untuk melakukan uji coba, anda dapat memutus aliran listrik dari stop kontak PLN ke UPS dan tunggu sampai server utama melakukan aksinya.
Selamat mencoba. Semoga bermanfaat.