Instalasi Java Compiler, Apache Ant, Apache Tomcat, MySQL

| Posted in Apache, GPS, Java, Linux Server, Project

- Implementasi Sistem GPS(Global Positioning System) Tracking berbasis Linux. Tutorial ini dibuat dalam 2 artikel, yang pertama :

1. Instalasi Java Compiler, Apache Ant, Apache Tomcat, MySQL.
2. Instalasi OpenGTS (Open Source GPS Tracking System).

Proyek ini saya kerjakan untuk sebuah perusahaan rental mobil untuk memonitor status semua kendaraannya.  Maklum menjelang lebaran banyak pinjaman mobil kata yang punya.  Ownernya  memang senang IT dan lebih suka memiliki sistem tracking sendiri daripada menyewa jasa perusahaan yang menyewakan perangkat sudah jadi. Disamping untuk memonitor lokasi mobil2 nya, dia juga mau pasang alat GPS pada tas anaknya yang masih sekolah, sehingga dapat mengetahui pergerakan anaknya. Orang tua yang baik nih.  Pasca instalasi pada artikel 1 dan artikel 2 aku mentraining staffnya untuk bisa memasang perangkat GPS pada mobil dan administrasi sistem open GTS ini.

Instalasi pada Artikel pertama ini membutuhkan software :

  • Sistem operasi menggunakan Debian Lenny(5.0.2),

  • Java Compiler Sun’s Java JDK,
    OpenJDK Server VM (build 1.6.0_0-b11, mixed mode).

  • Apache Ant version 1.7.0

  • Apache Tomcat 5.5

  • JAVA MAIL API

  • MySQL 5, MySQL-Connector-Java

  • OpenGTS 2.1.3 (Dijabarkan lebih lanjut pada artikel kedua, implementasi/koneksi device perangkat GPS pada mobil rental ke server GPS Tracking).

Kebutuhan lain pada artikel 1 :  Hardware server IBM, IP Publik dengan internet dedicated, Domain perusahaan. Instalasi live. Pada artikel kedua membutuhkan perangkat GPS dan akan dijelaskan lebih lanjut pada artikel ke 2.

Server IBM yang digunakan sebagai Server GPS Tracking sudah diinstall sistem operasi Debian Lenny 5.0.2.

rentcar:/home/gtoms# uname -a
Linux rentcar 2.6.26-2-686 #1 SMP Sun Jul 26 21:25:33 UTC 2009 i686 GNU/Linux
rentcar:/home/gtoms# cat /etc/debian_version
5.0.2

Selanjutnya memulai Instalasi Java Compiler, Apache Ant, Apache Tomcat, MySQL, MySQL Conector Java, Java Mail API yang berfungsi sebagai rumah/pendukung bisa berjalannya OpenGTS 2.1.3

Read the rest of this entry »

membuat mysql-cluster

| Posted in Clustering, Linux Server, MySQL

Pekerjaan ini diterapkan di kantorku yang memiliki server Mysql untuk dipakai sehari-hari sebagai operasional. Dengan fitur Mysql Cluster dapat menggabungkan database open source  dengan fault tolerant asitektur “shared nothing“,  yang memungkinkan kantor untuk menggunakan aplikasi database real-time dan mission-critical yang mencapai ketersediaan 99,999 persen (“five nine“). Dengan alasan inilah dan menghindari downtime,  maka Boss operasional ISP kantor minta dibuatkan sistem mysql cluster.  Implementasi mysql-cluster tidak lah sulit, dalam implementasi ini dilakukan tahapan :

– Konfigurasi Mysql-cluster di server Mysql utama(/etc/mysql/my.cnf dan convert engine MYISAM ke NDBCLUSTER) – Instalasi Mysql dan konfigurasi Mysql-cluster di server lain(anggaplah replika mysql server utama atau mysql tambahan) (/etc/mysql/my.cnf dan hasil dumping mysql dengan engine NDBCLUSTER) – Instalasi Mysql dan Management (MGM) Node & MySQL Server pada server lain. (/etc/mysql/ndb_mgm.cnf)

Jadi ada 3 Server dengan fungsi dan software yang dipakai :

-1 server Mysql utama sebagai Node A untuk mysql cluster

-1 server Mysql tambahan sebagai Node B untuk mysql cluster

-1 server Mysql untuk Management (MGM)sebagai NDB MGM untuk mysql cluster

Total ada 3 server dengan sistem operasi Linux Debian Lenny 2.6.26-2-686 dan  Mysql 5.0.51a-24+lenny1 (Debian).

MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License).

MySQL Cluster didesain untuk mengatasi single point of failure, yaitu bagian dari suatu sistem, yang
bilamana sistem tersebut mengalami kerusakan maka seluruh sistem akan berhenti bekerja. Oleh karena
itu maka setiap komponen diharapkan memiliki memory dan disk sendiri / terpisah, dan menggunakan
mekanisme shared storage,  seperti network shares dan network filesystems.

MySQL Cluster sudah terintegrasi dengan standar MySQL server dengan sebuah  clustered storage engine yang disebut NDB. MySQL Cluster terdiri dari sekumpulan komputer yang masing­-masing berjalan satu atau lebih proses, yang terdiri dari SQL Server, data node, dan management node.

Data Node merupakan node utama pada MySQL Cluster. Data Node berfungsi :
-Storage and management of both in ­memory and disk ­based data
-“Transactions and data retrieval
-“Automatic and user defined partitioning of data
-“Synchronous replication of data between data nodes
-“Transactions and data retrieval
-“Fail over
-“Resynchronization after failure

MySQL Node berfungsi sebagai pintu akses untuk masuk ke dalam node­ node data yang tercluster.

Management Node digunakan  untuk  mengatur node­-node  yang  terdapat  pada MySQL  Cluster,  melakukan  konfigurasi data, menjalankan dan memberhentikan node, melakukan backup dan lain sebagainya.  Semua  program  ini  berkerjasama  membentuk  sebuah  MySQL  Cluster.  Ketika  data  disimpan  pada NDB Cluster storage angine, maka tabel­-tabel akan disimpan pada data node. Tabel­-tabel tersebut akan diakses secara langsung oleh MySQL Server pada sebuah cluster.

Berikut proses instalasi dan konfigurasi yang berhasil saya copy paste dari konsol linux :

Read the rest of this entry »

repair table mysql

| Posted in MySQL

Menganalisa masalah pada sebuah system yang sedang running(produksi) haruslah cepat dan tepat untuk menghindari downtime yang lama. Salah satu server yang saya handle mengalami masalah, kebetulan saat terjadi masalah saya tidak berada di office sehingga trouble shoot yang bisa dilakukan secara remote. Rekan di bagian Network Operation Centre(NOC) melaporkan kejadian ini via telepon bahwa service pop3 ini mengalami masalah di kantor dan sejumlah client, server email pop3 yang menggunakan operating system linux sangat diperlukan untuk kebutuhan mail hosting client kantorku.

Langkah menghadapi kasus ini adalah melihat log error yang terjadi baik pada mail client dan log error pada mailserver.

Saya mencoba menggunakan mail client untuk test tarik email dan didapat error sebagai berikut :

There was a problem logging onto your mail server. Your Password was rejected. Account: ‘mail.namadomain.net’, Server: ‘mail.namadomain.net’, Protocol: POP3, Server Response: ‘vmysql: error creating table ‘vlog’: Table ‘vlog’ already exists’, Port: 110, Secure(SSL): No, Server Error: 0×800CCC90, Error Number: 0×800CCC92

Dari log error diatas didapat letak permasalahan ada pada table vlog pada database vpopmail yang menggunakan Mysql.

Untuk lebih menelusuri apa yang terjadi pada table vlog, saya remote ke server pop3 yang berada di Gedung Cyber Lt IV, dan melihat log

# tail -f /var/log/mail.log

............snip….......................
May 21 11:05:55 mailserver vpopmail[5112]: vchkpw-pop3: password fail renata@namadomain.net:202.51.xxx.xxx
May 21 11:05:55 mailserver mysqld[5030]: 080521 11:05:55 [ERROR] /usr/sbin/mysqld: Table ‘./vpopmail/vlog’ is marked as crashed and should be repaired
...........snip…...................

Dari log aiats saya langsung dapat mengetahui bahwa table vlog yang terdapat didalam table vpopmail mengalami crash dan harus direpair.

Langkah selanjutnya adalah login ke mysql
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 445
Server version: 5.0.32-Debian_7etch5 Debian etch distribution

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.

mysql> use vpopmail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+——————————+
| Tables_in_vpopmail |
+——————————+
| dir_control |
| domain_alias |
| lastauth |
| valias |
| vlog |
| vpopmail |
+——————————+
6 rows in set (0.00 sec)

mysql> REPAIR TABLE vlog;
+———————-+————+—————+————————————————————————+
| Table | Op | Msg_type | Msg_text |
+———————-+————+—————+————————————————————————+
| vpopmail.vlog | repair | warning | Number of rows changed from 1263639 to 1263640 |
| vpopmail.vlog | repair | status | OK |
+———————-+————+—————+————————————————————————+
2 rows in set (49.13 sec)

done

Kunci penyelesaian masalah ini ada pada baris command REPAIR TABLE vlog;

Jika proses repair table vlog tersebut gagal, maka siapkan solusi lain yaitu dengan menimpa/replace table vlog yang rusak dengan table vlog pada server backup.

Kemudian cek log kembali di server dan aku coba login menggunakan mail client kembali, dan berhasil tanpa muncul kembali log error sebelumnya, lalu saya telepon ke bagian NOC/CRC kantor untuk memberitahukan trouble shoot sudah selesai. Service POP3 sudah up kembali.

migrasi server radius

| Posted in Radius

