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... :)