Skip to main content
French version below

How to query varnish logs from a Log analytics workspace

When using a varnish cache for a project in Azure, we would like to have an easy access to the varnish logs directly from the Azure portal, this can be done by creating a Custom Log containing the formatted varnish logs.

In this article we will see how to:

  • Configure formatted logging in varnish
  • Configure a log rotation for the varnish logs
  • Configure a Custom Log in an Azure Log Analytics to easily access these logs

Prerequisites: – An Azure account – A varnish deployed in Azure

1. Configure formatted logging in varnish

To configure our own format for the varnish logs, we used varnishncsa and used its format option by creating a file /etc/varnish/format-varnishncsa:

{
    "X-Forwarded-For" : "%{X-Forwarded-For}i",
    "timestamp" : "%t",
    "Host" : "%h",
    "HTTP-Method" : "%m",
    "URL" : "%U%q",
    "HTTP-response-code" : "%s",
    "Hit-Miss" : "%{Varnish:hitmiss}x",
    "handling" : "%{Varnish:handling}x",
    "Time-To-Serve-Request" : "%D",
    "X-Magento-Tags-Pattern" : "%{X-Magento-Tags-Pattern}i"
}

You can change the json to include whichever info best suits your needs. Once this file created, you can launch varnishncsa as a deamon or as a service, we chose to use it as a deamon with the command:

sudo varnishncsa -a -w /var/log/varnish/varnispid -f /etc/varnish/format-varnishncsa

2. Configure a log rotation for the varnish logs

You can create a file /etc/logrotate.d/varnish:

{
    "X-Forwarded-For" : "%{X-Forwarded-For}i",
    "timestamp" : "%t",
    "Host" : "%h",
    "HTTP-Method" : "%m",
    "URL" : "%U%q",
    "HTTP-response-code" : "%s",
    "Hit-Miss" : "%{Varnish:hitmiss}x",
    "handling" : "%{Varnish:handling}x",
    "Time-To-Serve-Request" : "%D",
    "X-Magento-Tags-Pattern" : "%{X-Magento-Tags-Pattern}i"
}

This will rotate the varnish logs daily for a week.

3. Configure a Custom Log in an Azure Log Analytics to easily access these logs

The final step is to configure these logs to appear in a log analytics, for that you need to navigate to the custom logs blade in a log analytics:

Click on Add custom log :

Then you have to follow the steps starting with uploading a sample of the logs. Once the custom logs are created you can query them directly from the log analytics workspace:

Comment faire remonter les logs varnish dans un Log analytics workspace

Lorsque nous utilisons un cache varnish pour un projet dans Azure, nous souhaitons avoir accès aux logs varnish directement depuis le portail Azure. Nous pouvons le faire directement depuis un log analytics workspace en créant un Custom log.

Dans cet article nous allons voir comment :

  • Configurer les logs varnish au bon format
  • Configurer une rotation des logs varnish
  • Configurer un Custom Log dans un Azure Log Analytics

Prérequis: – Un compte Azure – Un service varnish déployé dans Azure

1. Configurer les logs varnish au bon format

Pour configurer le format souhaité aux logs varnish, nous allons utiliser varnishncsa en prenant avantage de l’option -f format de varnishncsa. Nous devons d’abord créer le fichier /etc/varnish/format-varnishncsa :

{
    "X-Forwarded-For" : "%{X-Forwarded-For}i",
    "timestamp" : "%t",
    "Host" : "%h",
    "HTTP-Method" : "%m",
    "URL" : "%U%q",
    "HTTP-response-code" : "%s",
    "Hit-Miss" : "%{Varnish:hitmiss}x",
    "handling" : "%{Varnish:handling}x",
    "Time-To-Serve-Request" : "%D",
    "X-Magento-Tags-Pattern" : "%{X-Magento-Tags-Pattern}i"
}

Vous pouvez modifier le json pour inclure les infos qui vous conviennent le mieux. Une fois ce fichier créé, nous pouvons lancer varnishncsa en tant que daemon ou en tant que service, nous allons le lancer en tant que daemon avec la commande suivante :

sudo varnishncsa -a -w /var/log/varnish/varnispid -f /etc/varnish/format-varnishncsa

2. Configurer une rotation des logs varnish

Nous pouvons créer le fichier /etc/logrotate.d/varnish :

{
    "X-Forwarded-For" : "%{X-Forwarded-For}i",
    "timestamp" : "%t",
    "Host" : "%h",
    "HTTP-Method" : "%m",
    "URL" : "%U%q",
    "HTTP-response-code" : "%s",
    "Hit-Miss" : "%{Varnish:hitmiss}x",
    "handling" : "%{Varnish:handling}x",
    "Time-To-Serve-Request" : "%D",
    "X-Magento-Tags-Pattern" : "%{X-Magento-Tags-Pattern}i"
}

Ce fichier aura pour effet de faire une rotation quotidienne des logs nouvellement créés et les garder pendant une semaine.

3. Configurer un Custom Log dans un Azure Log Analytics

La dernière étape est de configurer les logs pour qu’ils apparaissent dans un log analytics, pour cela nous allons naviguer via l’onglet custom logs dans un log analytics workspace :

Cliquer sur Add custom log :

Ensuite, il faut suivre les étapes en commençant par uploader un exemple de log. Une fois les custom logs créés nous pouvons les voir remonter directement depuis le log analytics workspace :

Close Menu

OÙ NOUS TROUVER


PARIS

Bâtiment Crisco Duo
7 avenue de la Cristallerie
92310 Sèvres

NANTES

Centre d’affaires Euptouyou
4 rue Edith Piaf Immeuble Asturia C
44800 Saint-Herblain

TÉLÉPHONE

01 46 48 26 00

EMAIL

[email protected]