Server radius kantor yang lama sering bermasalah sehingga diputuskan migrasi ke server baru dengan spek yang lebih baik untuk menjalankan fungsi radiator, mysql didalam sistem operasi Linux yang menggunakan distribusi ‘mbah’ Debian.  Semua proses dimulai dari instalasi sistem operasi Linux Debian 4 Etch, Radiator-3.14, Mysql 5, memindahkan data mysql dan konfigurasi config Radiator dari server lama ke server baru.

Konsep kerja radius sebagai berikut :

RADIUS (Remote Authentication Dial-In User Service), adalah suatu metode standar (protokol) yang mengatur komunikasi antara NAS dengan AAA server. Dalam hal ini server AAA yang digunakan dapat juga disebut sebagai server RADIUS, dan paket-paket data yang terlibat dalam komunikasi antara keduanya disebut sebagai paket RADIUS.

Ketika NAS menerima permintaan koneksi dari user, NAS akan mengirimkan informasi yang diperolehnya dari user ke server RADIUS. Berdasarkan informasi tersebut, server RADIUS akan mencari dan mencocokkan informasi mengenai user tersebut pada databasenya, baik internal, eksternal, maupun server RADIUS lain. Jika terdapat informasi yang cocok, server RADIUS akan mengizinkan user tersebut untuk menggunakan jaringan. Jika tidak, maka user tersebut akan ditolak. Berdasarkan informasi ini, NAS memutuskan apakah melanjutkan atau memutuskan koneksi dengan user. Selanjutnya, NAS mengirimkan data ke server RADIUS untuk mencatat semua kegiatan yang dilakukan user dalam jaringan.

Server RADIUS dan NAS berkomunikasi melalui paket-paket RADIUS. Paket-paket RADIUS ini memiliki format sesuai dengan yang ditentukan oleh IETF melalui dokumen RFC 2865 mengenai RADIUS, dan RFC 2866 mengenai RADIUS accounting. Paket-paket RADIUS dikirimkan oleh NAS dan server RADIUS berdasarkan pola request/response : NAS mengirimkan request dan menerima response dari server RADIUS. Jika NAS tidak menerima response dari server atas suatu request, NAS dapat mengirimkan kembali paket request secara periodik sampai dicapai suatu masa timeout tertentu, dimana NAS tidak lagi mengirimkan request kepada server, dan menyatakan bahwa server sedang down/tidak aktif. Setiap paket memiliki fungsi tersendiri, apakah untuk authentication atau untuk accounting. Setiap paket RADIUS dapat menyertakan nilai-nilai tertentu yang disebut atribut (attributes). Atribut-atribut ini bergantung pada jenis paket (authentication atau accounting), dan jenis NAS yang digunakan. Informasi detail mengenai format paket dan nilai-nilai dari masing-masing field dalam paket RADIUS dapat dilihat pada RFC 2865 dan RFC 2866.

Fungsi authentication dilakukan melalui field-field pada paket access-request. Fungsi authorization dilakukan melalui atribut-atribut pada paket access-accept. Fungsi accounting dilakukan melalui atribut-atribut pada paket-paket accounting (paket start, stop, on, off, dll).

Keamanan pada komunikasi antara NAS dengan server RADIUS dijamin dengan digunakannya konsep shared secret. Shared secret merupakan rangkaian karakter alfanumerik unik yang hanya diketahui oleh server RADIUS dan NAS, dan tidak pernah dikirimkan ke jaringan. Shared secret ini digunakan untuk mengenkripsi informasi-informasi kritis seperti user password. Enkripsi dilakukan dengan cara melewatkan shared secret yang diikuti dengan request authenticator (field pada paket access request dari NAS yang menandakan bahwa paket tersebut merupakan paket access request) pada algoritma MD5 satu arah, untuk membuat rangkaian karakter sepanjang 16 oktet, yang kemudian di-XOR-kan dengan password yang dimasukkan oleh user. Hasil dari operasi ini ditempatkan pada atribut User-Password pada paket access request. Karena shared secret ini hanya diketahui oleh NAS dan server RADIUS, dan tidak pernah dikirimkan ke jaringan, maka akan sangat sulit untuk mengambil informasi user-password dari paket access request tersebut.

NAS dan server RADIUS terhubung melalui jaringan TCP/IP. Protokol yang digunakan adalah UDP (User Datagram Protocol), dan menggunakan port 1812 untuk authentication, dan port 1813 untuk accounting.

Selengkapnya (Instalasi & Migrasi)

mysql ERROR 2002

| Posted in MySQL

Server colo temenku yang di taruh di Dhecyber bermasalah, server dengan sistem operasi fedora linux tersebut berisi cpanel dan menghost ratusan email kantor dan websitenya. Temanku minta tolong agar aku mengecek apa permasalahannya dan minta di solving kalau bisa. Aku remote ke servernya dan mencoba cek satu persatu setiap aktifitas yang terjadi dan coba eliminasi satu persatu problem yang terjadi.mysql di cpanelnya tidak jalan dan jika menjalankan phpMyAdmin melalui cpanelnya lewat browser keluar pesan error : Read the rest of this entry »