Uptime Monitoring memakai Node.js
Beberapa hari ini lagi mikirin ide untuk pemakaian domain dan vps yang nganggur, dan alhamdulillah akhirnya dapat ide juga.
Sebuah vps dari Digital Ocean, dengan memory 512MB, dan domain www.vpsdi.com, akhirnya dipakai untuk menjalankan sebuah program monitoring memakai Node.js dengan mempergunakan script dari fzaninotto
Program monitoring uptime ini, dijalankan dengan memakai sistem proxy melalui Nginx, supaya vpsnya juga dapat dipergunakan untuk menghosting situs lain.
Berikut adalah cara-cara membuat programnya berjalan :
- Install Node.js
# apt-get install python g++ make checkinstall # mkdir ~/src && cd $_ # wget -N http://nodejs.org/dist/node-latest.tar.gz # tar xzvf node-latest.tar.gz && cd node-v* # ./configure # make && make install Verify that your Node.js and Npm have been installed : # node -v # npm -v
- Install Mongodb
# apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 # echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list # apt-get update -y # apt-get install mongodb-10gen start mongodb # /etc/init.d/mongodb start
- Membuat database, user dan password di Mongodb
# mongo > use uptime # ini adalah nama database > db.addUser('namauser','password'); > exit
- Cloning repository Git dan konfigurasinya
# apt-get install git -y # git clone https://github.com/fzaninotto/uptime # cd uptime Menginstall package yang diperlukan # npm install Testing aplikasinya # node app Matikan aplikasi dengan menekan Ctrl+C
- Atur konfigurasi file di /uptime/config/default.yaml
mongodb: server: localhost database: uptime # silakan disesuaikan nama databasenya user: user # silakan disesuaikan usernya password: uptime # silakan disesuaikan passwordnya connectionString: # alternative to setting server, database, user and password separately monitor: name: origin apiUrl: 'http://123.123.123.123:8082/api' # IP dari vps pollingInterval: 10000 # ten seconds timeout: 5000 # five seconds userAgent: NodeUptime/3.0 (https://github.com/fzaninotto/uptime) analyzer: updateInterval: 60000 # one minute qosAggregationInterval: 600000 # ten minutes pingHistory: 8035200000 # three months autoStartMonitor: true server: port: 8082 plugins: - ./plugins/console - ./plugins/patternMatcher - ./plugins/httpOptions # - ./plugins/email - ./plugins/basicAuth email: method: SMTP # possible methods are SMTP, SES, or Sendmail transport: # see https://github.com/andris9/nodemailer for transport options service: Gmail # see https://github.com/andris9/Nodemailer/blob/master/lib/wellknown.js for well-known services auth: user: # The email account username, e.g. 'username@gmail.com' pass: # The email account password, e.G. 'password' event: up: true down: true paused: false restarted: false message: from: # The message sender, e.g. 'Fred Foo <foo@blurdybloop.com>' to: # The message recipient, e.g. 'bar@blurdybloop.com, baz@blurdybloop.com' dashboardUrl: 'http://123.123.123.123:8082' basicAuth: username: namauser password: password verbose: true # only used in dev
- Konfigurasi Nginxnya :
server { listen 80; listen [::]:80; server_name vpsdi.com; rewrite ^/(.*) http://www.vpsdi.com/$1 permanent; } server { listen 80; listen [::]:80; server_name www.vpsdi.com; location / { proxy_pass http://123.123.123.123:8082/; proxy_set_header Host $host; proxy_buffering off; } }
- Menjalankan aplikasi
Masuk ke direktory tempat menginstall aplikasi, misalnya : # cd /home/uptimoe/ # node app
Aplikasi akan berjalan selama jendela sshnya masih terbuka/berjalan. Untuk membuat agar aplikasi Node.js terus berjalan, kita bisa mempergunakan program supervisord, namun kelemahannya vps harus direstart untuk mendeteksi penambahan konfigurasinya. Inilah yang menyebabkan vps dari Digital Ocean saya uptimenya rendah 😀
- Selanjutnya, aplikasi tadi bisa dibuka dengan cara membuka alamat IP diakhiri dengan Port yang dipakai tadi
http://123.123.123.123:8082
Member discussion