Tuesday, May 24, 2016

Linux Performance Observability Tools

Berikut tolls pada linux yang dapat digunakan untuk check Performance Linux.
Ada top untuk check aplikasi yang sedang running dan berapa memory yang terpakai untuk menjalankan aplikasi tersebut.
netstat : untuk check networking jadi bisa tau aplikasi yang sedang LISTEN itu di port berapa dan akses ke port tersebut all akses atau hanya IP tertentu saja dapat di check menggunakan tools tersebut.
Dan masih banyak lagi tools yang lain seperti pada gambar berikut.


Masing-masing tools tinngal di tuliskan di commandline/console linux,
Contoh ; "top" tanpa tanda kutip lalu enter.

Thursday, May 19, 2016

Mongo DistributedClockSkewed clock skew of the cluster

Asyiknya programer tuh gini ,
Lagi mulai kenalan sama yang namanya mongo cluster lalu dapat error kayak gini :

2016-05-19T14:54:59.755+0700 E -        [mongosMain] error upgrading config database to v6 :: caused by :: DistributedClockSkewed clock skew of the cluster edu-mc1:27019,edu-mc2:27019,edu-mc3:27019 is too far out of bounds to allow distributed locking.


Ternyata solusinya super simple running command berikut dimasing masing server :

ntpdate ntp.ubuntu.com

Command itu digunakan untuk mensincronisasi waktu di masing2 server agar sama.

;-)

Thursday, March 10, 2016

Protocol POP 3 Client

Protocol POP 3 adalah protocol yang digunakan untuk komunikasi antara mail client dengan mail server, protocol ini digunakan untuk mendownload email baru yang ada di server.
Berikut beberapa Command dan fungsingya yang digunakan pada protocol POP 3:

1. USER command ini digunakan untuk mengirim data username yang digunakan authentikasi saat akan login ke mail server, command ini diikuti dengan nama user yang akan login 
etc : USER <spasi> Fahrudin

2. PASS command ini digunakan untuk mengirimkan Password user untuk Login. etc : PASS 12344

3. LIST command ini digunakan untuk menampilkan List email yang terdapat di server. Biasanya command ini dapat dieksekusi jika Login sudah sukses.

4. RETR command ini digunakan untuk mendownload message email yang ada di server

5. UIDL command ini akan digunakan oleh mail client( Thunderbird , outlook dll ) sebagi Unik ID yang akan disimpan lalu untuk membandingkan dengan UID yang ada di server apakah ada Email baru atau tidak, Jika ditemukan UID baru di mail server maka mail client akan mengirimkan command berikutnya untuk mendownload email baru yang ada diserver.

Demikian beberapa command yang digunakan dalam protocol pop3. Command-command tersebut dapat digunakan melalui simple konek melalui telnet console.

Feel Free untuk diskusi ;-)

Thursday, January 28, 2016

Menampilkan Nama File Dan Line Source Code Golang

Untuk menampilkan nama file dan baris source code ke berapa dalam module source code akan sangat membantu dalam proses debugging.
Pada bahasa pemrogaman golang sudah disediakan module untuk menampilkan log yang dapat kita gunakan sesuai dengan kebutuhan.
Contoh untuk menampilkan log adalah sebagai berikut:

log.SetFlags(log.Lshortfile)

Sintaks diatas dapat menampilkan nama file dan baris source code dimana function log.Printf(param, param2) di panggil.

A. PROBLEM :
     Menampilkan nama file dan baris source code dalam bahasa pemrograman GOLANG

B. SOLVING :

  1.  Searching google dengan keyword log.Lshortfile
  2.  Lihat source code klik log.go (Ini adalah source code / library bawaan dari golang)
  3.  Cari sintax yang dapat menampilkan nama file dan baris source code.
  4.  Sintak dapat dilihat pada baris 153 berikut : _, file, line, ok = runtime.Caller(calldepth)  sintaks ini dapat menampilkan nama file, baris souruce code dimana function dipanggil/di eksekusi.
Selesai ... :-)

Monday, January 18, 2016

Solving problem nginx tidak bisa load module extension php

Solving problem nginx tidak bisa load module extension php
tambahkan script berikut di /etc/nginx/sites-available/"Nama file Config masing2"

  location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_pass localhost:9000;
  }

Pastikan php5-fpm sudah running.
Setelah ditambahkan script tersebut restart atau reload nginx dengan comand berikut:

$ service nginx restart --> Untuk restart

Atau

$ service nginx reload --> untuk mereload configurasi yang baru ditambahkan

Selesai extension .php sudah dapat di buka.

Referensi :
http://nginx.org/en/docs/beginners_guide.html

Fixing Error Start Mongodb

Fixing error start mongodb dengan error berikut :
Error ini bisa dilihat di log error file
more /data/mongo/log/mongod.log

