Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Standa Blábol

Stran: 1 ... 6 7 [8] 9 10 ... 16
106
Software / Re:Dohledový systém
« kdy: 11. 01. 2021, 11:03:49 »
- Zabbix - zdaleka nejlepsi z techto, ve verzi 5.x + proxy + pluggable agent2 psany v GO + ansible oficialni modul + pyzabbix knihovna + TimescaleDB + Grafana - absolutne nejlepsi feature set, ostatni se ani neblizi.

Tohle by mne zajimalo, co to umi. Proxy je mi jasna, agent2 taky pouzivam - ale ten je podporovan je nekterych verzich debianu (zavislost na ssl apod).
S ansiblem mam ten problem, ze pak je problemove to spravovat z GUI.
Co mne nejvic zajima - k cemu ten pyzabbix, k cemu ta timescaledb (ja to mam v postgresql). Jak je to s tou grafanou - co se tam musi udelat, kazdy graf kazdeho monitorovaneho modulu se musi prevytvorit ci jak?

Pro Ansigle je GUI AWX, osobne pro ansible GUI nepotrebuju.
Pyzabbix je knihovna pro Python pro praci s Zabbix API a zabbix sender. Da se s tim velice jednoduse na zabbixu naskriptovat cokoliv, co udelas z GUI.
TimescaleDB je time-series extenze do postgresu, samo se to pak stara o housekeeping a podporuje kompresi metric dat, typicky ping metrika, kde je v 99% porad 0 (OK) se zkomprimuje do par KB. Ale toto ocenis spise u vetsich instalaci, pro male monitorovane baze postaci holy Postgres
Greafana: https://www.zabbix.com/integrations/grafana
Ale popravde, posledni verse Zabbix dashboardu jsou z Grafany opajcovane a maji obdobnou funkcionalitu.


107
Software / Re:Dohledový systém
« kdy: 11. 01. 2021, 09:39:02 »
My two cents.

Ze zde dikutovane trojice, Nagios (+klony), Zabbix, Prometheus se to ma takto:

- Nagios uz nechte zdechnout, byl prvni a proto je rozsireny, jinou vyhodu nema

- Zabbix - zdaleka nejlepsi z techto, ve verzi 5.x + proxy + pluggable agent2 psany v GO + ansible oficialni modul + pyzabbix knihovna + TimescaleDB + Grafana - absolutne nejlepsi feature set, ostatni se ani neblizi.
Zabbix vsak vyzaduje vytvoreni pevneho modelu monitorovaneho sveta, ktery se polluje. Neni vhodny pro dynamicke kontejnerove aplikace, kde kontejnery vznikaji a zanikaji podle aktualniho loadu

- Prometheus + AlertManager - specializovany dohled vznikly pro potreby Kubernetes, resi problem dynamickych kontejneru. Jinak je funkcne dost omezeny a je to defacto funkcionalni navrat k devadesatym letum, kdy letely hloupe eventove konzole + RRD. V pripade kontejneru to ale jinak nejde, tam se pevny model monitorovaneho sveta ve stylu Zabbixu, CA Spectrum, EMS Smarts proste udelat neda.
Existuje pro to spousta rovnaku na ohybaky typu SNMP exporteru, funcionalite Zabbixu v teto staticke oblasti se to ani neblizi.

Resultat:
Pokud chci monitorovat staticky svet -> Zabbix
Pokud chci monitorovat pouze dynamicky svet (kontejnery) -> Prometheus
Pokud mam oboje -> Zabbix a AlertManagerem do nej preposilat vyhodnocene eventy z Promethea

108
Software / Re:Dohledový systém
« kdy: 09. 01. 2021, 10:22:31 »
Pro tyhle ucely rozhodne Zabbix s TimescaleDB na historii a proxyny na offload sberu metrik + ansible na spravu zabbixu, je tam pro zabbix luxusni modul + agent2 psany v GO s jednoduchou moznosti vlastnich pluginu

Nagios a jeho klony uz nechte konecne zdechnout.

109
Hardware / Re:Vybírám tablet k Vánocům
« kdy: 21. 12. 2020, 20:41:55 »
@Standa Blábol: mohl byste prosim overit, jestli na Lenovo M10 funguje Whatsapp...? Diky.

Ted je to zabaleny na dne skrine a rozbali se to 24.
Ale nevidim zadny duvod, proc by to nemelo jit, me whatsapp jel naprosto vsude a tohle je Android 10.

