Cara Health Check Server - OS Linux

   




Hi, 





Prolog - My Story 

Berperan sebagai IT Consultant yang objective-nya menjual beberapa produk mostly untuk beberapa Bank di Indonesia, saya dan tim akan berperan dari proses implementasi di beberapa environment mulai dari instalasi, configuration dan monitoring service

Namun setelah seluruh service sudah Go Live serta dipastikan berjalan dengan baik, tanggung jawab belum selesai sampai disitu saja. Saya dan tim juga akan melakukan maintainance pada server Production yang menampung service tersebut yang biasanya biasanya diadakan per 3 atau 4 bulan sekali.

Maintainance ini berupa proses Health Check yang kemudian di analisa untuk menciptakan output atau goals berupa summary dari hasil pengecekan seluruh status kinerja server. Outputnya berbentuk dokumen yang berisikan detail value, chart, persentase dari akumulasi keseluruhan server yang akan di olah menggunakan rumus tertentu.


Apa itu Health Check?

Seperti nama nya yaitu "Health Check" berarti memiliki arti pengecekan kesehatan. Mirip dengan Check Up yang kita lakukan secara rutin untuk mengetahui summary kesehatan tubuh. Namun health check server adalah proses pemeriksaan dan pengumpulan gambaran menyeluruh tentang kinerja dan status server. Ini melibatkan pemantauan spesifikasi perangkat keras, metrik, dan statistik kinerja server secara berkala. 


Kegunaan Health Check?

Dengan melakukan health check secara rutin, Anda dapat mendeteksi dan mengatasi masalah potensial dengan aktif. Jadi, mirip dengan pemeriksaan kesehatan kita, server juga memerlukan perawatan agar tetap berfungsi optimal! Hal ini sebagai tindakan preventif mencegah service padam akibat status server yang down, sebagai contoh insiden karena memory usage yang critical.


Tindakan setelah Health Check?

Hasil health check yang berupa dokumentasi serta summary information, akan diserahkan ke pihak Bank untuk ditindaklanjuti proses pemulihannya. Apabila server masih dalam keadaan aman, tidak ada tindakan apapun yang akan dilakukan dari sisi Bank. Namun apabila sebaliknya, maka pihak Bank akan melakukan pemulihan berdasarkan insiden yang ditemukan ; dimana biasanya peran ini ditangani oleh Tim IT Ops. 

Sebagai contoh insiden apabila disk usage sudah critical mungkin akan ditambahkan disk baru sebagai perluasan space , dsb.


____



Cara Health Check Server Manual

Apa saja komponen server yang akan di check? 
  1. systemctl status iptables
    Tujuan: Memeriksa status layanan iptables (aturan firewall).
    Kegunaan: Memastikan aturan firewall berfungsi dengan baik.

  2. systemctl status firewalld
    Tujuan: Memeriksa status layanan firewalld (manajemen firewall).
    Kegunaan: Memastikan manajemen firewall berjalan dengan benar.

  3. sestatus
    Tujuan: Menampilkan status dan mode SELinux.
    Kegunaan: Memeriksa konfigurasi keamanan SELinux.

  4. uptime
    Tujuan: Menampilkan waktu aktif sistem dan rata-rata beban.
    Kegunaan: Memantau kinerja server secara keseluruhan.

  5. free -m
    Tujuan: Menampilkan penggunaan memori dalam megabita.
    Kegunaan: Memantau penggunaan memori.

  6. service crond status
    Tujuan: Memeriksa status daemon cron (tugas terjadwal).
    Kegunaan: Memastikan tugas terjadwal berjalan dengan baik.

  7. crontab -l
    Tujuan: Menampilkan daftar pekerjaan cron pengguna.
    Kegunaan: Memeriksa jadwal tugas terjadwal.

  8. Navigasi ke direktori /etc/cron.d/
    Tujuan: Menavigasi ke direktori cron.d.
    Kegunaan: Melihat file-file konfigurasi cron.

  9. df -ah
    Tujuan: Menampilkan penggunaan ruang disk untuk semua sistem file yang dipasang.
    Kegunaan: Memantau kapasitas penyimpanan.

  10. route -n
    Tujuan: Menampilkan tabel routing jaringan sistem.
    Kegunaan: Memeriksa konfigurasi routing.

  11. ntpstat
    Tujuan: Memeriksa status sinkronisasi NTP (Network Time Protocol).
    Kegunaan: Memastikan waktu sistem terkoreksi dengan benar.

  12. cat /etc/resolv.conf
    Tujuan: Menampilkan konfigurasi resolver DNS.
    Kegunaan: Memeriksa pengaturan DNS.

  13. ifconfig
    Tujuan: Menampilkan konfigurasi antarmuka jaringan.
    Kegunaan: Memantau status antarmuka jaringan.

  14. top
    Tujuan: Menampilkan penggunaan sumber daya sistem secara real-time (CPU, memori, dll.).
    Kegunaan: Memantau kinerja sistem.