2016-01-18T08:23:16.158+0700 I ACCESS   Initialized External Auth Session
2016-01-18T08:23:16.174+0700 E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted
2016-01-18T08:23:16.174+0700 I -        [initandlisten] Fatal Assertion 28578

cara 1:
$ cd /tmp/
$ chown mongod:mongod mongodb-27017.sock  --> Change owner dari root ke mongod
$ service mongod start
$ service mongod status

Cara 2 :
$ cd /tmp/
$ del mongodb-27017.sock  --> Delete file
$ service mongod start
$ service mongod status

Selesai mongodb sudah running

Thursday, January 7, 2016

LXCFS Linux Ubuntu Dan Config Container LXC

LXCFS Linux Ubuntu

LXCFS adalah third party dari LXC yang berfungsi untuk menampilkan spek container sesuai dengan config( Jumlah CPU, Limit memory dll ) sehingga tidak menampilkan spek host server.

Berikut Step by step untuk install lxcfs dan config pada lxc.

1. Install lxcfs
A. sudo apt-get install libfuse-dev
B. sudo apt-get install lxcfs

Install manual via source:
Download sourcenya via github berikut :
git clone git://github.com/lxc/lxcfs
cd lxcfs
./bootstrap.sh
./configure
make

Bisa juga download versi tarballs
https://linuxcontainers.org/lxcfs/downloads/
Silakan pilih versi terbaru.

Proses instalasi sudah selesai pastikan installnya berhasil dengan eksekusi command : dpkg -l lxcfs

2. Config container

Setelah proses install lxcfs selesai yang harus dilakukan berikutnya adalah configure di sisi container yang sudah kita create:
Tambahkan setting berikut pada file config container :

lxc.mount.auto = cgroup:mixed
lxc.autodev = 1
lxc.kmsg = 0
lxc.include = /usr/share/lxc/config/common.conf.d/00-lxcfs.conf

Lokasi file : /var/lib/lxc/nama container

Setelah ditambahkan restart kembali container yang dilakukan perubahan config.

Configurasi selesai silakan dilakukan pengecekan pada container yang sudah di config.

Berikut step untuk check apakah container sudah menampilkan sesuai dengan config yang sudah dibuat:
1. lxc-attach -n fr2
2. running comand htop
Akan menampilkan berikut :



Pada gambar terlihat container tersebut menggunakan cpus 1 sesuai dengan config yang sudah diset.

lxc.cgroup.cpuset.cpus = 1 --> Config pada container

Referensi :
https://github.com/lxc/lxcfs
https://linuxcontainers.org/lxcfs/getting-started/

Tuesday, January 5, 2016

Konfigurasi Network LXC Container

Configurasi network LXC :

1. buat bridge di interface

location file : /etc/network/interfaces

Configur kurang lebih seperti ini
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
#dns-nameservers 192.168.1.101

auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
        address 10.11.21.149/24
        gateway 10.11.21.1
        dns-nameservers 192.168.1.101
        #address 203.130.242.162/29
        #gateway 203.130.242.16

auto br1
iface br1 inet static
        address 10.11.21.113
        network 10.11.21.0
        netmask 255.255.255.0
        broadcast 10.11.21.255
        gateway 10.11.21.1
        bridge_ports eth0
        #bridge_fd 9
        #bridge_hello 2
       # bridge_maxage 12
       # bridge_stp off
        dns-nameservers 192.168.1.101
Ket :      
Address di br1 cari ip yang masih kosong/belum digunakan

2. Running Config interfaces yang baru dibuat dengan command : ifup br1
3. Config lxc :
Locate : /var/lib/lxc/nama container/config

Isi config Container :

# Template used to create this container: /usr/share/lxc/templates/lxc-ubuntu
# Parameters passed to the template:
# For additional config options, please look at lxc.container.conf(5)

# Common configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf

# Container specific configuration
lxc.rootfs = /var/lib/lxc/fr2/rootfs
lxc.mount = /var/lib/lxc/fr2/fstab
lxc.utsname = fr2
lxc.arch = amd64

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br1
lxc.network.hwaddr = 00:16:3e:c4:56:fa

lxc.network.ipv4 = 10.11.21.117/32
lxc.network.ipv4.gateway = 10.0.0.1

4. restart lxc container command :
  --> Stop lxc-stop -n fr2
  --> Start lxc-start -n fr2

5. Check ping  10.11.21.117 dari pc lain

6. Selesai lxc container dapat diakses dari pc lain

NB :
Kalau terjadi kesalahan pembuatan bridge dapat dilakukan delete bridge dengan command berikut :
 # ip link set br100 down
 # brctl delbr br100

Capture akan segera menyusul... :)