110
Hardware / Re:Vybírám tablet k Vánocům
« kdy: 21. 12. 2020, 14:15:37 »
Zrovna vcera jsem to resil a nakonec jsem skoncil u https://www.alza.cz/lenovo-tab-m10-plus?dq=5769969&o=2

U tabletu je 4GB RAM minimum, zbytek je vicemene podruzny, CPU vykon dnes neni problem.

Android tablety s malym mnozstvim pameti neumoznuji vice profilu, coz je u domaciho tabletu sdileneho vice detmi krucialni featura.
Bez profilu je z toho hloupej iPad.

Vcera jsem si s tim chvili hral, aby kluci meli po rozbaleni rovnou nastaveny tablet i s jejich ucty, Android 10 (alzak pise 9) a funguje to pomerne svizne. Displej velice pekny.

111
Distribuce / Re:Proxy přístup na internetové repozitáře
« kdy: 04. 12. 2020, 14:25:34 »
Nakonec jsem to vyresil pomoci tinyproxy.
Ted to jede jak po masle a jediny, co bylo potreba nastavit, byl IP rozsah stroju, co mohou k proxy pristupovat.

Squid mi pripada obecne nejaky cely zesraty, HTTPS jsem nerozjel vubec, HTTP se divne skubalo a bylo to pomale.

Diky vsem za hinty.

112
Distribuce / Re:Proxy přístup na internetové repozitáře
« kdy: 03. 12. 2020, 21:37:17 »
1) Repozitáře jsou snad podepsané, takže lokálně a vlastně i po netu je HTTP v pohodě, ne?

2) Druhé řešení, které bych zvolil, je vykašlat se na proxy v té síti, a repozitáře si tam natáhout SSH tunelem. Přihlásit se tam se
Kód: [Vybrat]
ssh -R 8888:repozitář:80 -R 8889:repozitář:80
a v seznamu repozitářů pak jako repozitář nastavit http://localhost:8888.

Pekna myslenka, kdyz nepujde nic lepsiho.
Ty servery chci managovat ansiblem za pouziti standardnich roli z ansible galaxy a ty si repa dokonce samy pridavaji, napr zabbix repo. To tech ansible roli se mi hrabat nechce, aby to sestavovalo tunel na pocatku kazdeho playbooku.
Pokud by jela https proxyna, prijde mi to systemove cistsi.

A hlavne jsem kdesi videl, ze proxivane repa jely pres https proxynu nacerno udelanou jakymsi sharevare udelatkem na W10.
Nejak ti prece musi jit.

113
Distribuce / Re:Proxy přístup na internetové repozitáře
« kdy: 03. 12. 2020, 21:29:10 »
No, pokud je na serverech vypnutý přístup na internet, většinou to má dobrý důvod a naopak není důvod to porušovat.
Přístup do repozitářů a vývojové nástroje bych na server nedával.

Obvykle se projekt sestaví a teprve výsledek se deployuje na server. Na to stačí push přes SFTP, SCP atp.

Normalni reseni je, ze ve firme maji svoje privatni repa managovane pres satellite6.
Nechat servery shnit bez security updatu je sice zajimava metoda, ale snazim se ji vyhnout.
V one firme nemaji privatni repa a ja se na nejake potrebuju dostat.
Kdyz primo dnf podporuje praci s HTTPS proxy, predpokladam, ze to nejak jit musi.
Squid instalace podle webovych tutorialu mi pro https neseje (zrejme.HSTS), tinyproxy to pro jistotu nepodporuje vubec, dal jsem nezkoumal.


114
Distribuce / Proxy přístup na internetové repozitáře
« kdy: 03. 12. 2020, 19:18:30 »
Mam u zakaznika nekolik Centos8 serveru bez pristupu k internetu a potreboval bych na nich mit pristup na internetove repozitare, klasika Centos, EPEL, Postgres apod.

Na jednom ze stroju muzu dostat internet, potrebuju nejake reseni, aby na repa mohly i ostatni stroje.

Zkousel jsem nasadit squid v noncaching modu, na http se curlem proxovane dostanu, https aniprt.

Resil jste nekdo podobny problem?
Jak rozjet https na sqid explicit https proxy, popr jestli neexistuje nejake uplne jine reseni, jak se dostat na repa.

