Rejtélyes leállások

 ( NoMan | 2018. július 1., vasárnap - 14:57 )

Sziasztok,

Egy olyan érdekes jelenség feltárásában kérném a segítségeteket, ami egyszerűen számomra rejtély és most már elfogytam az ötletekből is.

Adott egy VPS, azon egy gentoo (friss telepítés), azon néhány alap szolgáltatás: levelezés, web, adatbázis. Eddig rendben is lenne... viszont időről-időre - jellemzően a hajnali órákban - elérhetetlenné válik a szerver, vagy annak bizonyos szolgáltatásai. A webről szoktak jelezni, hogy megint nem volt elérhető, illetve van egy automatizált script, aki percenként fut ezeknél a leállásoknál ez a script mindig küld egy levelet, hogy a mysql szerver nem volt elérhető.

Nekem kicsit olyan szagú, mintha felmenne a load, vagy a fene tudja. Nem tudom, de nem a VPS-ben sejtem a hiba okát, hanem valami bent lesz ezzel a telepítésbe. De nem jövök rá, hogy mi lehet. A dolgot az is nehezíti, hogy a logokban nem találok semmit, ami egy kicsit is közelebb vinne a megoldáshoz.

Biztos vagyok benne, hogy van valami tök jó megoldás arra, hogy egy ilyen misztikus rejtélyt az ember megoldjon, de nem tudom, hogy micsoda. Tudnátok segíteni valami olyan ötlettel, hogy rájöjjek, támadás miatt, vagy egy belső script szabadul el és az nyírja ki a szervert, vagy valami más probléma lesz?

Maga a leállás nem szokott tovább tartani 10 percnél, ezt a percenként futó script leveleiből tudom (adatbázis elérési gondjával) és teljesen véletlenszerű időpontokba jön, tehát nem köthető semmilyen belső ütemezett futáshoz. Illetve van, hogy 10 perc a kiesés, vagy hogy 2 perc, tehát ez sem szabályos.

Lehetséges, hogy a syslog-ng beállítás lett elrontva és nem logolja le a problémát? Már ez is felmerült bennem, mint lehetőség.

Húúú kicsit csapongtam, elnézést érte.

Előre is köszönöm a segítséget és az építő jellegű hozzászólásokat.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Ennyibol passzolom. Tippek:
/etc/rc.local vegere:
echo `date` boot >>/home/username/wtf.log

Illetve screenben/tmuxban:
while true
do
echo `date` data >>/home/username/wtf.log
top -n 1 >>/home/username/wtf.log
ps aux >>/home/username/wtf.log
sleep 20
done

Nyilvan lehet kulturaltabban is..

--
If you get a good wife, you'll become happy; if you get a bad one, you'll become a philosopher. -Socrates

echo `date` boot >>/home/username/wtf.log
A last erre nem jó? Mondjuk last | grep boot?

De, jo erre is, eleg sokat hasznaltam (munkaido nyilvantartast relative egyszeruen ossze tudtam rakni belole, amikor ez kellett).

Viszont debugra szerintem egyszerubb, ha van egy logod, amiben minden relevans esemeny benne van, mint ha tobb helyrol kell osszevadaszni. "Na, itt valami lyuk van a logban! Ja, hogy a last szerint reboot volt kozben.."
Bar igazabol mindegy..

--
When you tear out a man's tongue, you are not proving him a liar, you're only telling the world that you fear what he might say. -George R.R. Martin

Nem lehet, hogy a VPS-t inditjak ujra alattad?
Ez vagy miattad van (valami tulszaladt, pl. cpu usage), vagy pedig masok miatt a te vps-edet is ujrainditjak, amikor fogynak ki a resource-bol.

Amit en csinalnek:
http-n elkuldenek egy kis szkripttel (curl pl.) 10masodpercenkent a vmstat es az uptime kimenetet.

Pl.

DATE=`date '+%Y-%m-%dT%H:%M:%S.%3NZ'`
UPTIME=`uptime`
VMSTAT=`vmstat`
curl -i -XPUT http://whoisthemostawesomeguy.com:8080/stat/vam \
-H 'Content-type: application/json' \
-d '{
"date": "$DATE",
"vmstat": "$VMSTAT",
"uptime": "$UPTIME"
}'

