Recent Updates Toggle Comment Threads | Keyboard Shortcuts

  • Tuan Pembual 15:49 on 18 May 2018 Permalink | Reply
    Tags: , ElasticBeanstalk, Metabase   

    Binar dalam Metabase 

    Metabase is the easy, open source way for everyone in your company to ask questions and learn from data.

    Di Binar Academy, kami menggunakan metabase sebagai mesin untuk mengolah data dari hasil Academy. Metabase dapat dipasang dalam berbagai cara. Namun ketika saya diminta untuk memasang Metabase di lingkungan produksi, baru sadar bahwa stack yang dibutuhkan adalah java. Dan ini membutuhkan resource mesin yang lumayan. Untuk lingkungan development, sebelumnya kita menggunakan Heroku. Dipilihlah untuk menggunakan teknologi container.

    Dari halaman dokumentasi, Metabase mampu dipasang pada layanan ElasticBeanstalk. Mari kita coba. Ya Binar Academy menggunakan layanan AWS untuk semua platform infrastruktur. Untuk pemasangan Metabase di ElasticBeanstalk(selanjutnya disingkat EB) saya mencoba menggunakan EB CLI, namun sepertinya terlalu overkill. Saya kembali menggunakan konfigurasi dari dashboard web.

    Beberapa langkah yang saya lakukan dalam konfigurasi Metabase:

    Memasang metabase di ElasticBeanStalk.

    Saya menggunakan panduan dari sini. Beberapa catatan dalam pemasangan:

    • EC2 yang digunakan EB: t2.micro
    • RDS Postgres: t2.micro

    Setelah Metabase selesai dipasang, kita akan mendapatkan publik url berupa domain, sebagai contoh: prod-metabase.xxxxxx.ap-southeast-1.elasticbeanstalk.com.

    Setting Up Metabase

    Silahkan akses domain yang didapat. Saya merujuk dokumentasi resmi untuk melakukan konfigurasi.

    • Setup Admin Account, beserta credential
    • Setup Email untuk notifikasi, saya menggunakan Google Apps, konfigurasinya hampir sama ketika konfigurasi email Mattermost.
    • Setup database internal Metabase (RDS) dan Database Raw Data, (DB Aplikasi, Google Analytic)
    • Invite Team, dengan memasukkan email team.

    Setting Domain dan HTTPS

    Domain yang didapat merupakan domain costum dari ElasticBeanstalk. Ingin diarahkan ke metabase.domain.id. Caranya:

    • Login ke Domain Management, pilih DNS
    • Buat sebuah CNAME baru dengan isian
      name: metabase
      value: {{enter-your-subdomain}}.elasticbeanstalk.com.
    • Simpan dan tunggu propagasi domain berjalan

    Untuk HTTPS, saya menggunakan SSL dari LetsEncrypt. Untuk pembuatannya, saya generate dari mesin lain yang sudah ada certbotnya.

    $ sudo service nginx stop
    $ sudo certbot certonly --standalone -d metabase.domain.id
    $ sudo service nginx start
    

    Kemudian downlaod dua file ini dari sertifikat ke laptop lokal.

    • fullchain.pem
    • privkey.pem

    Unggah dua file tadi ke IAM mengunakan AWS CLI dalam format berikut:
    aws iam upload-server-certificate –server-certificate-name [berikan nama ssl ke iam] –certificate-body file://[path to fullchain.pem] –private-key file://[path to privkey.pem]

    $ aws iam upload-server-certificate --server-certificate-name [berikan nama ssl ke iam] --certificate-body file://[path to fullchain.pem] --private-key file://[path to privkey.pem]
    $ cd /path/to/ssl
    $ aws iam upload-server-certificate --server-certificate-name metabase.domain.id --certificate-body file://fullchain.pem --private-key file://privkey.pem
    

    Load ssl ke metabase:

    • Buka Elastic Beanstalk dan pilih aplikasi Metabase.
    • Pilih Enviroment metabase
    • Kemudian pilih bagian Load Balancing. Pilih Add Listener. Kemudian isi jendela pop up seperti berikut:
      Listener Port: 443
      Listener Protocol: HTTPS
      Instance Port: 80
      Instance Protocol: HTTP
      SSL Sertificate: metabase.domain.id (sesuai dengan nama yang ditulis ketika Unggah SSL)
    • Simpan.

    Silahkan uji akses costum domain dengan HTTPS. Semoga sukses 😀

    Dah itu aja.

    Estu~

     

    Advertisements
     
  • Tuan Pembual 15:43 on 17 May 2018 Permalink | Reply
    Tags: , ,   

    Memasang Mattermost di AWS 

    Rencana Desain

    Bagi yang belum mengenal mattermost, bisa membaca postingan saya sebelumnya.

    1 Mesin EC2 free tier (1Core1GB) AWS
    OS Ubuntu 16.04
    IP Publik Static (Elastic IP)

    Stack:

    • Nginx (as proxy)
    • Mattermost-server
    • Postgresql
    • SSL letsencrypt

    Security Group outbond:

    • 443, 80 (open)
    • Ping (open)
    • 8065 (port mattermost sementara)

    Instalasi saya pecah menjadi beberapa bagian

    Persiapan Mesin

    1. Buat mesin, sesuai spesifikasi diatas
    2. Login ssh dan mulai masang-masang

    (More …)

     
  • Tuan Pembual 11:25 on 3 May 2018 Permalink | Reply
    Tags: ,   

    Menjadi BlankOn 

    Hai, saya Estu.

    Kali ini sedang mencoba menjadi manager rilis BlankOn XI dengan nama kode Uluwatu. Rilis kali ini pengerjaan dimulai 8 Feb 2017.

    Apa yang terjadi dalam kurun waktu menuju Uluwatu?

    Setelah rilis BlankOn X Tambora, hampir semua koordinator tim mengundurkan diri, tak luput beberapa pengembang veteran pun ikut gantung papan ketik.

    Saya sendiri mungkin hanya sebagian pengembang lawas yang masih ikut. Mari bikin tim baru. Kenyataan pertama yang dari dulu sudah menjadi momok adalah baru sadar bahwa tidak ada dokumentasi yang memadai pada Infrastruktur dan aplikasi utama. Kedua hal itu biasanya merupakan tugas turunan untuk menjadi pawang mesin dan pawang aplikasi tanpa tau bagaimana kedua hal itu dibangun. Momok itu baru sadar ketika beberapa service tidak berjalan baik.

    Selama perjalanan menjahit Uluwatu, ada beberapa kejadian yang menjadi catatan saya.

    Milestone:

    1. Perawatan Mesin BlankOn
      • Waljinah, penambahan hardisk | Maret 2017
      • Perawatan Rani, penambahan hardiks | Maret 2017
      • Perawatan Alynne, penambahan CPU dan RAM | April 2017
    2. Laporan kerusakan pada lumbung Tambora | April 2017
      • Backup service, Alynne install ulang
    3. Rekontruksi Pabrik CD, Pabrik Paket (IRGSH), dan Pabrik Repo | Maret – Juni 2017
      • Inisiasi ananda | mesin baru di Digital Ocean untuk riset rekontruksi
    4. Alynne gagal hidup dan bekerja akibat MotherBoard yg rusak | Desember 2017
    5. Penyalahgunaan Maskot Boni untuk komersial

    Pada rilis Uluwatu ini, tidak banyak yang berubah dari segi isi dan fitur. Beberapa hanya menaikan versi aplikasi. Namun beberapa kerjaan selesai yang saya anggap sebuah pencapaian dalam rilis kali ini ada banyak, diantaranya:

    1. Dokumentasi bagaimana membangun layanan BlankOn.
      Rilis kali ini saya ikut membidani rekontruksi infra BlankOn akibat beberapa catatan kejadian diatas.

      • Dokumentasi Pabrik Repo menggunakan reprepro
      • Dokumentasi Pabrik CC, service yg menjahit ISO BlankOn
      • Dokumentasi Pabrik Paket (irgsh server dan irgsh worker)
      • Isu-isu yang sering muncul di layanan dan bagaimana menangani
    2. Pemindahan Repository dari dev.boi yg menggunakan bzr ke github dengan scm git.
    3. Pemindahan Wiki oleh tim Dokumentasi dari Trac di dev.bo ke github pages.
      • Tim Dokumentasi kali ini memberikan lompatan yg besar. Karena mayoritas anggota bukan dari latar belakang IT, setelah bergabung. Belajar bagaimana menulis dokumentasi dalam format Markdown dan menggungahnya ke github melalui baris-baris perintah git.
    4. Perilisan Kode Etik berkomunikasi
    5. Pendaftaran Sponsor dan Mitra dirilis
    6. Kegiatan Translasi GCompris edisi Bahasa Indonesia
    7. Kegiatan Pameran di Habibie Festival dan Libroffice Conference Indonesia

    Beberapa catatan lain.

    9 Februari 2018, kami kehilangan kawan, sahabat, jiwa muda di tim pengembang BlankOn.
    Muhammad Rafi, koordinator Humas, berpulang setelah seminggu dirawat pasca kecelakaan.
    Sebuah kehilangan yang sangat besar bagi kami. Semoga dilapangkan jalannya, Amin.

    Diawal bulan Mei ini, setelah melalui perjalanan panjang, pasang surut. Tim Pengembang sepakat.
    “Merilis BlankOn XI Uluwatu”

    Selamat rilis kawan, tetap semangat menuju kemandirian perangkat lunak bersumber terbuka.
    Mohon maaf belum dapat menjadi manager rilis yang baik.

    Tabik
    Estu – tuanpembual

     
  • Tuan Pembual 15:18 on 23 April 2018 Permalink | Reply
    Tags: Cloud, , Messaging,   

    Mattermost, Slack Alternative 

    2018-01-23 16.42.36

    Mattermost, ketika mendengar kata ini, yang kebayang disaya adalah termos air. 😀

    Mattermost sendiri adalah open source private cloud messaging sebagai alternative dari Slack. Kode sumber mattermost dapat diakses di https://github.com/mattermost. Lengkap dengan server dan client side.

    Beberapa limitasi slack gratis yang kerasa adalah hanya menyimpan 10ribu chat terakhir dan batasan total file dan total ukuran file yang diunggah.

    Mattermost sendiri sebagai private cloud messaging bisa digunakan lewat beberapa cara. Diantaranya:

    1. Beli layanan dengan beberapa service tambahan menarik lainnya
    2. Install dan konfigurasi Mattermost server di server sendiri

    Saya memilih memasang di mesin sendiri. Ada beberapa pilihan pemasangan lain, seperti memasang di heroku, memasang menggunakan Puppet, Chef atau Ansible. Bahkan memasang mattermost-server dalam Docker.

    Sementara setelah membaca beberapa tautan di halaman unduhan, saya sepertinya akan memasang di AWS saja.

    Sempat nyoba di heroku tapi kurang berhasil. Nyoba di aws 3-4 kali baru sukses. Panduan pemasangan akan saya tulis setelah ini. Iya nyobanya banyak, karena masih meraba-raba bagaimana konfigurasi yang paling cocok digunakan di kasus saya.

    Untuk aksesnya bisa dari browser ke domain yang sudah diatur dari mattermost server. Untuk versi ponsel pintar android sudah ada jg di Google Play.

    Dah itu aja dulu pengenalannya.

    Lanjut nulis install-install.

    Estu~

     
  • Tuan Pembual 14:01 on 13 April 2018 Permalink | Reply
    Tags: gRPC, HAProxy, LoadBalancing   

    Konfigurasi LB gRPC Service dengan HAProxy 

    2018-04-05 15.07.23

    Kemaren diminta setting load balancer di HAProxy untuk gRPC Service.
    Panduan ini saya nyomot dari https://grpc.io/blog/loadbalancing dan https://gist.github.com/thpham/114d20de8472b2cef966

    Desain service kira-kira seperti ini:

    Springboot-Service(API) <—> HAProxy <—-> gRPC Server 1 & gRPC Server 2

    Kasusnya adalah:

    • Traditional setup – Many clients connecting to services behind a proxy
    • Need trust boundary between servers and clients
    • Metode pembagian beban adalah roundrobin
    • HAProxy dipasang dimesin yang sama dengan gRPC server 1.

    Solusi yang diambil:

    • L3/L4 LB with haproxy.

    Installasi dan Konfigurasi

    $ sudo apt install haproxy
    

    Berikut konfigurasi yang saya gunakan dengan perubahan seperlunya termasuk mengatur status load balancer (Dashboard HAProxy).

    global
      tune.ssl.default-dh-param 1024
    
    defaults
      timeout connect 10000ms
      timeout client 60000ms
      timeout server 60000ms
    
    ## Pengaturan Dashboard HAProxy
    listen stats
      bind :1936
      mode http
      log  global
    
      stats enable
      stats uri /stats
      stats refresh 15s
      stats show-node
      stats hide-version
      stats realm Haproxy\ Statistics
      stats auth user:password
    
    frontend fe_http2
      mode tcp
      ## alamat binding gRPC yg akan diakses oleh Springboot-Service
      bind 192.168.33.100:6668 npn spdy/2 alpn h2,http/1.1
      ## alamat routing backend
      default_backend be_grpc
    
    backend be_grpc
      mode tcp
      balance roundrobin
      ## daftar gRPC service yang akan menerima LB dari HAProxy
      server prod-service-020 127.0.0.1:6667
      server prod-service-021 192.168.101:6667
    

    Setelah konfigurasi dirasa cukup, lakukan testing konfigurasi HAPRoxy dengan perintah berikut.

    $ sudo haproxy -c -f /etc/haproxy/haproxy.cfg
    

    Jika udah ijo, lakukan restart haproxy.

    $ sudo systemctl restart haproxy
    

    Demikian.
    Estu yg lagi dolanan Mattermost

     
  • Tuan Pembual 17:32 on 5 April 2018 Permalink | Reply
    Tags: ,   

    Memperbaiki Daemon ScreenSaver di BlankOn Uluwatu 

    IMG_20180405_170943

    Yaps x260 saya isinya Uluwatu dan gado-gado lainnya. Lebih seringnya makai repo SID dari Kartolo. Beberapa hari ini, setelah jalankan upgrade paket dari SID, beberapa fitur ngambek.

    Salah satunya screensaver g jalan. Akibatnya laptop jadi tambah boros. Layar idup selalu meski udah ditinggal lama ( g mau dim).

    Yuk dibenerin. Kata Pak Sofyan cukup ubah file desktop gnome-screensaver:

    $ sudo vim /etc/xdg/autostart/gnome-screensaver.desktop
    

    Cari baris ke 157.
    Ganti OnlyShowIn=GNOME-Flashback menjadi OnlyShowIn=GNOME

    Setelah itu, logout dan login kembali ke Manokwari. Tadaaa… Sukses

    Estu yang lagi nunggu rilis.

     
  • Tuan Pembual 17:16 on 5 April 2018 Permalink | Reply
    Tags: , BlanKopdar, ,   

    BlankOn dalam Konferensi Libreoffice ID 

    2018-03-25 14.47.48

    Ini kali kedua konferensi, saya g ikut jadi pembicara. Sebelumnya PyConf ID di PENS 19 Desember silam, hanya cuma submit judul dan tidak lolos (dan memang berharap tidak lolos). Acara di PENS Desember silam termasuk perjalanan ajaib, karena kali pertama saya nyoba bawa sepeda lipat naik pesawat.

    Konferensi LibreOffice kemaren saya semacam penyusup, karena sedikit bikin acara dalam acara. Agenda terselubungnya adalah mengumpulkan pengembang-pengembang BlankOn dalam satu lokasi. Semacam BlanKopdar.

    Perjalanan ke timur. Rencana awal berangkat naik bus, tapi beberapa jam menjelang berangkat, tiba-tiba malah beli tiket kereta Jayakarta. Dan dapat kabar, kereta jalur selatan asal dan menuju Bandung mengalami terlambat. Karena ada kereta anjlok. Dan Pak Didiet sudah misuh-misuh dari sore. (More …)

     
  • Tuan Pembual 13:09 on 10 January 2018 Permalink | Reply
    Tags: grep, less, , more, query, tail   

    Kombinasi Tail dan Grep 

    eiffel.di.blankon.in

    Ah susah ini nyari judul yang pas, searchable, googlingable. Kasusnya adalah seperti ini. Saya butuh mencari baris yang mengandung kata kunci tertentu pada file logs streaming.

    Berarti butuh perintah tail -f /path/to/log dan di grep hasilnya.

    $ tail -f FILE | grep PATTERN | tail -f -n10
    

    Namun kenyataannya, perintah diatas tidak mengeluarkan hasil apapun. Hasil utak-atik kata kunci di mesin pencari membawa pencarian saya di halaman Stackoverflow.
    Berikut format solusi yang bisa digunakan:

    $ grep PATTERN FILE | tail -n10; tail -f -n0 FILE | grep PATTERN;
    

    Contoh:

    $ grep user_subject_attributes /var/log/production.log | tail -n10; tail -f -n0 /var/log/production.log | grep user_subject_attributes;
    

    Selamat berburu logs!!

    Estu~

     
    • xidz 07:50 on 11 January 2018 Permalink | Reply

      huhu. Tail. Grep. Awk. Head. Cut. Udah kewajiban banget lah dipahami buat semua eng yang ngotak ngatik loh ahahaha

  • Tuan Pembual 10:32 on 1 December 2017 Permalink | Reply
    Tags: Logrotate   

    Logrotate | Bersih-bersih Kapasitas Hardisk 

    logs

    Biasanya, yang membuat hardisk server penuh adalah ukuran log yang membesar tiap harinya tanpa diurusi. Harusnya ada manajemen log.

    Apa yang harusnya dilakukan pada log?

    1. Memecah log dalam satuan waktu, misal log pertanggal dengan format tanggal ISO (*-YYYYMMDD.log).
    2. Menghapus log lama otomatis, misal log 7 hari yg lalu akan dihapus.

    Implementasi ?
    Logrotate.

    Berikut contoh konfigurasi yang biasa saya lakukan:

    • Install logrotate.
      $ sudo apt install logrotate
      
    • Atur konfigurasi logrotate.
      /path/to/log {
          daily
          missingok
          rotate 7
          size 100M
          compress
          delaycompress
          notifempty
          create 0640 user user
          sharedscripts
      }
      
    • Restart service cron

    Kalau ada pertanyaan, silahkan tinggalkan komentar. Sekian.

    Estu~

     
  • Tuan Pembual 18:57 on 30 November 2017 Permalink | Reply
    Tags: Disk Full   

    Mengoreksi Kapasitas Hardisk Sistem Operasi 

    Tumis-Tempe

    ps: foto tak ada hubungan sama isi postingan

    Nah ini sebenarnya sering saya lupa, tapi nyari pas butuh. Mesin penuh, service matik.

    Nyari pembagian partisi

    # sudo fdisk -l
    

    Nyari kepastian ukuran partisi yang terpakai

    # sudo df -h
    

    Nyari ukuran folder pada posisi $(pwd)

    # sudo du -sh
    

    Nyari list ukuran deretan folder, demi mengetahui folder mana yang menghabiskan space paling besar

    # sudo du -h --max-depth=2 .
    

    Sepertinya itu aja kali ini. Lanjut cara benerinnya diposting selanjutnya. Kalau ada nemu yg lain nanti, akan saya tambahin disini.

    Estu~

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel