Internet speed monitoring using grafana and telegraf in docker


Clone project here https://github.com/susiloharjo/internet-speedtest-docker-grafana-telegraf

Edited for running on raspberry pi

Happy codding

Salam ngoprek

Multiple output function in node-red


This is sample flow for multiple output in one function in node-red

[{"id":"5f08a336.d9c24c","type":"function","z":"2aaa7997.d6ad76","name":"","func":"raw = msg.payload.object;\n\nvar msg1 = { payload:raw.analogInput[1]};\nvar msg2 = { payload:raw.analogInput[2]};\nvar msg3 = { payload:raw.analogOutput[3]};\nvar msg4 = { payload:raw.temperatureSensor[3]};\nvar msg5 = { payload:raw.humiditySensor[4]};\nvar msg6 = { payload:raw.barometer[5]};\n\n\nreturn [ msg1, msg2, msg3, msg4, msg5, msg6 ];\n\n// msg.payload ={\n//     battery : raw[1],\n//     solar:raw[2]\n// }\n// return msg;","outputs":6,"noerr":0,"initialize":"","finalize":"","x":520,"y":660,"wires":[["719a5264.f5757c"],["1d8c7f1.9f75281"],["e4b2ebe4.6b0728"],["418e174c.6f7258"],["46ea126c.0ec36c"],["703fee7.477581"]]}]

Arduino zero serial print not show


I bought The SAMD21 Mini is a Pro Mini-sized for the ATSAMD21G18 from bangood this is arduino zero clone platform and the form factor is really small and i think this is great replacement for arduino mini pro, this is the spec

  • ATSAMD21G18 32-bit/48MHz ARM Cortex-M0+
  • 256KB Flash Memory
  • 32KB SRAM32KB of EEPROM (emulated in Flash)
  • 22 GPIO Count 
  • 14 ADC Channels at 12-bit ResolutionAnalog-to-Digital and Digital-to-Analog Converters (ADC & DAC) 
  • RAW: 3.5V-6.0VVCC: 600mA  3.3V 
  • Pro Mini/Micro Layout
  • Integrated USB Controller

And today i connected this modul to Bosch sensor BME 680 modul using i2c connection, for the first time this board not print any Serial println, after browsing at internet i found the serial print must be activated by adding some command below

#define Serial SerialUSB

And this the complete code if you want to try it

Continue reading “Arduino zero serial print not show”

install pihole at docker swarm with nfs share


I’m using portainer

This is my stack

version: "3.7"
services:
  pihole:
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "80:80/tcp"
      - "443:443/tcp"
    environment:
      TZ: 'Asia/Jakarta'
      WEBPASSWORD: 'password'
    volumes:
      - 'pihole.vol:/etc/pihole/'
      - 'pihole.dns:/etc/dnsmasq.d/'

volumes:
  pihole.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/container/pihole2/pihole"
      
  pihole.dns:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/container/pihole2/dnsmasq.d"

Don’t forget to mkdir pihole and dnsmasq.d in share directory

Install node-red in docker swarm with share data in nfs


I’m using portainer

Please read my note before this for setting nfs

This is my docker stack ‘

version: "3.7"

services:
  node-red:
    image: nodered/node-red:latest
    environment:
      - TZ=Asia/Jakarta
    ports:
      - "1880:1880"
    networks:
      - node-red-net
    volumes:
      - nodered.vol:/data
    user: root:root

volumes:
  nodered.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk/nodered/"

networks:
  node-red-net:

If you have permission problem when you running your stack in nfs share maybe you can add user:root:root in your stack it works for me

Happy Coding

Salam Ngoprek

Share nfs volume docker swarm


//Docker stack

version: "3.7"
services:
  web:
    image: nginx
    volumes:
      - nginx.vol:/usr/share/nginx/html
    ports:
      - 80:80
    networks:
      - web

networks:
  web:
    driver: overlay
    name: web

volumes:
  nginx.vol:
    driver: local
    driver_opts:
      type: "nfs"
      o: addr=192.168.0.13,nolock,soft,rw
      device: ":/media/fdisk"


// nfs setting /etc/exports

/media/fdisk *(rw,insecure,sync,no_subtree_check,no_root_squash)


I had problem with nfs share if i use vfat partition, and i change to ext4 for partition usb fdisk and now all volumen working properly (dont forget to change media share to 777 if you have problem to read and write)

Source :

https://pimylifeup.com/raspberry-pi-nfs/

https://sysadmins.co.za/docker-swarm-persistent-storage-with-nfs/

https://linuxize.com/post/how-to-mount-an-nfs-share-in-linux/

https://serverfault.com/questions/212178/chown-on-a-mounted-nfs-partition-gives-operation-not-permitted

Membuat Raspberry Pi Cluster part 3 (manage docker swarm menggunakan portainer )


Ok lanjutan dari tulisan saya sebelumnya membuat raspberry pi cluster series, kali ini saya akan membahas penggunaan portainer untuk memanage docker swarm kita.

Apa itu portainer? kalau menurut keterangan di webnya portainer adalah sebuah tools yang digunakan untuk memanage docker dengan cepat dan mudah.

Dan yang serunya adalah aplikasi nya gratis bisa digunakan dengan bebas buat main main cukuplah kan ya :D. Dan portainer sendiri juga menawarkan versi berbayar dan tentu saja dengan support yang berbeda dengan versi gratisnya.