Persze kell hozza egy logolo remote szerver. De pl. Franko is itt reklamozta a sajatjat.

Update:
Ehh, _Franko_ forumtarsnak a logolo szervere meg nagyon nincs kesz. Csak szamokat lehet elmenteni benne:(
Egyebkent itt a forumja: https://hup.hu/node/159002
Meg a weboldala: https://iothub.live/

Pedig jo lett volna, hogyha freeform szoveget is el lehetne menteni, es ezt lista/tablazat formajaban lehetne nezni. De ez csak szamok, es ido/ertek grafikont tud kirajzolni. Ez ilyen borhuto homersekletmero sznoboknak... :-\

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

A VPS-t biztosan nem indítják újra alatta, mert az uptime nem nullázódik, illetve a nem tud a MySQL-hez csatlakozni levelek megérkeznek ezekről az időszakokról is. Tehát maga a VPS megy, ez biztos.

Viszont mivel a gép megy, így jó ötlet, hogy logoljam a benti eseményeket. Ezt meg is csinálom, csak nem távoli helyre logolom, hanem a gépre. Ha kiesik a "leállás" időszakról a log, de szerintem nem fog, akkor már az is elmond valamit.

hat akkor ahogy hunludvig is linkelte: autoupdate vagy tarhely betelik.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Nem teljesen ugyan az a helyzet, mint a linkelt topiknál. Nálam kézi beavatkozást nem igényel a dolog. Magától visszaáll minden néhány - legrosszabb esetben 10 - percen belül.

Fájlrendszer nem telik meg ez biztos, sem a tárhely, sem pedig inode szinten. Autoupdate megint csak nem lehet, mert gentoo rendszer van alatta, gentoo pedig az ég világon semmit nem csinál magától.

a tavoli logolas (akar olyan puruttya modon is, ahogy irtam) pl. ki lehet szurni, hogy megallitjak-e vagy sem a gepet.

Franko szervere hasznalhato erre (de jo lenne, hogyha nemcsak borhutore talalta volna ki:).

Szoval kivesszuk a gepbol az uptime-ot unix idoben, es akkor mar lehet felkuldeni.
Pl.

BOOTTIME=`stat -c %Z /proc/`
TIME=`date +%s`
UPTIME=$((TIME-BOOTTIME))
curl -i https://api.iothub.live/measurement/create/tcuWmg7ZJC3ncxP1fppNwg/uptime/$UPTIME
sleep 10
curl -i https://api.iothub.live/measurement/create/tcuWmg7ZJC3ncxP1fppNwg/time/$((TIME-10))

Nem tudom vegulis mennyire megbizhato _Franko_ szervere, mert most pl. 502 Proxy error-t ad vissza. De aztan megjavult:)

Lefuttatod periodikusan, es ha szep linearis, akkor nincs benne megakadas.
A periodikus futtatas barmi lehet, systemd, crontab, screen.

Csak a legpuruttyabbat irom ide, hogy legyen min szornyulkodni:

screen

for i in `seq 1 10000`; do
echo -e "\n----\n\nTime flies: $i (*10sec)";
BOOTTIME=`stat -c %Z /proc/`
TIME=`date +%s`
UPTIME=$((TIME-BOOTTIME))
curl -i https://api.iothub.live/measurement/create/tcuWmg7ZJC3ncxP1fppNwg/uptime/$UPTIME
sleep 10
curl -i https://api.iothub.live/measurement/create/tcuWmg7ZJC3ncxP1fppNwg/time/$((TIME-10))
sleep 10
done

^A, D

Itt lehet nezni elvileg: https://iothub.live/measurement/a3031ba0-7e30-11e8-b86b-b96ddd9578e0/time

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

Saját logolás írás helyett collectd vagy munin?

mert az uptime nem nullázódik

Magyarul eltűnik az éterbe, nem is tud futni rajta semmi, de "egyszercsak" minden megy tovább, leállás és újraindítás nélkül?

Mert akkor az lesz, amit zeller írt lentebb: mentéshez/snapshothoz megfagyasztják a vm-et.

Magyarul eltűnik az éterbe, nem is tud futni rajta semmi, de "egyszercsak" minden megy tovább, leállás és újraindítás nélkül?

