Langsung ke konten utama

Postingan

Menampilkan postingan dengan label Server

Manajemen Server ELK (Elasticsearch, Logstash dan Kibana)

Pernah saya punya server khusus untuk elasticsearch, logstash sama kibana, untuk logging aktifitas web. Spesifikasi server ELK yang saya punya, tergolong kecil, dengan RAM 2GB dan SSD 40GB, musti berhati-hati, telat sebentar aja bisa kepenuhan :D Lantas bagaimana cara berhati-hati versi saya? Backup setiap hari dan jangan sampai backup yang lama memenuhi space server. Backup lama dipindah keluar server dalam kondisi siap dibaca oleh kibana. Manajemen alokasi memory untuk elasticsearch dan kibana, logstash kita abaikan saja karena memory usage-nya tidak besar-besar amat. Cek service yang berjalan setiap menit, karena setiap kali kehabisan memory akna ada saja service yang gagal berjalan ulang sehingga meninggalkan service dalam keadaan mati. Sementara itu dulu sih yang saya lakukan, jika terjadi masalah dikemudian hari dan ketemu solusinmya, akan segera saya update post ini.

Install Docker

Ada dua macam docker, yaitu Docker CE ( Community Edition ) untuk team kecil dan eksperimen, sedangkan Docker EE ( Enterprise Edition ) untuk production  dalam skala yang cukup besar. Perbedaan docker-ce dan docker-ee secara lengkap bisa diakses halaman berikut  https://docs.docker.com/engine/installation/ Sebelum memulai installasi docker, dilihat dahulu system requirement- nya pada link diatas, disini saya menggunakan OS Ubuntu 16.04 64bit dan Docker CE. Uninstall jika (atau tidak yakin) ada docker yang lama $ sudo apt-get remove docker docker-engine docker.io Update repositori untuk menginstall beberapa paket $ sudo apt-get update Install beberapa paket yang dibutuhkan $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common Tambahkan GPG Docker $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - Tambahkan repositori Docker $ sudo add-apt-repository "deb [arch=amd64] https://download.dock...

Perintah Dasar Docker ( Docker Base Command )

Perintah dasar docker dapat dilihat pada opsi --help $ docker --help attach memulai docker yang running dengan masuk ke proses yang sedang berjalan build membuat sebuah image dari sebuah Dockerfile commit membuat sebuah image baru dari perubahan yang terjadi pada kontainer (versioning) cp ??????????? create membuat kontainer baru diff events exec export history menampilkan history sebuah image images list image import info inspect kill load login logout logs pause port p...

Docker : Konsep Dasar Docker

Docker adalah VirtualMachine. Pernah kenalan sama VirtualBox? VMWare? QEMU? KVM? Hampir miriplah. Hanya saja, docker ini superlight (sangat ringan) dengan fitur setting yang terlalu sederhana. Tapi, karena pengembangnya opensource , cepet update nih, sehingga tidak ketinggalan fitur sama VM yang lain. 

Nginx:LoadBalance(r)(ing) menggunakan Nginx

