apache vegyes

Üdv!

Bocsi, de nem találtam olyan témát ami nekem kell, máséba meg nem akarok bele rondítani, így legyen egy kics vegyes téma.

Először is egy log file kérdésem lenne. Az apache webszerverem 4. napja megy és egyes domain-ek log fájljai elérik a 26,43,46 és 136 MB méretet. SUSE-ban tudom úgy működik, hogy egy bizonyos méret után összetömöríti és újat nyit. Ez egy Ubuntu 6.10 szerver. Tapasztalatok? Mivel ilyen gyorsan nő, így sűrgőssé vált a dolog ezért fórumozok, de keresem a megoldást közben én is.

Előre is köszi az infót. (Van még kérdésem, de ez most a fontos :-) )

Hozzászólások

szia

logrotate nem jó neked ?

Celeron-M 1400Mhz, 768M, Debian SID, 2.6.18-rc7

cronba téve automatikus lesz ;>
bár eleve cron.daily ben van logrotate, szóval naponta fut
csak kérdés hogy a logrotate hogy van beállítva, mert ha csak hetenként
kell rotálni, akkor hiába fut naponta

példa meg eleve szokott lenni, mert sok szerver. apache, mysql, stbstb
tesz fel logrotate scriptet is.

Celeron-M 1400Mhz, 768M, Debian SID, 2.6.18-rc7

Logold egybe a vhostokat és a logformatot lődd be úgy,hogy valahova lerakja a hostnevet. Ha ez megvan, akkor logrotálj. Nálam egy külön script is van, ami az aktuális utolsó rotált logot átmásolja a napnak megfelelően és később a modlogan ebből hegeszti a napi statokat.

Ha mégiscsak külön szeretnéd, akkor meg kell mondani a logrotate-es scriptnek hogy miket forgasson és meddig.

O, akkor első problémám megoldódni látszik!

Másik problémám, hogy 1 GB RAM van a szerverben, és nagyon sokat cachel. Feltettem a mumin-t és összevetettem a hup -éval, és nekem nagyon sok a narancssárga, vagyik a cache (~770MB).
Ezzel mit lehet kezdeni esetleg? Vagy az nem baj ha cacheli a RAM-ot mert attól az azt jelenti, hogy annyi áll a rendelkezésre? Bocsi, ha hülye kérdés :-)

Másik problémám a statisztikában a Load average értelmezése. Mit jelent? Az átlag 0,5 az ábra szerint.
A szerveren egyszerre kb 60-120 apache session van.

KÖszi, közben megnéztem ezeket, meg ennek segítségével találtam még más oldalakat is.

Akkor jöhet a következő :)
Amikor ftp-n (vsftp) feltöltök egy html állományt akkor a speciális karakterek átkódolódnak, pl.: ékezetes betű, a bekarikázott c betű stb ....
De ha aztán megváltoztatom a forrásban akkor az apache megmutatja tendesen.

Apache-ban átállítottam az AddDefaultCharset direktívát UTF-8-ra, mert azt gondoltam ez a hiba, de sajna nem. a Speciális karakterek helyett mindig egy pontot látok fekete háttérrel mc-vel megnyitva. Biztos volt másnak is ilyen.

Látom rosszul fejeztem ki magam.
Van egy html file (pl index.html) mondjuk ezzel a tartalommal:

Helló világ!

+ köré a html kód persze :-)
Ezt a fájlt a srác a saját gépéről feltölti ftp kapcsolaton keresztül a tárhelyére. Aztán megnézi milyen lett (http://oldalam.hu/index.html) és az ékezetes metűk elkódolódtak.
Erre én csak úgy belenéztem a forrásba MC-vel puttyon keresztül és ezt látom:

Hell. vil.g!

Átírom kézzel erre: Helló világ! és akkor működik, de én nem akarok mindent átírni kézzel.

Nah, ennyi lenne a probléma.

Szia!
Beszéltem a sráccal, Dreanweaver-ben készülnek a HTML oldalak.
Gondolom van benne olyan funkció, hogy az ékezetes betűket alakítsa át enity-ként. Ha igen, akkor szerinted menni fog? Mert mint mondtam akkor kletkezik a baj amikor feltölti a html oldalakat ftp-n keresztül. Akkor minden ékezetes bebűt átkonvertál egy karakter "."-á.

bocsi, de most fontosabbá vált a logrotate probléma, ugyanis msot vettem észre, hogy az egyik log már 1,2 GB.
Próbáltam kézzel futtatni (sh /etc/cron.daily/logrotate), de semmi változás.
Így nézne ki
cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}

