Integrare Zabbix cu Slack

Vreau sa fie clar de la inceput, nu e vorba de Slackware (distributia) ci de Slack (platforma/clientul de chat).

Acum ceva vreme am reusit sa integrez Zabbix cu un client de Zabbix pe iOS ce avea posibilitatea sa trimita notificari push atunci cand se intampla ceva in infrastructura mea. Lucrul asta nu mai functioneaza de la iOS 11 pentru ca developerul aplicatiei n-a mai updatat-o si pentru ultimul OS iPhone.
Nu am vrut sa activez notificarile prin email, deci am cautat alte metode prin care as putea sa trimit notificarile din Zabbix si am gasit ca cea mai usoara ar fi prin Slack. Am incercat sa integrez si prin alte metode, cum ar fi IFTTT (ma scarpinam invers) sau PubNub (prea complicat) dar am renuntat la idee.

Dupa “analiza pietei” am zic ca Slack e cea mai simpla rapida si mai usoara metoda. Plus ca inregistrarea in Slack dureaza maxim 3 minute (mai mult mi-a luat sa ma prind de ce nu primesc si pe telefon notificarile), e gratis, aplicatia e multiplatforma (Web, iOS, Android, Linux, Windows, Mac), iar in maxim 15-20 de minute ai terminat de configurat Slack si Zabbix.

Pasi pentru integrare (recomand sa cititi aici mai multe informatii):

  1. Dupa configurarea workspace-ului Slack, trebuie activat webhooks in Slack. La configurarea Webhooks eu am ales un canal nou in loc de un user, chiar daca sunt un one-man show. Poti sa configurezi sa trimiti notificari catre mai multe canale sau mai multi useri. E util cand ai mai multi oameni care se ocupa de diferite lucruri.
  2. Descarci scriptul si-l pui in folderul de alerte in Zabbix. In momentul asta poti sa testezi daca ai facut bine integrarea/configurarea Webhooks cu Slack. Daca reusesti sa trimiti mesaje din shell, atunci poti merge la pasul urmator
  3. Configrezi in Zabbix un media type nou, o alerta noua, o actiune noua, etc. Mai multe detalii gasesti aici. Din momentul asta nu mai ai treaba cu Slack si Webhooks. Daca la pasul 2 ai reusit sa trimiti mesajul de test, tot ce trebuie sa mai faci e sa configurezi Zabbix sa trimita alerte cum vrei tu.
  4. Dupa ce ai configurat Zabbix, poti opri agentul de pe un server si poti sa testezi daca notificarile ajung in canalul de Slack ales de tine.

 

Mai sus e un exemplu de notificare reala.

Bonus: By default aplicatia de mobil nu te notifica daca nu esti idle pe aplicatia de pe PC. Practic atata timp cat nu folosesti aplicatia de mobil (sau cat timp esti logat pe PC si il folosesti) primesti notificari doar pe PC. Acest lucru se poate dezactiva din setarile aplicatiei.

Comenzi ce nu trebuie rulate pe Linux (daca nu stii ce fac)