Elvileg igen... gyakorlatilag nem tudom, mert mindig olyan lehetetlen pillanatban csinálja, hogy nem érek géphez, vagy mire felnyitom a laptopot, már minden rendben van

teljesen véletlenszerű időpillanatokban jelentkezik a hiba, semmi rendszer nincs benne... ma hajnalba például nem volt akadás

egyébként ellenőriztem a webes felületen, nincs automatikus snapshot készítés engedélyezve a VPS-re

vagy mire felnyitom a laptopot, már minden rendben van

ps ax kimenetét tessék elrakni; ha a pidek változatlanok, akkor nyilván máshogy nem lehet.

egyébként ellenőriztem a webes felületen, nincs automatikus snapshot készítés engedélyezve a VPS-re

Attól még lehet, hogy rendszerszinten megteszik, és közös a volume a háttérben (ami nyilván fasság, de attól még lehetséges), ergó mindenkit megállítanak, amíg az adott volume-mal foglalkoznak.

De a kérdést simán fel lehet tenni nekik, hogy ezt most wtf...

Tessék feature request-et írni ilyenkor... és akkor nem véletlenül találok rá... :D

hova?;)

Jo lenne a bejegyzeseket latni, ami felment, es torolni belole.(lista)

Mert par szamot az elejen elcsesztem, es most a grafikon total el van tolodva(elejen boszme kiugras, aztan leesik. nem latni semmit).
https://iothub.live/measurement/a3031ba0-7e30-11e8-b86b-b96ddd9578e0/uptime

van valami rate limit, 10secnel gyakrabban nem lehet ra tolni. Csak ez nem ugy derul ki, hogy hibauzenet, hanem csak tolt-tolt es egyszercsak timeoutol.

De a freeform tenyleg jol jonne...

lehetne ket adathalmot kivonni egymasbol es ugy megjeleniteni. De ez nem biztos (most a time-uptime -ra gondoltam, de lehet hulyeseg)

A listanezett jol jonne, mikor kapta a szerver, adat.

Es jo lenne ha random ra lehetne zoomolni a grafikonra (a problemas teruletre).
Vagy pedig ugy megjeleniteni (mashol igy mutatjak nekem), hogy egy grafikonod van, es a grafikon felett vannak elore definialt gombok: 1h,2h,3h,6h,1d,1w,1m

Meg valahogy a grafikonon allitani a simitast, mert pl itt van ez:
https://iothub.live/measurement/a3031ba0-7e30-11e8-b86b-b96ddd9578e0/time

Latszik, hogy a laptopot 23:20-kor kikapcsoltam, es 6:40-kor bekapcsoltam. (mi, ez GMT?)
Szerintem pont ilyenre lenne a kerdezonek szuksege btw.

Csak a sok simitas miatt alig latszik, hogy hol "akad" az adat. Vagy pontokat is megjelenithetne. Nem tudom ez a highchart mire kepes, de eleg lassu. (napi betoltodik, a tobbi percekig toltodik).

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"hova?;)"

Hát ide. Vagy Facebook és Twitter link van, más nincs kinn az oldalon. :)

"van valami rate limit, 10secnel gyakrabban nem lehet ra tolni."

Elvileg nincs limitálás, viszont tegnap volt nyolc és fél kilenc között hálózati hiba, leginkább lassulások és csomagvesztések. Ha akkor volt, akkor ez volt az oka.

Egyébként öt percenként átlagol (min-max-avg-med), szóval lehet ugyan küldeni sűrűbben, de el fog tűnni és csak az öt perces adat marad meg, annál sűrűbb mérés elveszik.

"Jo lenne a bejegyzeseket latni, ami felment, es torolni belole."

Az utolsó néhány bejegyzést már gondoltam listázni, törölni eléggé körülményes, azt majd valamikor egyszer talán implementálom.

"De a freeform tenyleg jol jonne..."

Sima text mező, aztán táblázat? :)

"lehetne ket adathalmot kivonni egymasbol es ugy megjeleniteni."

Van ilyen is, de egyelőre csak próbálgatás szintjén:
https://eu.iothub.live/range.jsp?node1=4a9f0280-00cd-11e7-832f-2b6139351b1b&node2=14164380-997b-11e7-85ac-9591c57c2076

"Es jo lenne ha random ra lehetne zoomolni a grafikonra (a problemas teruletre)."