Ez a default, nem nyúltam hozzá. A vsftp szintúny nem megy, viszont ás fájlokat meg darabol (pl.: daemon.log; dmesg; kern.log; syslog)
Találtam egy leírást amiben csak ez a két sokr van (missingok postrotate) de semmi eredmény :((

Senki nem tud segíteni?
Most megpróbálkoztam ezzel:
logrotate -d /etc/logrotate.conf
ez beszédesebb lett, de minden apache logra ezt íera: "log does not need rotating"

módosítottam:
cat /etc/logrotate.d/apache2
/var/log/apache2/*.log {
daily
size=500k
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache2.pid ]; then
/etc/init.d/apache2 restart > /dev/null
fi
endscript
}

Most ilyeneket írt ki:

rotating pattern: /var/log/apache2/valami.net-access.log 102400 bytes (52 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/apache2/valami.net-access.log
log needs rotating
rotating log /var/log/apache2/valami.net-access.log, log->rotateCount is 52
previous log /var/log/apache2/valami.net-access.log.1 does not exist

renaming /var/log/apache2/valami.net-access.log.52.gz to /var/log/apache2/valami.net-access.log.53.gz (rotatecount 52, logstart 1, i 2),
[...]
renaming /var/log/apache2/valami.net-access.log.1.gz to /var/log/apache2/valami.net-access.log.2.gz (rotatecount 52, logstart 1, i 1),
renaming /var/log/apache2/valami.net-access.log.0.gz to /var/log/apache2/valami.net-access.log.1.gz (rotatecount 52, logstart 1, i 0),
renaming /var/log/apache2/valami.net-access.log to /var/log/apache2/valami.net-access.log.1
creating new log mode = 0640 uid = 0 gid = 4
removing old log /var/log/apache2/valami.net-access.log.53.gz

:((

Hali!
Nos a logrotate nem működik valami jól, egyelőre.
Ezért megpróbálom shell szkript-el.
Íme:
http://budacsik.atw.hu/logrotate.txt

A lényeg az lenne, hogy ez minden óra elsó percében lefut (1 * * * /ut/vonal.sh)
Minden log file-nak külön eltárolja a méretét byte-ban egy változóban, hogy megvizsgáljam nagyobb e 10MB-nál. ha igen, átnevezem, azt összetömörítem és így tovább az öszess log file-on, majd a végén apache restart, hogy újra létrehozza a log fájlokat üresen.

1. kérdés
Szerintetek ez a szkript így megfelelő? esetleg tud valaki egyszerűbbet ennél?

2. kérdés
Fut a webalizer is a cronban ami most óránként frissít, vagyis minden óra 0. percben (pl 3:00). Elviekben ha egy log file már nagyobb 10MB-nál és én az óra első percében (3:01) összetömörítem, akkor a következő órában (4:00) esedéks webalizer futása nem fogja beleszámolni az alatt az egy perc alatt történteket, mert csak az utolsó 59 percet látja a logban.
Ez sem nagyon jó így. Egy nap alatt ez már 24 perc veszteség. Hét nap alatt pedig már 2 óra 48 perc és had ne fokozzam.

3. csak a logrotate-et erőltessem megfelelő működésre??

Hali!
Követkető kérdésem, hogy hogyan lehet optimálisan beállítani az apache-ot, vagyis mi a megfelelő beállítás amit 1GB RAM-al lehet győzni.

Most így van:


<IfModule prefork.c>
#StartServers         5
StartServers         8
MinSpareServers      5
MaxSpareServers     10
MaxClients          200
MaxRequestsPerChild  0
</IfModule>


<IfModule worker.c>
StartServers         2
MaxClients         170
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

Első kérdés, hogy mit jelent pontosan a két direktíva, mert a MaxClients paraméter mindkettőnél szerepel. A fájlban benne van, hogy pl a MaxClients azt jelenti, hogy maximum hány server folyamatot enged inditani, de mi a kettő közti különbség? Mert eddig 172 volt a legnagyobb eredmény amit erre kaptam (ps ax | grep apache -c) most megemeltem a számot 200-ra és most max 205 az eredmény.

Tehát elég ha a IfModule prefork.c direktívában emelem a számot amíg látom, hogy bírja a szerver? Mikor van szerepe a másik direkívában lévő MaxClients paraméternek?
Amit ki kellene szolgálni napi maximum 40.000 látogató egyelőre.

köszi

Üdv!
Segítsetek...

A gondom röviden a következő.
debian:~#lynx localhost/ilias megy mint a kisangyal

c:\>start ht:-)tp:/{ip}/apache2-default/phpinfo.php mutatja hogy működik ahogy kell de

c:\>start {ht:-(tp:/{ip}/lias3 -ra csak magát a php állományt tölti le

szóval localhostról megy de kívülről nem! Valami hozzáférés féle lehet vagy mi...
mondjatok valami konfigot légyszi!

Köszi a segítséget
addigis keresgélek ;)

Kérdés:
How to tell apache? Hi this is php code!
vagy

 <? 
// php kód...
?> 

Nekem ez is kell !

 <?php  
//ez is php
?>