Workspace …

Hanya sekedar workspace. Di saat gak ada semangat buat mengerjakan apa yang seharusnya dikerjakan, kadang dengan mengatur layout kerja di depan kita bisa mengingkatkan mood. Saya sendiri lebih suka dengan dual monitor seperti ini soalnya bisa  lebih luas area kerja nya, gak cuma terpaku dalam satu area monitor saja. Contoh di kostan

Terkadang ditambah dengan device lain membuat pekerjaan semakin asik

Ah, geje kalau lagi ngerjain Draft TA gini.

Tentu kalau ditanya dream computer workspace, kayaknya kalau gini lebih asik

 

Aesthetic

Longing for you day and in dream

I’m hoping you are dare and leading my way

 

You steers my road anytime I need

If you walk away, I will follow you

 

Trying my life

With your secret gifts you gave to me

I won’t vain and succeed it as your precious soul

 

Holding your hand

And I’m walking through the all of the world

 

Carrying your wish like the Venus in the dim sky

So much inspiration come to me when hearing this music.

Install dan configure gammu di CentOS 6

Meskipun aplikasi SMS gateway gammu ini termasuk yang jadul, tapi terkadang dibutuhkan juga untuk broadcast sms atau membuat aplikasi yang mengirim sms menggunakan daemon pada sistem operasi seperti linux atau windows. Kali ini kebetulan saya install gammu pada CentOS 6.

Persiapan Environment

Dibutuhkan beberapa paket compiler. Install paket developer CentOS

yum groupinstall 'Development Tools'

Gammu memerlukan CMAKE untuk compiler nya. Untuk itu download terlebih dahulu cmake dari link berikut.

# tar -xzvf cmake-2.8.7.tar.gz
# cd cmake-2.8.7
# ./configure
# gmake

Tes cmake dengan command berikut

# cmake

Instalasi dan konfigurasi gammu

Instalasi perangkat keras

Sebelum melakukan konfigurasi, persiapkan terlebih dahulu modem GSM yang akan digunakan. Dalam kasus ini saya menggunakan modem GSM Wavecom fastrack di bawah.

http://www.satuportal.net/system/files/u349/Modem_Wavecom_Fastrack_1306B_Rs232_190410100430_ll.jpg.jpg

Kalau ingin bermain-main dengan 3G bisa pake wavecom supreme. Mungkin lain kali ngoprek2 dikit.

Karena koneksi menggunakan serial, maka konfigurasi gammu menggunakan tipe serial dengan model at.

Instalasi perangkat lunak gammu

Setelah environment selesai dipersiapkan, lanjut install gammu. Saya menggunakan source stable yang terbaru dari web gammu

# wget http://sourceforge.net/projects/gammu/files/gammu/1.31.0/gammu-1.31.0.tar.gz
# tar -xzvf gammu-1.31.0.tar.gz
# cd gammu-1.31.0
# ./configure
# make install

Jika tidak ada kesalahan, tes instasi dengan command :

# gammu

Jika terdapat kesalahan “gammu: error while loading shared libraries: libGammu.so.7: cannot open shared object file: No such file or directory” tinggal tambahkan libGammu di /usr/lib/

# ln -s /usr/local/lib/libGammu.so /usr/lib/libGammu.so.7
# ln -s /usr/local/lib/libgsmsd.so /usr/lib/libgsmsd.so.7

Konfigurasi gammurc

Konfigurasi gammu menggunakan gammurc. Untuk melakukan konfigurasi ini cukup mudah, tinggal masukan command :

# gammu-config

Konfigurasi seperti di bawah

│ P Port (/dev/ttyS0) │
│ C Connection (at115200) │
│ M Model (at) │
│ D Synchronize time (yes) │
│ F Log file (/var/log/gammu/gammurc) │
│ O Log format (textalldate) │
│ L Use locking () │
│ G Gammu localisation () │
│ H Help │
│ S Save

Buatlah file log :

# mkdir /var/log/gammu
# touch /var/log/gammu/gammurc

Tes konfigurasi :

# gammu --identify

Device : /dev/ttyS0
Manufacturer : Wavecom
Model : MULTIBAND 900E 1800 (MULTIBAND 900E 1800)
Firmware : 651b09gg.Q2406B 244 041410 13:45
IMEI : 351047880291824
SIM IMSI : 510080091331519

Jika keluar data di atas, maka konfigurasi berhasil.

Konfigurasi gammu-smsd

Daripada menggunakan gammurc, untuk mempermudah integrasi dengan aplikasi seperti web dan database, konfigurasi gammu-smsd lebih baik digunakan.

Buat file konfigurasi. Copy file konfigurasi minimal :

# cp /usr/src/gammu-1.31.0/docs/config/smsdrc /etc/gammu-smsdrc

Buat database sms, import database mysql kemudian konfigurasi gammu-smsdrc

# mysql -u root -p
> create database sms;
> \q

# nano /etc/gammu-smsdrc

[gammu]
device = /dev/ttyS0
model = at115200
connection = at