Ok cara mudah install portainer di docker kita cukup ketikkan perintah ini di master cluster kita

curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml 

docker stack deploy --compose-file=portainer-agent-stack.yml portainer 

lengkapnya bisa baca disini , tunggu beberapa saat untuk melihat service nya sudah jalan apa belum ketikkan perintah ini

docker service ls

Kalau sudah running semua tinggal buka browser masuk ke ip master

http:<ip master>:9000

masukkan user dan password dan selesai

Continue reading “Membuat Raspberry Pi Cluster part 3 (manage docker swarm menggunakan portainer )”

Membuat Raspberry Pi Cluster part 2 (install docker swarm)


Melanjutkan tulisan sebelumnya disini selanjutnya saya akan membahas gimana caranya install docker swarm, caranya gampang sebenernya cuman tinggal install docker 🙂 caranya liat disini

Setelah install docker selesai langkah selanjutnya adalah tinggal menggabungkan raspbery ini secara software, ada beberapa tips sebenarnya supaya gampang kedepannya untuk memanage si raspberry pi yaitu dengan cara set static ip dan ngga lucu juga sewaktu waktu apabila ipnya berubah maka clusternya bisa kacau :D. Cara gampang bisa lewat router dengan assign ip static di dhcp server router dengan mendaftarkan mac address nya kemudian diberikan ip static, atau cara kedua dengan menset ip lokal di raspberry pi seperti cara ini

sudo nano /etc/dhcpcd.conf 

interface eth0
static ip_address=192.168.0.4/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

begitu selesai simpan file ctrl + x (Y)

Begitu selesai ada tips lagi yang lain tapi optional yaitu copykan id rsa public di kesemua master dan nodenya, oh iya master itu adalah docker utama yang mengatur node (raspberry pi worker)

Langkah selanjutnya setelah selesai adalah masuk kebagian pentingnya yaitu menggabungkan caranya gampang tinggal seperti ini

docker swarm init (di master)

setelah itu akan muncul seperti dibawah ini 

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-496mv9itb7584pzcddzj4zvzzfltgud8k75rvujopw15n3ehzu-af445b08359golnzhncbdj9o3 \
    192.168.0.79:2377

docker node ls

simpan kode diatas, kode tersebut akan kita akan gunakan ketika ingin menggabungkan node kita ke master, sampai disin node master kita sudah selesai, untuk mengetes berhasil apa tidak tinggal

docker node ls

kalau sukses maka akan muncul nama master kita disana dan kode tersebut juga akan menampilkan node yang terhubung ke master

Setelah master selesai masuk ke node yang akan kita joinkan melalui ssh

pastikan docker sudah terintall di node dan jalan dengan baik kemudian ketikkan kode ini di node

docker swarm join \
    --token SWMTKN-1-496mv9itb7584pzcddzj4zvzzfltgud8k75rvujopw15n3ehzu-af445b08359golnzhncbdj9o3 \
    192.168.0.79:2377

ini adalah kode yang tadi kita simpan pada saat kita membuat docker master, cara untuk tau master kita sudah terhubung apa belum masuk ke master ketikkan

docker node ls

Nanti kalau sukses join akan muncul disana, ulangi langkah tersebut ke semua node kita dan selesai cara menggabungkan raspberry pi cluster kita menggunakan docker swarm.

Selanjutnya saya kan share cara manage docker swarm dengan mudah

Happy Coding

Salam ngoprek

Membuat Raspberry Pi Cluster part 1


Mumpung WFH dan ada beberapa raspberry pi yang nganggur dan berserakan gitu aja, akhirnya kepikiran membuat raspberry pi cluster ini, semua raspberry pi ini saya dapatkan tidak dari membeli semuanya saya dapat dari event event yang saya ikuti dan mendapatkan hadiah raspberry pi ini lumayan gratisan 😀 .

Setelah menghitung hitung isi dompet dan kalau beli casenya mahal akhirnya mampirlah ke Mr DIY cari cari kotak plastik ini 🙂 dan dapatlah murah harganya cuman 20 ribuan, beli dua yang satu buat menyimpan koleksi board yang satu dibuat raspi cluster ini, dan satu lagi kenapa lebih milih plastic case seperti ini selain gampang didapat juga gampang di modifikasi, cukup dengan pisau panas 😀 dengan gampang melubangi bagian bagian yang akan kita modifikasi.

Ini adalah part 1 yang akan membahas mengenai cara buatnya part selanjutnya membuat cluster secara softwarenya. Dibawah ini adalah gambaran dari raspi clusternya, silahkan kalau ingin membuat dengan model lain, saya cukup puas dengan hasilnya yang begini.

Beberapa komponen banyak yang available di online market dan yang menurut saya bikin rapi adalah power supplynya yang bentuknya sudah USB dan mampu sampai 8A, input power supply nya juga cukup lebar rentangnya dari 8-35 VDC, untuk cluster ini saya catu dengan supply 12VDC 7A. Selain power supply penting juga menambahkan kipas angin, waktu tulisan ini dibuat saya sedang menunggu kipas yang ada lampunya biar meriah 😀 nanti mungkin saya akan masukkan di tulisan selanjutnya.

Happy Coding …

Salam ngoprek …

Test installing ubuntu server at raspberry pi


This is step by step to install it

https://ubuntu.com/tutorials/how-to-install-ubuntu-on-your-raspberry-pi#1-overview

let’s try it 😀

ubuntu mania

Happy Coding

Salamn ngoprek …