Ez is egy "majd egyszer" feature. Igen.

"Latszik, hogy a laptopot 23:20-kor kikapcsoltam, es 6:40-kor bekapcsoltam. (mi, ez GMT?)"

Igen, GMT a megjelenítés.

> Egyébként öt percenként átlagol (min-max-avg-med), szóval lehet ugyan küldeni sűrűbben, de el fog tűnni és csak az öt perces adat marad meg, annál sűrűbb mérés elveszik.

Hat ez lehet dealbreaker, ennel a topiknal. Mivel a leallasok, mintha 5 perc alatt meg is oldodnanak...

> Sima text mező, aztán táblázat? :)

:)

Egy lista, ahol van egy fejlec (mikor, ki (ip cim)) kuldte, es le lehet nyitni, ami vagy szam (most), vagy pedig freeform, pl. ps aux kimenete. Vagy netstat -tulpn kimenet.
Vagy smartctl | grep "Current Drive Temperature" kimenete.

> Ez is egy "majd egyszer" feature. Igen.

Ha zoom nem is, a predef gombok (1h,3h,6h,1d,1w,1m) jol jonnenek.

Szerintem a szerverednek a mostani topik egy teljesen valid usecase lenne.

Ahelyett, hogy atlagolna, inkabb minden felhasznalonak lenne egy 5MB-os tarhelye, oszt' oda azt tolt amit akar. Ha a tul sok adat miatt atlagolnal...

De egyebkent az atlagolasnal pont elvesz amikor kinyitjak a borhutod ajtajat...

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"Hat ez lehet dealbreaker, ennel a topiknal. Mivel a leallasok, mintha 5 perc alatt meg is oldodnanak..."

Mindenre nem akarok lőni... ez egy szimpla vizualizáció olyan adatokra, amelyekre jó az öt perces átlagolás, ilyenből azért nagyon sok akad...

"Egy lista, ahol van egy fejlec (mikor, ki (ip cim)) kuldte, es le lehet nyitni, ami vagy szam (most), vagy pedig freeform, pl. ps aux kimenete. Vagy netstat -tulpn kimenet."

Egyelőre nem érzem úgy, hogy ilyet szeretnék szolgáltatni.

"Ha zoom nem is, a predef gombok (1h,3h,6h,1d,1w,1m) jol jonnenek."

Lehet, felírtam. :)

"Ahelyett, hogy atlagolna, inkabb minden felhasznalonak lenne egy 5MB-os tarhelye, oszt' oda azt tolt amit akar. Ha a tul sok adat miatt atlagolnal..."

A kvótázás az szívás, többet visz el az ellenőrzése, mint amennyit hoz.

"De egyebkent az atlagolasnal pont elvesz amikor kinyitjak a borhutod ajtajat..."

A min-max-avg-med értékekből azért látszana. De nem ez a cél, hogy kinyitották-e a borhűtőt öt másodpercre. Majd egyszer lesznek események is. Meg riasztások, meg ilyesmi. De egyelőre nincs rá időm sajnos, így annyit tud, amennyire szükségem van.

> Mindenre nem akarok lőni... ez egy szimpla vizualizáció olyan adatokra, amelyekre jó az öt perces átlagolás, ilyenből azért nagyon sok akad...

Hat jo. A 6 oras laptop kikapcsolasa latszik a grafikonon, de az 1 oras kikapcsolas nem.
Eddig 613 (*2) csomagot kuldtem osszesen, szoval meg adat is lenne.

https://iothub.live/measurement/a3031ba0-7e30-11e8-b86b-b96ddd9578e0/time

Szoval ez a szerver, erre a topikban nyitott problema ellenorzesere alkalmatlan. Sajnos.

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"Hat jo. A 6 oras laptop kikapcsolasa latszik a grafikonon, de az 1 oras kikapcsolas nem."

Én a grafikonon azért látom, hogy nem volt beküldve adat (GMT):
2018-07-02:
20:35 - 21:05
22:20 - 23:15
23:20 - 24:00
2018-07-01:
00:00 - 06:40
07:20 - 07:45
08:40 - 10:15
10:13 - xxx

A grafikon interpolál egy illeszkedő görbével a hiányzó adatok esetén, mert így jobban követhető a változás, de nem látszik rajta, hogy ott nem volt adat.

