Oprava chyby logwatch v Plesku

S přechodem na rok 2011 se v Plesku objevila chyba při generování statistik zatížení serveru. Reporty o chybě jsou odesílané emailem na adresu správce serveru, a obsahují tento text:

ERROR: WDExc
Error occurred while processing database query: 'MySQL query failed:
  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near
  'group by service_id, type, round(unix_timestamp(time) / 200, 0) having count(val' at line 3'
 
0: wdlib.php:1088
        wd__db_query(string 'select service_id, type, unix_timestamp(min(time)) as min_time, unix_timestamp(max(time)) as max_time, avg(value) as avg
                                        from module_watchdog_sys_stat where
                                        group by service_id, type, round(unix_timestamp(time) / 200, 0) having count(value) > 1 limit 10000;')
1: pack-sysstats:63
        pack_statistics(integer '200', boolean  false, boolean  false)
2: pack-sysstats:44


Řešení je buď vypnout generování statistik (které na VPS založených na virtualizaci Virtuozzo nemají prakticky žádnou vypovídací hodnotu o zatížení VPS), nebo aplikovat opravu kterou poskytuje dodavatel Plesku firma Parallels. Pro Plesk verze 9 a vyšší je k dispozici mikro-update - postup aplikace je popsán v speciálním příspěvku na stránkách kb.parallels.com/en/9294 (jde o anglický návod, ale s obrázky)

Pro Plesk 8.6 není k mikro-update dispozici, problém se řeší přepsáním 2 souborů z archivu  Plesk86_update-logwatch.tar.gz do následujících adresářů:
  • pack-sysstats se zkopíruje do /usr/local/psa/libexec/modules/watchdog/cp/

  • stats-graph.php se zkopíruje do /usr/local/psa/admin/htdocs/modules/watchdog/

Poté je třeba nastavit vlastníka root a skupinu psadm a práva 744 na soubor pack-sysstats:

 chown root:psaadm /usr/local/psa/libexec/modules/watchdog/cp/pack-sysstats
 chmod 744 /usr/local/psa/libexec/modules/watchdog/cp/pack-sys

Pro soubor stats-graph.php není nutné nastavovat speciální práva/vlastníka