[smsd]
service = mysql
PIN = 1234
logfile = /var/log/gammu/smsdlog
debuglevel = 1
#runonreceive = /some/script
commtimeout = 30
sendtimeout = 30user = <user_database>
password = <password>
pc = localhost
database = sms

Import mysql :

# mysql -u root -p sms < /usr/src/gammu-1.31.0/docs/sql/mysql.sql

Jalankan daemon gammu-smsd dengan command :

# gammu-smsd --daemon
Log filename is "/var/log/gammu/smsdlog"

Cek log file :

# tail -f /var/log/gammu/smsdlog

Pastikan tidak ada error pada log tersebut.

Konfiguras kalkun sebagai web interface sms daemon

Salah satu kelebihan kalkun adalah menggunakan mysql yang dijalankan oleh daemon gammu-smsd.

Download kalkun dari http://sourceforge.net/projects/kalkun/files/kalkun/0.4/kalkun_0.4.tar.gz/download

Masukan ke web server apache di /var/www/html/sms

# mkdir /var/www/html/sms
# mv kalkun_0.4.tar.gz /var/www/html/sms
# tar -xzvf  kalkun_0.4.tar.gz
# chown -R apache.apache /var/www/html

Konfigurasi database kalkun :

# nano application/config/database.php

Setting database gammu

$db['default']['hostname'] = "localhost";
// MySQL
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "sms";
$db['default']['dbdriver'] = "mysql";

Buka web browser, kemudian ketik http://<ip_addres(hostname)_server>/sms

Lakukan konfigurasi dengan next->next

Setelah selesai, hapus / rename folder install pada root web nya.

# mv install install_bak

Ubah settingan sms daemon agar menjalankan script saat mendapatkan sms masuk.

# nano /etc/gammu-smsdrc

runonreceive = /var/www/html/sms/scripts/daemon.sh

Edit file daemon tersebut beserta daemon.php pada folder scripts

# cd /var/www/html/sms/scripts
# nano daemon.sh
DAEMON=/var/www/html/sms/scripts/daemon.php
# nano daemon.php
$url = "http://<IP_Address/Hostname>/sms";

Restart daemon gammu-smsd dengan kill PID gammu-smsd, kemudian jalankan kembali gammu-smsd –daemon (solusi sementara)

Masuk ke aplikasi dengan user kalkun dan password kalkun

Silakan setting2 sendiri saja :)

Belajar mencari tahu

Manusia memang serba ingin tahu. Hanya saja ada yang berhasil menjadi orang yang serba tau dan ada juga yang tak tahu apa-apa. Kalau ingin serba tahu, ya harus tahu bagaimana cara mencari tahu. Terkadang kita tersesat kalau sedang belajar karena tak mengerti apa yang harus dilakukan sebelum ini dan setelah itu. Tetapi kalau kita mengerti langkah-langkah yang terbaik untuk dilakukan pasti proses pencarian keingintahuan akan lebih mudah.

Jadi bagaimana sebenarnya untuk belajar mencari tahu? Mencari step-by-step yang harus diambil, atau dalam bahasa pemrograman itu segala sesuatu dimulai dengan

“Hello World!”

Kalau tak tahu, ya cari tahu. Kalau tak mengerti ya coba cari jalan termudah dalam memulai. Karena di dunia ini cuma ada orang cerdas otaknya, dan orang yang pandai dalam mencari tahu.

Kembali dulu ke mode sabar

Setelah kemarin berniat untuk posting yang agak teknis, ternyata susah juga buat menulis secara baik. Campur-campur gak jelas jadinya. Jadi yasudah lah sepertinya style buat blog ini agak bebas. Tempat curhat, merenung, maupun menulis hal yang teknis dan ilmiah.

Sepertinya akhir-akhir ini ada saja ujian yang mengharuskan saya untuk masuk ke mode sabar. Permasalahan TA yang belum beres karena ini itu, masalah server, masalah listrik, Hardisk atau apa lah. Terus sekarang harus kehilangan Nexus S (yang dipake TA juga) yang cuma 1 bulan kemarin beli nya hasil dari nabung-nabung kecil-kecilan gara-gara kecopetan saat berangkat jumatan ke mesjid salman. Untung nomornya bisa diganti ke kartu baru di grapari, jadi gak usah ganti nomor (ini yang paling penting).

Terus dari kemarin ampe sekarang harus merawat mamah yang lagi terbaring sakit karena   harus dioperasi jempol kaki gara-gara abses. Luka kecil sih, cuma akibat gula yang gak normal berdampak buruk ke luka nya. Alhasil harus dioperasi di boromeus. Selepas operasi pun ternyata tak beres begitu saja, efek samping dari operasinya malah membuat sakit nya seakan menjadi-jadi ke seluruh tubuh. Tapi kalau dibayangkan kemarin gak sampai ke bandung buat cek ke dokter dan operasi, ntah seterus nya bakalan kayak gimana itu kaki. Bahaya nya diabetes memang mengerikan.