O sa scriu o lista cu cateva comenzi ce nu ar trebui rulate pe Linux daca nu stii ce fac.

  1. (sudo) rm -rf / – e probabil cea mai cunoscuta comanda si functiona acum ~10 ani.
    Ce face?
    Sterge sistemul de operare si toate discurile ce sunt montate in momentul ala pe sistem. Observati cuvintele “toate discurile montate”. Ce nu e montat, e salvat de la stergere. Ce este montat in momenul rularii comenzii, se va sterge (chiar si remote file-systems).
    De ce era functionala acum ~10 ani? Pentru ca acum nu mai merge:
  2. rm -rf .* – o variatie a comenzii de mai sus. Alte variante ar fi rm -rf * sau rm -rf /*
    Ce face?
    Primele doua comenzi sterg continutul folderului in care te afli. Ultima face acelasi lucru ce incearca comanda de la punctul 1 sa faca, dar de data asta functioneaza fara warning.
  3. dd if=/dev/zero of=/dev/sdX
    Ce face?
    Scrie cu 0 pe HDD. Nu vad vreo problema in a scrie cu 0 tot HDD-ul daca asta vrem sa facem. Trebuie doar sa fim atenti pe ce HDD scriem. Pana la urma, aici e vorba de atentie. Eu folosesc dd-ul ca sa scriu imagini pe stick-uri USB si in 10 ani de Linux am reusit o singura data sa imi stric MBR-ul si root-ul.
    Alternativa:> /dev/sdX
  4. mkfs.ext4 /dev/sdXY
    Ce face?
    Formateaza o partitie. Dar poate chiar asta vreau sa fac. La fel ca la comanda anterioara, trebuie doar sa fim atenti ce partitie formatam. Alternative ar fi inlocuirea ext4 cu ext3, btrfs, xfs, etc.
  5. cd ~; for x in `ls`; do mv -f $x $y; y=$x; done
    Ce face?
    Redenumeste fisierele din folderul in care este rulata comanda si sterge primul fisier.
    Exemplu: avem fisierele “a” cu continutul “a” si fisierul “b” cu continutul “b”. Dupa ce comanda a rulat, o sa avem fisierul “a” dar cu continutul “b”.

  6. find -type f -mtime +30 -exec mv {} /dev/null \;
    Ce face?
    Cauta fisierele mai vechi de 30 de zile si le muta in groapa de gunoi a Linuxului. (/dev/null)
    Alternative: mv ~ /dev/null sau mv / /dev/null. Prima sterge home-ul, a doua face acelasi lucru ca si comenzile de la 1 si 2.

Bonus:

:(){:|:&};:
rm -f /usr/bin/sudo
rm -f /bin/su
chmod -R 777 /*
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "You live" #ruleta ruseasca

 

De la 6-10MB/s la 60MB/s

Cum am cateva zile libere am zis aseara sa ma ocup putin de infrastructura mea de acasa, asa ca am inceput sa fac update la ultimele versiuni de OS pentru fiecare VM in parte, am rezolvat problemele pe care le-am descoperit de cand am setat Zabbix-ul sa trimita notificari, am facut o realocare a resurselor, (aparent dupa ce am refacut niste roluri pe pfSense mi-am dat seama ca nu are nevoie de 6GB de RAM), etc.

Dupa ce am terminat partea cu OS-urile am zis ca ar fi o idee buna sa fac niste modificari si la host, nu numai la masinile virtuale. Mi-a fost prea lene sa fac upgrade la ESXI, asa ca m-am intors la partea usoara: reconfigurarea masinilor virtuale. M-am hotarat ca e timpul sa renunt la clientul de Windows pentru VMWare si sa fac totul din interfata web pentru ESXI 6.5, asa ca am facut upgrade la VIrtual Hardware la versiunea 13, la doua masini ce nu sunt importante.

Din pacate am avut ceva probleme cu ele dupa upgrade (kernel panic cu toate versiunile de kernel) si singurul lucru pe care-l puteam vedea in loguri era legat de placa de retea. Am schimbat placa de retea din VMXNET3 in E1000 si n-am avut probleme timp de 12-13 ore, asa ca am zis sa fac upgrade si la torrentbox. Totul a decurs fara probleme, dar am fost curios care e diferenta (reala/practica) intre VMXNET3 si E1000.

Am intrebat pe Gogu si am nimerit peste un link in care se plangea cineva ca pe E1000 are aceeasi performanta (slaba) si cu TSO on si cu TSO off. Am vrut sa vad mai multe despre TSO si am dat peste link-ul asta si am rulat comanda ethtool -K ens33 tso off tx off sg off gro ca primarul. Din secunda aia all hell broke loose:

Spike-urile pe retea sunt de la niste teste de viteza rulate ca sa vad daca cineva face misto de mine. Aparent nu. Nu stiu de ce, dar faptul ca am dat disable la TSO a ajutat la cresterea vitezei destul de mult (de aproape 10 ori). Mai jos aveti o poza cu traficul pe ore, direct in pfSense, incepand cu ora 11 si pana acum cateva minute (16:23).

 

Inca ma mai gandesc daca sa fac aceeasi miscare si pe pfSense (upgrade la VM13 + E1000 + TSO off), dar daca o fac, revin cu un update in postarea asta.

 

UPDATE 15.08.2017

Se pare ca de fapt exista un bug in ESXI si aparent sunt afectat de el. Cum am spus, am updatat totul la zi (inclusiv kernelul). Se pare ca poti folosi orice versiune de kernel mai mica de 4.8 cu orice versiune de VM Hardware sau orice versiune de kernel cu VM Hardware < 12 ca sa nu ai probleme cu bug-ul.

Eu am VMH13 cu Kernel 4.11 pe masinile mele. O sa incerc un kernel LTS mai vechi cu VMXNET3 si VMH13 sa vad ce se intampla.

Pareri dupa o luna cu Apple iPhone 7 Plus

Acum o luna am decis ca e momentul sa fac o schimbare in viata mea. Cea mai simpla schimbare si prima care mi-a venit in minte a fost sa-mi schimb vechiul Nexus 6 cu un iPhone.

Cum n-am avut niciodata un iPhone dar cum lucrasem cu sisteme Apple inainte (zic sisteme pentru ca am avut si inca am Hackintosh) si mi-au placut, mai ales ca se lucreaza ingrijit in ele, am decis ca e momentul sa imi iau un iPhone. Evident, am facut ceva research, am intrebat in dreapta si in stanga, am citit forumuri, review-uri, etc mi-am zis ca e timpul sa incerc si un telefon cu iOS.

Ca sa scurtam povestea, mai jos avem un fel de iOS vs Android, dupa o luna de utilizare.

The Good:

  • Constructia/designul telefonului e super. Chiar daca e standard de la primul iPhone pana la ultimul si chiar daca toate telefoanele din ziua de azi arata cam la fel. Daca nu impresioneaza mult prin designul simplu, impresioneaza prin calitate. Am avut o gramada de telefoane, fie cu Android, fie cu Symbian, dar nu cred ca vreunul s-a ridicat la calitatea sau impresia de calitate pe care o are iPhone. Pur si simplu se simte altfel. Chiar daca 90% din el probabil e plastic, e un plastic ce iti da senzatia de calitate.
  • iOS-ul e rapid. E rapid si in aplicatii, si in deschiderea lor, si la tranzitii intre aplicatii, indiferent cate ai avea deschise. Nu se compara. Orice i-ai da sa faca, face la fel de repede chiar daca ai o singura aplicatie deschida, sau chiar daca ai 20. Pe Android dupa 10-15-20 de aplicatii in background se intampla sa inceapa sa sacadeze sistemul. Eu sunt un om lenes si nu imi inchid aplicatiile. Pe Android daca faceam asta deja simteam incetiniri in sistem. Pe iOS n-o sa se vada asa ceva. Android-ul ruleaza JVM e foarte putin cod de C/C++ in Android (lasam kernelul in pace) si 90% din ce se intampla in Android se intampla prin Java. Din pacate chestia asta penalizeaza mult performantele oricarui SOC Android, fie el quad-, hexa-, octa-core. Altceva e sa rulezi cod masina si altceva e sa rulezi cod in JVM. Echivalentul pentru PC-uri ar fi python vs C++. (nu e cea mai exacta comparatie, dar la altceva nu ma gandesc acum). Si aici mai e o chestie: kernelul de Linux nu e deloc optimizat pentru telefoanele mobile. Kernelul de Linux are aceeasi parametri standard in el ca acum 20 de ani. Nu e nimic rau in asta, doar ca parametri aia sunt optimizati pentru PC/Server si nu pentru embedded devices. Sunt cateva setari foarte simple care ar ajuta mult la performanta. Eu va invit sa va jucati putin cu butoanele pe la partea de I/O si cache. (un mic hint: io sched, vfs, rq_affinity, readahead)
  • Camera poate nu e cea mai buna si nu o sa compar calitatea pozelor, dar o sa compar rapiditatea cu care se deschide aplicatia fata de Android si rapiditatea cu care faci un burst. (PS: Eu n-am vazut telefon mai bun ca Lumia pe partea de camera. S-a sters la fund cu un D-SLR de 2000 de lei)
  • Sunetul se aude mai bine ca pe Nexus 6. Imi permit sa compar pentru ca ambele telefoane au difuzoare stereo. Difuzoarele pe iPhone au mai mult bass si nu deranjeaza inaltele sau nu se distorsioneaza sunetul dupa un anumit volum. Nu, nu am devenit cocalar si ascult manele pe difuzor, dar imi place sa ascult muzica cand sunt la baie.
  • Meniul de sharing e diferit fata de Android. Are mai putine optiuni de share si e putin mai ciudat, dar imi pot selecta aplicatiile prin care (sau catre care) fac sharing si le pot prioritiza. De exemplu pot alege Whatsapp sa fie prima optiune si a doua Dropbox. Pe Android se prioritizeaza automat in functie de cat de mult faci share catre aplicatia respectiva.
  • 3D-Touch-ul e marfa si chiar e util. Aici nu pot sa compar cu Android pentru ca de pe la versiunea 7 au introdus si ei un fel de 3D-Touch.
  • Siri e singurul asistent care chiar ma intelege. Poate am eu engleza stricata, dar la Google trebuie sa tip in masina ca sa apelez pe cineva atunci cand conduc. Cu Siri pot sa vorbesc in soapta la 2 noaptea.
  • Am optiunea de filtrare a luminii albastre. In Android a existat optiunea pana prin preview-ul 5 de Android 7. Nu am mai gasit-o in versiunea finala. Se poate instala o aplicatie pentru Android, dar in iOS exista deja by default. Pe OS X foloseam un program, in Sierra e integrata functia in sistem.
  • De fiecare data cand conectez telefonul la iTunes, isi face automat backup. Un mare plus pentru asta. Nota 11 cu felicitari. Android-ul inca e in urma cu vreo 20 de ani la partea asta. Backup-ul si restore-ul pe Android e un chin. (O zice cineva care a facut kernel si putin ROM developement pentru Galaxy S2, Nexus 5 si 6)

The Bad:

  • Cum spuneam, meniul de share e putin ciudat si oarecum limitat. De exemplu, daca vreau sa fac share la o poza, o sa-mi apara toate aplicatiile care stiu sa deschida poze. Atat. Daca vreau sa editez poza respectiva, trebuie sa ma duc in alta aplicatie si sa o deschid de acolo. (Adica nu pot sa dau share catre Snapseed de exemplu. Trebuie sa deschid Snapseed si de acolo sa selectez poza.)
  • Notificarile sunt aiurea. Nu ma impac cu modul de functionare. Pe Android: primesc un mesaj, deblochez telefonul, ignor mesajul, las notificarea in pace si blochez. Imi apare pe ecran notificarea dupa ce deschid ecranul. Pe iOS dispare, dar imi apare un badge pe aplicatie. Poate nu m-am obisnuit eu, dar nici cu Android-ul nu prea mi-e rusine la partea de notificari.
  • Nu am Miracast. Nu pot sa fac share la ecranul telefonului pe TV. Pot sa fac un fel de share de ecran, dar doar din unele aplicatii ce suporta Miracast. (Vezi Youtube)
  • Control Center-ul e o jucarie in comparatie cu cel din Android. Nu stiu la ce retea wireless sunt conectat fara sa intru in setari. Nu pot adauga sau scoate shortcut-uri in el. 1-0 pentru Android.
  • M-am obisnuit cu tastatura din Android si tastele speciale sunt in alta parte in iOS. Mi-a luat 2-3 zile pana m-am obisnuit. Aici e o chestie de obisnuinta.

The ugly:

  • Nu pot sa caut persoana pe care vreau sa o apelez din Dialer. Adica vreau sa tastez 222 si sa imi arate toate persoanele care au numarul ce contine 222 sau au in nume literele A, B si C. Daca vreau sa apelez persoana cu numele CAB, in Android tastez 222. In iOS trebuie sa caut eu in contacte numele exact sau sa folosesc 3D-Touch pe aplicatia de Dialer.
  • Esti semi-dependent de iTunes. De exemplu profilul de OpenVPN si cheile SSH le-am pus prin iTunes in aplicatiile respective, cu drag and drop. Mi-ar fi placut sa descarc cheia de undeva direct pe telefon si sa o pot importa prin aplicatii.
  • Nu pot folosi telefonul ca mass-storage. Nu pot sa descarc un ISO pe telefon, sa ma duc la un PC si sa-l vad acolo. Nu poti asta nici pe Mac. (Poti, dar iti trebuie niste aplicatii, ideea e ca pe Android conectezi telefonul la PC si il poti vedea ca un stick USB)

Probabil mai sunt si alte chestii bune sau rele, dar mi-au scapat. Per total sunt multumit de telefon si nu m-as intoarce la Android prea curand, cel putin nu pana cand nu se renunta la JVM…