115
Vývoj / Re:Rekurze v Javě (i jinde)
« kdy: 19. 11. 2020, 09:27:54 »
1. Když píšeš že "to ale funguje v podstatě přesně tak jak bych chtěl. ", tak se mi zdá, že už máš nějaký funkční kód. V takovém případě je asi lepší postnout sem ten, ať neřešíme něco co je třeba jinak.

2. Když už máš funkční kód, doporučuju ti prokrokovat si ho v debuggeru, to ti v tom udělá jasno.

Jinak v postnutém kódu se skutečně vždy spustí buď pouze doSomething(x,y); metoda1(x+1,y), nebo vůbec nic.

Nesmysl, na stejne urovni rekurze se spusti se vsechny metody, nebo zadna.

Presneji, spusti se vsechny metody, ale ty dalsi neudelaji nic, protoze jejich vykonny kod je uvnitr podminky

Kód: [Vybrat]
package testy;

public class Recur {

private boolean podminka = true;

public static void main(String[] args) {
new Recur().go();
}

private void go() {
metoda1(0, 0);
}

public void metoda1(int x, int y) {
System.out.println("metoda1(" + x + "," + y + ")");
if (podminka) {
doSomething(x, y);
metoda1(x + 1, y);
metoda1(x - 1, y);
metoda1(x, y + 1);
metoda1(x, y - 1);
}
}

private void doSomething(int x, int y) {
System.out.println("doSomething(" + x + "," + y + ")");
this.podminka = false;
}

}

Vysledej je podle ocekavani


Kód: [Vybrat]
metoda1(0,0)
doSomething(0,0)
metoda1(1,0)
metoda1(-1,0)
metoda1(0,1)
metoda1(0,-1)



116
Vývoj / Re:Rekurze v Javě (i jinde)
« kdy: 19. 11. 2020, 09:17:07 »
1. Když píšeš že "to ale funguje v podstatě přesně tak jak bych chtěl. ", tak se mi zdá, že už máš nějaký funkční kód. V takovém případě je asi lepší postnout sem ten, ať neřešíme něco co je třeba jinak.

2. Když už máš funkční kód, doporučuju ti prokrokovat si ho v debuggeru, to ti v tom udělá jasno.

Jinak v postnutém kódu se skutečně vždy spustí buď pouze doSomething(x,y); metoda1(x+1,y), nebo vůbec nic.

Nesmysl, na stejne urovni rekurze se spusti se vsechny metody, nebo zadna.

117
Software / Re:Nástroj pro psaní poznámek pro programátora
« kdy: 31. 10. 2020, 22:50:31 »
Pouzivam GUI nadstavbu Gitu "Gitea" a poznamky k projektu cpu primo tam v MD formatu. Edituje se to normalne MD editorem, treba v eclipse
Neztrati se to, proctou si i jini, je to zalohovane a po vymene NTB nactu s prvnim pullem.

118

Jedna vynimka moze generovat dalsiu, a ta dalsia potom dalsiu. Z toho je potom poriadne kosaty kod,
ktory ma daleko k dobrej citatelnosti. Ta poznamka "We don't trust the driver" pochadza zo Springu;
to pridava kodu dalsiu uroven komplexnosti a zamotanosti. Je z toho potom uplny binec.  Mne Java
naopak vynimky poriadne znechutila.


Priklad s JDBC driverem je presne ten pripad stareho marasu v Jave, ktery nikdo soudny nepouziva.
Dneska pouzivat primo JDBC a a manualne mapovat hodnoty z resultsetu do beanu je prace pro masochisty.
Dneska proste reknu Springovi at mi pribali JPA, tam ale volam native queries (JSQL neumi vyuzit moznosti DB a casto to vede k divokym dotazum), Hibernate vespod mi rovnou vraci Listy naplnenejch beanu, neresim zadne konektovani ci spravu DB poolu. Prakticky jedine, co si musim hlidat, je korektni @Id v JPA beanu.

Takze nekde uvnitr Springu je schovana tvoje konstrukce s vyjimkama na vyjimky, lec who cares?
Zkratka mam v package "persitence" interface a tridu, co provolava moje nativni SQL queries a vraci List<Bean> a normalne vyhazuje SQLException.