Hm .. mungkin saat ini kurang tepat kalau saya harus memprioritaskan diri sendiri akibat masalah-masalah itu. TA bisa dikerjakan lain waktu, server bisa diurus kapan-kapan, HP bisa dibeli lagi, bisa nabung lagi, pekerjaan2 dan proyek bisa ditunda dulu. Semua itu serasa tak ada artinya, mengurus mamah yang terbaring sakit seperti ini adalah kewajiban yang sangat  besar. Saat 1,5 tahun lalu saya kena DB dan Tipes sekaligus, cuma mamah yang ngurus di Rumah Sakit di Garut, sekarang saatnya saya yang harus berbakti untuk mengurusnya di Rumah Sakit di Bandung ini.

Kembali dulu ke mode sabar. Semoga yang maling tu HP dicerahkan hatinya sehingga syukur2 gak ada hujan gak ada angin ngebalikin lagi hp nya. Kalau enggak pun semoga barang haram itu menjadi manfaat buat orang lain. Tapi yang paling penting semoga mamah lekas sembuh dan tak harus mendapatkan tindakan dan perawatan macem-macem. Amin.

Load balancing dengan teknik interface bonding pada CentOS

Pada sistem operasi Linux turunan dari Red Hat Enterprise Linux (RHEL), multiple network interface dapat digabungkan ke dalam satu single interface menggunakan modul kernel bonding dan network interface khusus yang dinamakan dengan channel bonding interface. Dengan hal ini, kita dapat mengagregat beberapa port NIC ke dalam satu group interface yang dinamakan dengan bond. Dengan teknik bonding juga mengizinkan kita untuk membuat multi-gigabit pipes untuk mentransportkan trafik pada area traffic yang lebih tinggi di dalam jaringan kita. Contohnya, kita dapat mengagregat 3 Mb port ke dalam 3 Mb trunk port. Dengan hal tersebut, kita memiliki satu interface dengan kecepatan 3 MB.

Kita dapat menggunakan teknik ini saat kita membutuhkan link yang redundant, fault tolerance atau load balancing network. Hal ini merupakan cara yang paling baik untuk mendapatkan segmen jaringan dengan availability yang tinggi. Kondisi yang paling baik untuk menggunakan teknik ini adalah dengan implementasi pada koneksi dengan suport 802.1q (VLAN).

Diverse mode pada bonding

mode = 1 (Active Backup), Hanya satu slave pada bond yang aktif. Device slave yang lain akan aktif jika slave utama fail (mati). Pada mode ini, MAC address aktif untuk satu port interface bond.

mode = 2 (balance-xor), Mode ini memilih slave dengan korespondensi MAC address yang sesuai dengan yang dituju. Mode ini memberikan load balancing dan Fault tolerance.

mode = 3 (broadcast), Transmit ke seluruh interface slave. Mode ini untuk memberikan fault tolerance.

mode = 4 (802.3ad), Dynamic Link Aggregation. Membuat group agregat untuk menshare kecepatan yang sama dan seting duplex. Mengutilisasi semua slave pada aktif aggregator menurut spesifikasi 802.3ad.

mode = 5 (balance-tlb), Adaptive Transmit Load Balancing. Channel bonding yang tidak membutuhkan support switch yang khusus. Outgoing traffic didistribusikan berdasarkan current load (Perhitungan relatif terhadap kecepatan) pada setiap slave. Incoming traffic diterima oleh current slave. Jika slave tersebut gagal menerima (fail), slave yang lain akan men take over MAC address dari current  slave yang menerima tersebut.

mode = 6 (balance-alb), Adaptive Load Balancing. Termasuk balance-tlb ditambah dengan loadbalancing (rlb) untuk trafik IPv4, serta tidak membutuhkan suport switch khusus.

Load balancing dengan teknik interface bonding pada sistem operasi CentOS 6

Pada tutorial ini, diasumsikan RHEL6 kita telah terkoneksi dengan dua buah interface (NIC) dalam satu jaringan atau satu VLAN dengan nama interface eth0 dan eth1 dengan network 192.168.1.0/24 dan gateway 192.168.1.1 serta broadcast 192.168.255.255. Pada konfigurasi di bawah, dilakukan bonding dengan mode = 5 (balance-tlb)

Buatlah file /etc/modprobe.d/bonding.conf

# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bond0 miimon=80 mode=5

Pada /etc/sysconfig/network-scripts/ buatlah file dengan nama ifcfg-bond0 dengan konfigurasi sebagai berikut :

DEVICE=bond0
IPADDR=192.168.1.5
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

Masih pada folder yang sama, ubah file ifcfg-eth0 menjadi :

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes

Ubah pula ifcfg-eth1 menjadi :

DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
SLAVE=yes

Restart konfigurasi network kita dengan command :

# service network restart

Kemudian cek apakah konfigurasi kita telah berhasil dengan perintah :

# ifconfig

Akan terdapat tiga buah interface dengan nama bond0 (dengan spesifikasi ip address dan network segmen nya) serta eth0 dan eth1 yang bertindak sebagai slave.

Jika berhasil, maka trunk kita telah berjalan dengan baik :)