Kalo saya sih pake VirtualBox, buat 3 buah VM yangmana untuk LB yang akan dikasih nginx sebagai LoadBalancer (192.168.24.2), WWW1 (192.168.24.3) sebagai web server pertama dan WWW2 (192.168.24.4) sebagai web server kedua. Apa yang perlu diinstall? Nginx di ketiga VM tersebut namun tetep, dengan konfigurasi yang berbeda. $ sudo apt-get install nginx Berikut konfigurasi untuk loadbalancer, buat baru aja di /etc/nginx/conf.d/loadbalancer.conf upstream myloadbalance {     server 192.168.24.3;     server 192.168.24.4;   } server {     listen 80 default_server;     listen [::]:80 default_server ipv6only=on;     server_name www.mydom.ain;     location / {           proxy_pass http://myloadbalance;     } } Dengan sedikit perubahan pada /etc/nginx/sites-available/default yaitu kasih komen pada root /usr/share/nginx/html; dan index index.html index...

Migrasi (pindah) server gitlab

Server gitlab yang lama mulai capek, tapi yang pasti ada PC nganggur dengan spek bukan abal-abal :D takut kalau PC lama 'ujug-ujug' rusak dan nggak ada backup-an, udah gitu ntar programmernya ngeluh-ngeluh, kan tai tuh. Okay, diawali install Debian Jessie. Karena nggak ada PC lain, kasih aja DE ntar juga bisa diuninstall. Jangan lupa reponya diganti ke lokal aja, ke kambing ui atau repo ugm, misalnya dan kasih ssh buat ngremote PC lama. Lanjuttt..... Download sekaligus install gitlab. Tuju alamat berikut https://about.gitlab.com/downloads/ pilih debian 8 dan ntar akan ada langkah installnya. $ sudo apt-get install curl openssh-server ca-certificates postfix $ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash $ sudo apt-get install gitlab-ce atau kalau mau install manual dengan VERSI yang dikehendaki, akses alamat https://packages.gitlab.com/gitlab/gitlab-ce/ untuk download package-nya, ada .deb buat ubuntu dan debian, janga...

Siege : An HTTP/HTTPS stress tester

INTRODUCTION        Siege  is  a  multi-threaded http load testing and benchmarking utility.        It was designed to let web developers measure the performance  of  their        code  under  duress.   It  allows one to hit a web server with a config‐        urable number of concurrent simulated users.  Those users place the web‐        server  "under siege."  Performance measures include elapsed time, total        data transferred,  server  response  time,  its  transaction  rate,  its        throughput,  its  concurrency  and  the  number of times it returned OK.        These measures are quantified and reported  at  the  end  of  each  run.        T...

Iptables-persistent

Pakai iptables-persistent buat dijadikan firewall, jadi bisa membatasi port mana yang dibuka, atau jalur koneksi sekalian type-nya yang mau ditutup. installnya sudo apt-get install iptables-persistent cara nambahinnya tinggal ngetik rules-nya, misal iptables -A eth0 reject dan lain-lain. Berikut command iptables : iptables -L : Melihat rule dengan tampilan sederhana bebentuk tabel iptables -S : Melihat rule dengan tampilan lengkap berbentuk baris iptables -F : Menghapus semua rule iptables

Apache : pass HTTP_AUTH

Awalnya saya kasih RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] di .httaccess tapi kayaknya untuk performa, kurang tepat deh... kemudian saya kasihkan script tersebut ke apache.conf ternyata ndak bisa jalan. Saya ganti pake script SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 di <Virtualhost>.

sed (stream editor)

Beberapa cara penggunaan sed. $ cat port.html 8765 nmap example.com traceroute example.com echo "finish" Menghapus 1 baris sesudah pattern. sed -i "/8765/{n;d}" port.html $ cat port.html 8765 traceroute example.com echo "finish" Menghapus 2 baris sesudah pattern. sed -i "/8765/{n;d;d}" port.html $ cat port.html 8765 echo "finish" Menghapus 3 baris sesudah pattern. sed -i "/8765/{n;d;d;d}" port.html $ cat port.html 8765 Menambahkan baris sesudah pattern sed -i "/8765.*/a ping example.com" port.html $ cat port.html 8765 ping example.com nmap example.com traceroute example.com echo "finish"

Membuat init

Init, konfigurasi yang dijalankan ketika kondisi tertentu. Misalnya ketika server tiap kali hidup. $ cd /etc/init $ sudo nano elasticsearch.conf Isinya kira-kira seperti ini : start on started networking stop on runlevel [!2345] env APPUSER="mentul" env APPDIR="/opt/elasticsearch-1.7.2/bin/" env APPBIN="elasticsearch" env APPCONF="/opt/elasticsearch-1.7.2/config/elasticsearch.yml" respawn exec sudo -u $APPUSER $APPDIR/$APPBIN $APPCONF $ sudo nano logstash.conf start on started networking stop on runlevel [!2345] env APPUSER="elog" env APPDIR="/opt/logstash-1.5.4/bin/" env APPBIN="logstash" respawn exec sudo -u $APPUSER $APPDIR/$APPBIN agent -f /opt/logstash-1.5.4/logstash.conf $ sudo nano kibana.conf start on started networking stop on runlevel [!2345] respawn exec sudo -u gembos /opt/kibana-4.1.2-linux-x64/bin/kibana /opt/kibana-4.1.2-linux-x64/config/kibana.yml Save dan coba direboot servernya

Install dan Upgrade GitLab

Dulu udah pernah install GitLab versi 7.9.4, perkembangan yang cukup bagus kala itu hingga sekitar 8 bulan kemudian GitLab sudah mencapai versi 8.0.2 dan saya masih menggunakan versi 7. Baiklah, akan saya update. Baca, baca, baca, teranyata bisa di update (okay) dan akan mudah jika versi 7.10 yang terinstall, tinggal jalankan command dan selesai, tapi punya saya? Ini versi 7.9 dan ya memang kudu install ulang lagi dari awal. Baiklah, ini cara saya install GitLab 7.9.4 dulu, 1. Download package-nya dengan ekstensi .deb, Gitlab perlu OS dengan arsitektur 64bit, kalau 32bit mending diinstall ulang dulu deh, atau mau pake VM? It's your need. 2. Kasih permission exec (chmod +x gitlab_7.9.4_amd64.deb) 3. Install.... (dpkg -i gitlab_7.9.4_amd64.deb) 4. Selesai. (umm...minta java gak yak? Lupah) ====================================== upgrade gitlab 7.9.4 ke 8.0.2 sudo gitlab-ctl stop unicorn sudo gitlab-ctl stop sidekiq sudo gitlab-ctl stop nginx sudo ...

Resume SCP atau rsync

Download backup-an data di salah satu server, sambil download tak tinggal pergi ke dapur buat kopi. Sesampainya di ruang kerja, ehh lha kok transfer rate --:--, padahal udah dapet 20% , tenang,ada rsync #rsync --partial --progress --rsh "ssh -i rsa_priv_admin" root@data2:/data/backup/data_agustus.tar.gz /home/bila Itu ntar bakalan ng-resume hasil download tadi. Hari ini nemu masalah lagi. Jadi pas saya eksekusi, ada skiping directory skipping directory admin skipping directory learning skipping directory android skipping directory beta skipping directory betalawas Googling dan akhirnya nemu, dipakein parameter --archive

Auto Snapshot Droplet Digitalocean

Sumbernya sih disini, Jadi gini, saya punya droplet di DO, pengennya saya itu seminggu sekali droplet otomatis snapshot. Ndak masalah bagi saya droplet ndak bisa diakses (karena snapshot mengHARUSkan droplet dalam keadaan mati dan snapshot itu sendiri bisa memakan waktu hingga 10 menit untuk ukuran SSD 20GB). Masalah muncul lagi ketika saya bisa otomatis snapshot, yaitu belum bisa otomatis delete iamge (image adalah hasil dari snapshot yang bisa di create jadi droplet), jadi tiap bulan ada 4 image snapshot dan akan nyampah  jika tidak dihapus. Buat dulu API-Key di Digitalocean, trus disimpen, itu ntar buat kode token. Misal API-Key-nya adalah b37013An937k0wEdul Misal kita pake user gagas. User gagas udah masuk grup sudo. Misal id_droplet yang mau di autosnapshot adalah 292929 Install curl $sudo apt-get install php5-curl Install ruby $ curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - $ \curl -sSL https://get.rvm.io | bash -s stable --ruby Mem...