119
Funkce typicky vrací dvojici hodnot - výsledek a chybu (result, err). Takto jsou napsané interní funkce a většinou se tak píšou i všechny ostatní. Obojí člověk musí do nějaké proměnné přiřadit  (result, err := func() ). A když už  něco do proměnné přiřadí, musí ji v kódu použít (jinak chyba, hlídá to kompilátor). Existuje ale placeholder "_" kdy můžu explicitně říct, že chybu ignoruju (result, _  := func() ). Takto explicitně kompilátoru řeknu, že chybový výstup funkce mě nezajímá a nechci ho ošetřit vůbec. Další možnost je  chybu ošetřít v kódu v místě vzniku nebo "poslat dál" v návratovém kódu funkce. Vždyť je to v jádru podobný mechanismus jako checked exceptions v javě (akorát s primitivnější konstrukcí).

Reseni GO je jenom znpouzectnost a vynucovani pouziti Err je rovnak na ohybak.
V Jave taky muzes vracet errory primo z metody (tedy ne primo dve hodnoty ale bean s dvema atributy valu,err)
A mas to samy co v GO. Nikdo to nepouziva protoze je to k nicemu.

Vyjimky oddeluji business kod od error handlingu, kdyz potrebuju resit chybu inplace, vyresim ji inplace.
Nechat probublavat exception neni zadna lenost ale obri vyhoda.
Zrovna ted jsem psal jeden loader, ktery dostal na vstupu obri JSON s e seznamem itemu s atributy, ten v cyklu zoracovaval a behem kazdeho cyklu provadel obri hromadu checku, tahani tad z externiho API a cteni  z DB.
A LIBOVOLNA chyba v tom slozitem procezu znamenala proste ukonceni procesu a zalogovani log.error("Item XXX loading failed: " + e.getMessage()
V mym kodu nebyl ZADNY error handling, krome finalniho catch bloku v ramci for cyklu pro vsechny itemy.
Tohle samy v GO nebetycny oser s preposilanim chyby manulane vejs a vejs a s totalne zamaglajzovanym a necitelym kodem

V jave je oddelen business kod od error handlingu a to je velice dobre.
Kdyz chci resit business kod, rezim try blok, kdyz resim error handling, resim catch blok. Jednoduche, ucelne.

Java example:

Kód: [Vybrat]
try {
  a1 = action1();
  a2 = action2();
  a3 = action3();
  a4 = action4();
  a5 = action5();
} catch (Exception e) {
  log.error("Je to rozbity")
  System.exist();
}

To samy v GO je necitelny maglajz a kdyz se k tomu pridaji deferred, je bordel dokonaly:

Kód: [Vybrat]
a1,err := action1()
if (err != nil) {
 log.error("Je to rozbity");
 exit();
}
a2,err := action2()
if (err != nil) {
 log.error("Je to rozbity");
 exit();
}
a3,err := action3()
if (err != nil) {
 log.error("Je to rozbity");
 exit();
}
a4,err := action4()
if (err != nil) {
 log.error("Je to rozbity");
 exit();
}
a5,err := action5()
if (err != nil) {
 log.error("Je to rozbity");
 exit();
}


 

120
Kdo vi... ale ja bych se dneska treba nehrnul ani do gwt. Ani jsp a jsf bych dneska nevolil jako prvni.

Přesně tak. V GWT jsem sice nedělal, nicméně JSP(F) je hrozný sh*t. Pokud už bych chtěl dělat webový FE v Javě, tak jedině Wicket.

No to je presne jak jsem psal nahore, v jave je za leta hromada bordelu a je potreba vedet, jak to pouzivat.

Puvodni JSP se scriptlety je peklo.
Udelat ale web postaveny ja bootstrap+jQuery, kde v Jave servlet pripravi data, strci je jako Java objekty do response, v e vlastni JSP strance jenom predam tyto data jQuery a jinym javascript widgetum - elegantni a ciste reseni.
Nedavno jsem delal jednoduchy CRUD postaveny kolem https://datatables.net/

Puvodni JSF arcipeklo, JSF2 peklo. Kdyz ale to JSF nekdo umravni ve stylu https://www.primefaces.org/showcase/ , da se s tim velice pekne pracovat. Backend na Java SpringBoot. A porad se jedna o klasickou servlet/JSP aplikaci se session na serveru, coz ma hromadu vyhod, treba citlive data jsou neviditelne pro browser.

No a dneska bych se pro nove veci snazil udelat v Angularu, Java jenom na REST API backend

Stran: 1 ... 6 7 [8] 9 10 ... 16