"Szoval ez a szerver, erre a topikban nyitott problema ellenorzesere alkalmatlan. Sajnos."

Nem erre a célra készült.

Arra a célra is készül egy másik oldalam (http://statusguru.info/), részben azonos adatstruktúrán, de az még ennyire sincs kész... :)

Mentéshez "fagyasztják" a gépet?

+1

Sanszos hogy hibernaljak a gepet, azert hogy a mentes idejere a (virtualis) hdd konzisztens maradjon (ne legyen fs korrupt a mentes)

erre rá fogok kérdezni a szolgáltatónál... de ha tényleg fagyasztás van a háttérbe, akkor nagyon ki fogok akadni

Van swap-od beállítva?
Ha elfogy a ramból akkor elkezd lövöldözni az OS, ha service-ek állnak le akkor azok nyilván helyreállnak.

igen van 1G, de nem nagyon szokta használni a gép, mert a fizikai bőven elég szokott lenni...

de reggeltől elkezdtem monitorozni a gépet, ha a ram fogy el, akkor az most ki fog derülni

Ha van swap, amit általában nem használsz, akkor nemigen tud így megállni a gép RAM elfogyás miatt. Ugyanis először durván elkezd swappelni, közben még életjeleket fog adni a gép (pl. pingre mindenképpen válaszol), és 1GB swap elég sokára (percben mérhető idő alatt) telik csak meg.

Ha valami nagyon low-end szolgaltato nagyon low-end csomagja, akkor lehet, hogy a hostok kozt dobaljak a gepet, hogy a dragabbaknal menjen a terheleselosztas.

--
If you get a good wife, you'll become happy; if you get a bad one, you'll become a philosopher. -Socrates

Hát nem mondanám low-end szolgáltatónak, mert az ezit, vagy más néven cloud.hu és abból is a pro csomag. Nem gondolnám, hogy a háttérbe szórakoznának.

Sub - Mert érdekes!

+1

--
Always three green!

Szia!

Ha ezt az egész konfigot egy saját/otthoni/másik irodai/stb. gépre tükrözöd is reprózható a hiba?

most, hogy próbálok mindent menteni, amit csak lehet, most nem csinálja a szerver... lehet valaki azt akarja, hogy erre a problémára soha ne jöjjek rá

de azért nem adom fel, mentem, amíg van szabad hely a /var/log mappába, most már nem csak a szolgáltatás minősége, de a kíváncsiság miatt is ki kell derítenem, hogy hol a hiba

helyzet jelentés...

a mai napon is előfordult a "leállás"... azonnal reagálva beléptem ssh a gépre, de kb 5 perc volt mire promtot kaptam, beléptem a VPS admin felületén, ami azonnal reagált, ahol az alábbi volt látható: load: 0.08, cpu terhelés: 1%, memória: 750M/2G

egyszóval a gépnél ezt semmi nem indokolta, így azonnal hívtam a szolgáltatót, hogy még időbe legyek... a hd-s emberke, csak annyit látott, hogy náluk semmi probléma nem lehet, semmilyen extra terhelést nem lát, ami ezt kéne indokolja, így továbbította a mérnök kollégáknak

viszont részben jó hír, hogy három VPS-t is bérlek tőlük és kettőnél jelentkezett a hiba, a harmadiknál nem... ez a kettő ugyan azon a node-on van, ahogy a hd-s kolléga ez jelezte nekem... így szinte biztos, hogy a hiba az Ő készülékükbe lesz

ha megtudok valamit, akkor leírom ide, hátha valaki okul az esetből

Szép fejlődés:
nem a VPS-ben sejtem a hiba okát
szinte biztos, hogy a hiba az Ő készülékükbe lesz
nem belül volt probléma, hanem a host géppel
:)

Nem értem, hogy miért nem nyitottál a topik nyitása helyett (előtt) egy hibajegyet. Egy-két napig még értem, hogy keresi az ember magában a hibát, de utána? Még akkor is, ha nálad van a hiba, lehet, hogy tudtak volna esetleg mondani valamit, ami segített volna.

a költöztetés megoldotta a rejtélyt... tehát nem belül volt probléma, hanem a host géppel

mióta áttettek azóta hibátlan minden

köszönöm a segítségeket, azért hasznos tudással lettem gazdagabb