Cara Ringkas Memantau Laman Web Masih Hidup Dengan PHP (Website Up Time Monitoring)

Saya pasang “website monitoring” ni beberapa bulan lalu. Tiada apa yang berlaku. Jadinya saya tiada menerima sebarang makluman daripada skrip PHP ringkas ini. Tapi hari ini tiba-tiba saya mula menerima email.

“website-orang.com has been down for 00:05:00”

Apa?! Memang saya terkejut. Ini laman web klien besar. Dahlah sebelum ni ada masalah besar yang berlaku. Ianya antara sebab kenapa saya pasang monitoring ni.

Jadi perkara pertama yang saya buat adalah mencuba laman web tersebut dengan pelayar Chrome. Eh? Boleh saja. Kenapa ni ya?

Jadi saya pun hubungi syarikat hosting yang saya gunakan. Ini antara maklumbalas yang saya terima.

Network Disruption Details:
There is network disruption for international link and only certain location clients will be affected when connect to all MY network IP.

We will perform a details check on this and post another updates once it become available.

Rupanya trafik dari luar Malaysia tidak boleh akses laman web ini. Skrip “monitoring” saya ni memang berada di server di luar negara. Jadi sebab itulah skrip ini tak boleh akses laman web klien, tetapi bila saya buka dengan Chrome, boleh pula.

Sebenarnya, bila saya berkongsi tentang hal masalah network ini di Facebook, ada yang bertanya perihal skrip yang saya gunakan. Jadi saya kongsikan di sini.

Skrip PHP ini saya gunakan dengan penjadualan Cron. Ianya berjalan selang 5 minit. Dan pastikan bila anda gunakan ini, skrip tidak berada di server yang sama dengan laman web yang ingin dipantau.

 

Ini Github Gist saya. Selamat mencuba.

Kemaskini Kod Git Push untuk Server AutoScaling di Amazon Web Service (AWS)

Sebelum ni saya menulis tentang menggunakan Git untuk menyuruh server mengemaskini aplikasi atau kod. Dengan hanya membuat push ke repo di server Git, server aplikasi juga akan mengemaskini dirinya dengan kod yang terkini.

AWS, Autoscaling dan ELB

aws-autoscaling

Saya banyak menggunakan server di Amazon Web Service (AWS). Antara ciri yang hebat di AWS adalah autoscaling. Dengan autoscaling, kita boleh membina sebuah load balancer dan meletakkan server-server di bawahnya. Maka, trafik yang diterima oleh website akan diagih-agihkan kepada server-server yang terdapat di bawah ELastic Load Balancer (ELB) ini. Biasanya server-server ini adalah serupa, mempunyai kod yang sama, setting yang sama dan lain-lain. Dengan autoscaling, kita boleh tetapkan beberapa peraturan bila dan keadaannya untuk AWS menambah atau mengurangkan server di bawah ELB ini.

Sebagai contoh, saya boleh tetapkan peraturan sebegini:
Continue reading Kemaskini Kod Git Push untuk Server AutoScaling di Amazon Web Service (AWS)

Backup dan Restore MySQL Anda

Ini adalah sebuah tutorial ringkas bagaimana untuk backup dan restore pengkalan data MySQL anda. Kemahiran ini adalah penting untuk memastikan kelangsungan aplikasi sekiranya berlaku sebarang peristiwa yang tidak diingini. Saya nak tekan di sini, apa yang kita buat adalah backup DAN restore. Sebab apa gunanya backup kalau tak boleh restore, betul tak?

MySQL mempunyai satu aplikasi command-line bernama mysqldump. Aplikasi ini adalah untuk dijalankan dalam persekitaran konsol, atau command-line. Bermakna kita perlu menaipkan arahan-arahannya di dalam MS-DOS di dalam Windows atau Terminal di dalam Linux.

Mari kita buat satu pengkalan untuk tutorial ini. Arahan-arahan berikutnya adalah membina sebuah pengkalan data dan memasukkan beberapa rekod. Anda boleh gunakan aplikasi klien MySQL yang lain sekiranya lebih selesa. Continue reading Backup dan Restore MySQL Anda

Analisa Trafik AWS S3 Dengan AWStats, Ubuntu

Alternatif percuma terbaik untuk Google Analytics (bagi saya) adalah Piwik. Mulanya ingat nak guna Piwik untuk analisa trafik dan download yang diterima di AWS S3. Tapi kemudian saya dapati Piwik, secanggih-canggih dia ni, tidak dapat menganalisa saiz data yang bergerak ataupun bandwidth.

Piwik memang hebat. Kalau untuk laman web memang elok. Dan ianya berfungsi lebih kurang sama macam Google Analytic, dengan code Javascript. Jadi memang senang nak digunakan dan data trafik pengunjung juga agak mendalam. Piwik juga boleh digunakan untuk analisa carian dalam laman web, digunakan bersama web e-commerce dan analisa jualan, dan lain-lain. Piwik juga ada pilihan untuk analisa log, tapi data yang ditarik dari log untuk dipaparkan agak terhad.

Jadi pilihan seterusnya adalah AWStats. Berbeza dengan Piwik, AWStats hanya berfungsi dengan membaca fail log. Webserver macam Apache, IIS semuanya ada menulis log trafik yang diterima. Dan AWStats membaca, menganalisa dan merumuskan log ini kepada paparan yang lebih mudah difahami. Oleh sebab cara ianya berfungsi yang sebegini, AWStats tidak boleh memberi maklumat pengunjung secara langsung atau “live”. Namun daripada log, kita boleh mengetahui saiz data yang telah dihantar kepada pengunjung. Contohnya, sekiranya sebuah fail PDF dimuat-turun, data saiz yang dihantar direkodkan sebagai log. Bila dikumpulkan data ini, kita tahu berapa banyak bandwidth yang telah kita gunakan. Ini penting untuk khidmat storan fail statik macam AWS S3.

AWS S3 sebenarnya mempunyai pelbagai ciri-ciri canggih, termasuklah menulis log untuk setiap capaian yang diterima. Ianya merekodkan fail yang diakses, tarikh, masa, saiz fail dan lain-lain. Log ini boleh digunakan bersama AWStats untuk mengetahui rumusan trafik yang diterima.

Mengetahui perincian ini berguna dalam memahami kenapa Amazon mengenakan caj yang telah dicajkan dalam bil bulanan. Ataupun sekiranya kita mengenakan caj kepada pelanggan lain, kita boleh memberikan bil ekstra apabila laman web beliau menggunakan lebih daripada kuota yang ditetapkan untuk dia.

Baiklah, apa-apa pun, ini langkah untuk mula menganalisa log AWS S3 denga AWStats. Elok saya maklumkan yang saya menggunakan server Ubuntu. Jadi itu andaian saya untuk langkah-langkah yang saya terangkan ini.

  1. Pasang & Konfigurasi AWStats
  2. Tetapan Konfigurasi Logging dan Lifecycle pada Bucket S3
  3. Muat-turun log S3 ke server dengan s3cmd
  4. Gunakan AWStats untuk menganalisa log S3
  5. Konfigurasi Apache untuk AWStats dan melihat rumusan analisa
  6. Automasi: gabungkan muat-turun log S3 dan analisa AWStats untuk dilaksanakan secara berkala (cron)

Continue reading Analisa Trafik AWS S3 Dengan AWStats, Ubuntu