Tip: de Magento1 log opschonen

Regelmatig merken onze klanten op dat hun Magento1 webshop na verloop van tijd trager wordt. Het is een algemeen bekend fenomeen voor wat betreft Magento1 webshops. Soms ligt het simpelweg aan de groei in producten of storeviews of aan stijgende bezoekersaantallen en is het probleem op te lossen door het verhogen van de beschikbare bronnen (CPU/geheugen) voor een server of het toepassen van caching-methoden (Redis / Elasticsearch / Lesti_FPC).

Soms treffen wij ook installaties aan waarbij de logging van Magento1 zodanig is opgelopen dat sommige log-tabellen exorbitant veel records bevatten. Hierdoor loopt de belasting op de MySQL/MariaDB server op wat uiteindelijk ook kan resulteren in een tragere webshop.

Met name wanneer u een drukke webshop heeft of wanneer u een shop heeft die al geruime tijd in de lucht is, is het interessant om eens te kijken hoeveel ruimte de logging nu precies in beslag neemt.

Magento1 heeft hiervoor standaard een commandline (CLI) tool aan boord. Het betreft een op de CLI uitvoerbaar script, “log.php“. Deze kunt u vinden in de volgende map:

/var/hpwsites/<u_gebruiker>/website/html/webroot/shell

De basis

Wanneer u naar deze map navigeert en het commando “php log.php” uitvoert dan krijgt u het volgende te zien:

[EL7/SRV] [root@d-hpwtest shell]$] php log.php
Usage:  php -f log.php -- [options]
        php -f log.php -- clean --days 1

  clean             Clean Logs
  --days      Save log, days. (Minimum 1 day, if defined - ignoring system value)
  status            Display statistics per log tables
  help              This help

De getallen

Wanneer u met het commando “php log.php status” de status opvraagt dan zal de tool u informeren over de hoeveelheid records en de ruimte die deze records in beslag nemen:

[EL7/SRV] [root@d-hpwtest shell]$] php log.php status
+-----------------------------------+------------+------------+------------+
|Table Name                         | Rows       | Data Size  | Index Size |
+-----------------------------------+------------+------------+------------+
|log_customer                       | 0          | 16.38Kb    | 16.38Kb    |
|log_visitor                        | 117.5k     | 36.38Mb    | 0 b        |
|log_visitor_info                   | 71.2k      | 46.38Mb    | 0 b        |
|log_url                            | 0          | 16.38Kb    | 32.77Kb    |
|log_url_info                       | 0          | 16.38Kb    | 0 b        |
|log_quote                          | 120k       | 26.38Mb    | 0 b        |
|report_viewed_product_index        | 0          | 16.38Kb    | 81.92Kb    |
|report_compared_product_index      | 0          | 16.38Kb    | 81.92Kb    |
|report_event                       | 0          | 16.38Kb    | 81.92Kb    |
|catalog_compare_item               | 0          | 16.38Kb    | 81.92Kb    |
+-----------------------------------+------------+------------+------------+
|Total                              | 309k       | 109.14Mb   | 376.83Kb   |
+-----------------------------------+------------+------------+------------+

Er zijn vaak een aantal “grootverbruikers”. Onderstaand zullen we er 4 kort uitlichten:

  • log_visitor – informatie over de sessies van de bezoekers
  • log_visitor_info – informatie over de instellingen van de bezoekers
  • log_url – bezochte pagina’s voor elke bezoeker
  • log_url_info – informatie over deze bezochte pagina’s

Het opschonen

U kunt met het commando “php log.php –clean –days 30” de history tot 30 dagen bewaren. Alles ouder dan 30 dagen zal opgeschoond worden. Uiteraard kunt u de periode naar wens aanpassen. Voert het commando uit zonder het aantal dagen op te geven dan zal er 1 dag bewaard worden. Vanzelfsprekend neemt een langere periode meer ruimte in beslag.

[EL7/SRV] [root@d-hpwtest shell]$] php log.php --clean --days 30
Log cleaned

Voorkomen

In de instelling van Magento kunt u automatisch opschonen voor logging inschakelen. Wanneer u op de Magento Admin bent ingelogd dan gaat u in het bovenste menu naar “System” -> “Configuration“. Vervolgens zoekt u in het menu links “Advanced” -> “System” op. Hier ziet u een kopje “Log“:

Magento1 log settings

Hier kunt u automatisch opschonen inschakelen (“Enable Log Cleaning: Yes“) en het aantal dagen (“Save Log, Days“) bepalen. Eventuele foutmeldingen bij het opschonen kunt u naar uw e-mailadres laten sturen (“Error Email Recipient“).