Înapoi la blogToate tutorialele Metin2
Tutoriale Metin2 · Lecția 73 din 99

Cum monitorizezi canalele și procesele unui server Metin2, în fiecare zi

2 noiembrie 2026 6 min de citit

Serverul tău nu e un singur program. E o mică echipă de programe care lucrează împreună: unul vorbește cu baza de date, unul verifică parolele, altele țin hărțile pe fiecare canal. Dacă unul dintre ele cade, jucătorii văd ciudățenii: un canal care nu se deschide, o hartă unde nu poți intra, teleportări care eșuează. În această lecție îți faci o rutină scurtă, zilnică, prin care vezi dacă toată echipa e la post.

Pe scurt: află din CONFIG câte procese și ce porturi ar trebui să ai, verifică cu ps că rulează toate, cu sockstat că ascultă porturile lor și citește ultimele rânduri din syserr. Durează două minute.

Cuvinte pe care le vei întâlni

CuvântCe înseamnă
ProcesUn program care rulează acum pe server.
PIDNumărul procesului. Îl folosești ca să-l recunoști.
CoreUn proces game care ține o parte din hărți. Un canal are de obicei mai multe core-uri.
Port„Ușa” pe care un proces primește conexiuni, de exemplu 13000.
syslog / syserrJurnalul normal și jurnalul de erori al fiecărui proces.

Pasul 1: Află ce ar trebui să ruleze

Nu poți spune că lipsește ceva dacă nu știi ce ar trebui să fie acolo. Folderul jocului are câte un subfolder pentru fiecare proces. În pachetul pe care l-am verificat, structura arată așa:

FolderCe ePort (din CONFIG)
dbLegătura cu MySQL15000 (din db/conf.txt)
authVerifică login-ul11000
channel1/firstCanalul 1, primul core13000
channel1/game1Canalul 1, al doilea core13001
channel1/game2Canalul 1, al treilea core13002
channel2/first …Canalul 2 (la fel, cu alte porturi)13010 …
game99Un core separat pentru hărți speciale13099

Fiecare core are în CONFIG un rând MAP_ALLOW cu hărțile pe care le ține. Dacă un core cade, doar hărțile lui devin inaccesibile, iar restul canalului pare să meargă. De aceea problemele de felul „nu pot intra în Valea Orcilor, dar în sat merge” vin des de la un singur core căzut.

Ca să vezi porturile tale reale:

sh
cd /usr/metin2
grep -H "^PORT" */CONFIG */*/CONFIG

Calea /usr/metin2 e cea din pachetul verificat; la tine poate fi /usr/home/game sau alta. grep -H afișează și numele fișierului lângă fiecare port.

Scrie rezultatul pe o foaie: „4 canale × 3 core-uri + game99 + auth + db = 15 procese”. Asta e lista ta de control.

Pasul 2: Verifică procesele

sh
ps auxww | grep -E "[.]/(game|db|auth)"

Bucată cu bucată:

  • ps auxww afișează toate procesele, cu linia de comandă completă;
  • grep -E "..." păstrează doar rândurile care conțin ./game, ./db sau ./auth, adică felul în care le pornesc scripturile run.sh din pachetul verificat.

Ca să le numeri:

sh
ps auxww | grep -cE "[.]/(game|db|auth)"

Ce ar trebui să vezi: numărul de pe foaia ta (de exemplu 15). Dacă vezi mai puțin, lipsește ceva. Dacă vezi mai mult, ai pornit ceva de două ori.

Coloana a doua din ps e PID-ul. Ca să afli de cât timp rulează un proces:

sh
ps -o pid,etime,command -p 1234

etime arată timpul de la pornire. Dacă un core are 5 minute, iar celelalte 3 zile, înseamnă că acel core a căzut și a fost repornit. Merită să afli de ce.

Pasul 3: Verifică porturile

Un proces poate exista, dar să nu primească jucători (de exemplu, blocat la pornire). Verifici dacă ascultă:

sh
sockstat -4 -l

Pe FreeBSD, sockstat arată cine ascultă pe ce port. -4 înseamnă conexiuni IPv4, -l doar porturile care „ascultă”.

Pentru o verificare rapidă a porturilor de pe foaia ta:

sh
for p in 15000 11000 13000 13001 13002 13099; do
  sockstat -4 -l -p $p | grep -q ":$p" && echo "$p OK" || echo "$p LIPSESTE"
done

Pune în listă porturile tale. Scriptul afișează OK sau LIPSESTE pentru fiecare.

Pasul 4: Citește jurnalele

Fiecare proces își scrie jurnalele în folderul lui: db/syserr, auth/syserr, channel1/first/syserr și așa mai departe.

sh
ls -lh */syserr */*/syserr
tail -n 20 channel1/first/syserr

Prima comandă arată mărimea tuturor fișierelor de erori. Unul care a crescut brusc e primul pe care îl citești. A doua afișează ultimele 20 de rânduri dintr-unul.

Nu te speria de orice rând din syserr. Unele pachete scriu acolo și avertismente fără importanță. Ce contează e ce apare nou și ce se repetă. Pentru erorile de pornire, vezi Server Metin2 nu pornește?

Uită-te și după fișiere game.core sau fișiere noi în folderele cores. Ele apar când un proces se prăbușește (crash) și pot fi mari. Nu le șterge înainte să afli cauza.

Pasul 5: Fă din asta o rutină

CândCe verifici
Zilnic, 2 minuteNumărul de procese, porturile, syserr care a crescut, spațiul pe disc (df -h)
După fiecare restartToate cele de mai sus + intri în joc pe fiecare canal
SăptămânalMărimea jurnalelor (du -sh */syslog */*/syslog) și fișierele core

Atenție la clear.sh: în pachetul verificat, acest script șterge syslog, syserr, fișierele core și jurnalele tuturor proceselor. E util ca să faci curat, dar dacă îl rulezi înainte să citești erorile, pierzi exact indiciile de care ai nevoie. Copiază întâi jurnalele interesante.

Greșeli des întâlnite

Ce veziCe înseamnăCe faci
Un canal nu apare în listă la loginCore-ul first al canalului e căzutCitește syserr din folderul lui
O hartă nu se încarcă, restul mergeCore-ul care ține harta e căzutCaută harta în MAP_ALLOW, verifică acel core
Procese dublatestart.sh rulat de două oriOprește tot cu close.sh, apoi pornește o dată
db lipseșteNimic nu se mai salveazăTratează ca urgență: anunță jucătorii, citește db/syserr

Întrebări frecvente

Pot reporni doar un core căzut?

Uneori da, din folderul lui, cu sh run.sh. Dar mai întâi citește-i syserr: dacă a căzut din cauza unei erori, va cădea din nou. Dacă nu ești sigur, fă un restart complet la ora de mentenanță.

Există un program care să mă anunțe singur?

Da, se poate face cu un script programat (cron) care rulează verificările de mai sus și îți trimite un mesaj. Învață întâi verificarea manuală. Pe un server găzduit, întreabă și firma de hosting ce monitorizare oferă.

De ce are syslog câțiva GB?

Pentru că jocul scrie mult. Un disc plin oprește MySQL și jocul. Arhivează sau curăță jurnalele vechi la mentenanță, după ce le-ai citit.

Ce urmează

Când totul rulează, dar jucătorii se plâng de lag, treci la lecția De unde vine lagul: CPU, RAM, disc. Toate lecțiile sunt în lista tutorialelor Metin2.

Server Metin2 gata de joc

Găzduire Metin2 în România, cu instalare de serverfiles, bază de date MySQL și protecție Anti-DDoS inclusă.

DiscordWhatsApp