Cara Health Check Server Otomatis Menggunakan File .sh


Berikut script nya

#!/bin/bash
echo "Process to record Healt Check information"
FILE_NAME=$(hostname)_$(date '+%Y-%m-%d').txt
DEFAULT_DIRNAME=$(pwd)
DIRECTORY=$DEFAULT_DIRNAME
echo "Enter full path directory name [$DEFAULT_DIRNAME]"
read DIRECTORY_NAME
if ! [ -z $DIRECTORY_NAME ]
then
DIRECTORY=$DIRECTORY_NAME
fi
if ! [ -d $DIRECTORY ] 
then
mkdir $DIRECTORY -p
fi
cd $DIRECTORY
echo "Created directory [$(pwd)]"
echo "Recording is begin..."

echo "=== General Information ===" > $FILE_NAME
hostname >> $FILE_NAME
cat /etc/redhat-release >> $FILE_NAME
uname -r >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Hardware Information ===" >> $FILE_NAME
cat /sys/devices/virtual/dmi/id/sys_vendor >> $FILE_NAME
cat /sys/devices/virtual/dmi/id/product_name >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Process Information ===" >> $FILE_NAME
top -n 3 -b >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Memory Information ===" >> $FILE_NAME
free -m >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Disk Information ===" >> $FILE_NAME
df -ah >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Firewall Information ===" >> $FILE_NAME
systemctl status iptables >> $FILE_NAME
systemctl status firewalld >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== SELinux Information ===" >> $FILE_NAME
sestatus >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Uptime Information ===" >> $FILE_NAME
uptime >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Last Information ===" >> $FILE_NAME
echo "Last Reboot" >> $FILE_NAME
last reboot >> $FILE_NAME
echo "Last Shutdown " >> $FILE_NAME
last shutdown >> $FILE_NAME
echo "Last" >> $FILE_NAME
last >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Network Information ===" >> $FILE_NAME
route -n >> $FILE_NAME
ntpstat >> $FILE_NAME
cat /etc/resolv.conf >> $FILE_NAME
ifconfig >> $FILE_NAME
echo "" >> $FILE_NAME

echo "=== Scheduler Information ===" >> $FILE_NAME
service crond status >> $FILE_NAME
crontab -l >> $FILE_NAME
ls /etc/cron.d/ >> $FILE_NAME
CRON_FILES=/etc/cron.d/*
for CRON_FILE in $CRON_FILES
do
echo ">>> $CRON_FILE :" >> $FILE_NAME
cat $CRON_FILE >> $FILE_NAME
done

echo "Recording success."
echo "Check result at [$DIRECTORY/$FILE_NAME]"

 

Langkah - langkah
  1. Simpan script di atas dalam bentuk file .sh pada local anda.
    contoh : health_check.sh


  2. Pastikan sudah create folder terlebih dahulu di dalam server , khusus untuk eksekusi health check ini. Saran bisa di dalam folder /apps, dengan cara ;
    cd /apps
    mkdir health_check
    chmod +x health_check

     

  3. Pindahkan file tersebut dari local ke dalam server yang akan di check
    - Menggunakan WinSCP : akses artikel ini jika belum pernah menggunakan WinSCP
    - Menggunakan command scp 


  4. Pastikan file health_check.sh sudah ada di directory
    /apps/health_check
    ll
    chmod +x health_check.sh

  5. Jalankan script .sh
    ./health_check.sh
  6. Tunggu proses sampai selesai

  7. File hasil health_check sudah berhasil di generate , pastikan dengan cek kembali terlebih dahulu hasilnya pada folder /apps/healthcheck, dengan cara

    ll

    dimana penamaan file sesuai script tersebut sudah di set dengan struktur 
     FILE_NAME=$(hostname)_$(date '+%Y-%m-%d').txt

  8. Cek isi file tersebut apakah sudah berhasil membawa semua informasi health check atau belum

    vi health_check.sh

  9. Jika sudah sesuai, silahkan unduh file tersebut dan simpan di local anda.

  10. File tersebut akan digunakan kembali untuk tahap berikutnya yaitu indikator perhitungan analisa health check.


Thankyou!

Regards,
Lily

Comments

Popular posts from this blog

Soal Technical Sistem Analis - Part 1

Soal Technical Sistem Analis - Part 2

Soal Technical Sistem Analis - Part 3