OVH Community

Bienvenue sur votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres OVH Community.

Prise en main de LDP en PHP


#1

Bonjour,

Pour la plupart d'entre vous, la réponse est évidente, cependant elle ne l'est pas pour moi.
Je suis débutant en PHP et j'aimerais utiliser l'outil Logs Data Platform.

J'ai créé le compte d'essai LDP et j'ai réussi à envoyer un log grâce à une commande cURL, cependant je n'ai vraiment pas la moindre idée de comment envoyer des logs via mon code PHP. J'ai installé l'API OVH, j'ai réussi à faire le premier get (get('/dbaas/logs')) qui est fonctionnel, cependant, je ne sais pas comment envoyer des informations dans mon flux. Je sais qu'il y a une doc mais je ne sais pas la lire.

J'ai besoin d'une réponse précise si possible... un exemple ce serait encore mieux... Je suis bloqué depuis très longtemps.

Merci par avance pour votre aide et votre compréhension !


#2

Bonjour @JeanM8,

Merci pour l'intérêt que vous portez à Logs Data Platform.

En PHP, cette librairie fonctionne très bien :

https://github.com/bzikarsky/gelf-php

Pour l'installer localement, faites un :

$ composer require graylog2/gelf-php

Puis dans un fichier d'exemple, écrivez :

<?php

        require_once __DIR__ . '/vendor/autoload.php';

        $ssl_options = new Gelf\Transport\SslOptions();
        $transport = new Gelf\Transport\TcpTransport("graX.logs.ovh.com", 12202, $ssl_options);
        $publisher = new Gelf\Publisher();
        $publisher->addTransport($transport);
        $message = new Gelf\Message();
        $message->setShortMessage("It works in TCP!")
                ->setLevel(\Psr\Log\LogLevel::ALERT)
                ->setAdditional("X-OVH-TOKEN", "MY_STREAM_TOKEN")
                ->setFullMessage("There was a foo in bar")
                ->setFacility("local8")
        ;
        $publisher->publish($message);

Remplacez graX.logs.ovh.com par l'adresse de votre cluster de log et MY_STREAM_TOKEN par celui de votre flux de données.

Bien cordialement,


#3

Merci pour la rapidité et la qualité de votre réponse.

Le seul bémol est que je souhaite utiliser l'API d'OVH (dbaas/logs) mais peut-être que je me trompe complètement et qu'elle ne sert pas à ça ? Si je ne me trompe pas, auriez-vous sous la main un équivalent qui utilise l'API d'OVH ? Et si je me trompe, dans ce cas, sauriez-vous à quoi sert dbaas/logs svp ?


#4

L'API que vous citez n'est pas celle qui recevra vos logs.

Quelques clarifications :

  • https://api.ovh.com/console/#/dbaas/logs est l'api d'administration de votre compte Logs Data Platform. Elle permet donc, par exemple, de créer un flux de données ou un tableau de bord. Si celle-ci est utilisée par l'espace client OVH, vous pouvez l'appeler depuis n'importe quel programme.
    En PHP, cette librairie devrait vous aider : https://github.com/ovh/php-ovh
  • Logs Data Platform est un service de centralisation et d'analyse de logs. Celui-ci s'articule à travers des flux de données que vous pouvez créer à loisir sur l'espace client (et donc l'API /dbaas/logs). Un flux de données est identifié par un token: X-OVH-TOKEN, que vous devez préciser dans chacun de vos logs poussé sur le cluster auquel votre compte est associé. Ces deux informations (token et cluster) vous permettront d'indiquer à l'exemple donné ci-dessus comment acheminer les messages.
  • Pour l'aspect exploitation et analyse, nous mettons à disposition des interfaces web: Graylog, Kibana, Grafana, ... mais aussi deux API externes (Elasticsearch & Graylog), distinctes donc de (/dbaas/logs). Leurs adresses sont disponibles dans l'espace client ou communiquées par cet appel: https://api.ovh.com/console/#/dbaas/logs/%7BserviceName%7D/url#GET

Le quick start de 5 minutes https://docs.ovh.com/fr/logs-data-platform/quick-start/ devrait vous permettre de bien comprendre la plateforme. Si celle-ci n'est pas suffisament claire ou ne correspond pas à ce que vous cherchez, n'hésitez pas à nous le dire.


#5

Je comprends mieux. Vos informations sont très claires.
Merci d'avoir pris le temps de me formuler vos réponses.

Bonne journée