Zo haal je serverlogs op met Kinsta API

ict

[ad_1]

Logs zijn erg handig voor het oplossen van problemen op je WordPress sites. Bij Kinsta heb je toegang tot drie soorten logs: foutlogs, kinsta-cache-perf (cacheprestaties) logs en toegangslogs.

Toegang tot logs via het MyKinsta dashboard is eenvoudig: navigeer naar WordPress sites, selecteer de gewenste site en klik op de Logs tab om de Log viewer pagina te openen.

Nu, met de introductie van de Kinsta API, kun je programmatisch toegang krijgen tot deze logs. Als agentschap kun je aangepaste interfaces maken voor toegang tot logs, terwijl grotere teams gebruik kunnen maken van tools zoals Slack om een aangepaste Slackbot te maken. Deze bot kan communiceren met de API via Slash commando’s, waardoor het ophalen en beheren van logs gestroomlijnd wordt.

Deze handleiding gaat in op het endpoint voor logs dat beschikbaar is via de API, de gebruiksmogelijkheden ervan en hoe je naadloos toegang kunt krijgen tot deze logs binnen een Slack omgeving.

De Kinsta API

De Kinsta API is een krachtige tool  waarmee je programmatisch kunt communiceren met Kinsta diensten zoals gehoste WordPress sites. Het kan helpen bij het automatiseren van verschillende taken met betrekking tot WordPress beheer, waaronder het maken van sites, het ophalen van site informatie, het opvragen van de status van een site, het bladeren door en herstellen van backups, het ophalen van site logs, en nog veel meer.

Om de API van Kinsta te gebruiken, moet je een account hebben met ten minste één WordPress site, applicatie of database in MyKinsta. Je moet ook een API sleutel genereren om je te authenticeren en toegang te krijgen tot je account.

Om een API sleutel te genereren:

  1. Ga naar je MyKinsta dashboard.
  2. Navigeer naar de pagina API-sleutels (Je naam > Bedrijfsinstellingen > API-sleutels).
  3. Klik op Maak Maak API-sleutel.
  4. Kies een vervaldatum of stel een aangepaste begindatum in en het aantal uren dat de sleutel moet verlopen.
  5. Geef de sleutel een unieke naam.
  6. Klik op Genereer.

Nadat je een API sleutel hebt gemaakt, moet je deze kopiëren en ergens veilig opslaan (het gebruik van een wachtwoordmanager wordt aanbevolen), omdat dit de enige keer is dat de sleutel wordt getoond binnen MyKinsta. Je kunt meerdere API sleutels genereren, die worden weergegeven op de pagina API-sleutels. Als je een API sleutel wilt intrekken, klik dan op de knop Intrekken naast de naam en vervaldatum.

Serverlogs openen met Kinsta API

Om toegang te krijgen tot logs met de Kinsta API, moet je de site omgeving ID, het type log dat je wilt ophalen (bijv. error, access, of kinsta-cache-perf), en het aantal logregels dat je wilt ophalen opgeven.

Laten we eens beter kijken naar dit endpoint en hem dan integreren in een Slackbot, zodat je de Slash commando’s van Slack kunt gebruiken voor interactie met de Kinsta API.

Je kunt het omgevings-ID van je site programmatisch verkrijgen via het get site environment endpoint, dat details over de omgeving van je site retourneert, inclusief het ID:

{
  "site": {
    "environments": [
      {
        "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
        "name": "first-site",
        "display_name": "First site",
        "is_blocked": false,
        "id_edge_cache": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
        "cdn_cache_id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
        "is_premium": false,
        "domains": [
          {
            "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
            "name": "example.com",
            "type": "live"
          }
        ],
        "primaryDomain": {
          "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
          "name": "example.com",
          "type": "live"
        },
        "ssh_connection": {
          "ssh_port": "808080",
          "ssh_ip": {
            "external_ip": "1xx.1xx.1xx.1xx"
          }
        },
        "container_info": {
          "id": "54fb80af-576c-4fdc-ba4f-b596c83f15a1",
          "php_engine_version": "php8.0"
        }
      }
    ]
  }
}

Zodra je de omgevings-ID van je site hebt, kun je een GET verzoek sturen naar /sites/environments/{env_id}/logs?file_name=error&lines=100:

curl -i -X GET \
  'https://api.kinsta.com/v2/sites/environments/{env_id}/logs?file_name=access&lines=100' \
  -H 'Authorization: Bearer '

Dit zal een String terugsturen met het opgegeven aantal logregels:

{
    "environment": {
        "container_info": {
            "logs": "mysite.kinsta.cloud ::1 [07/Dec/2023:00:02:01 +0000] HEAD \"/wp-cron.php?server_triggered_cronjob\" HTTP/2.0 200 \"-\" \"curl/7.68.0\" - \"/wp-cron.php\" - - 230 0.017 0.018\nmysite.kinsta.cloud ::1 [07/Dec/2023:00:17:01 +0000] HEAD \"/wp-cron.php?server_triggered_cronjob\" HTTP/2.0 200 \"-\" \"curl/7.68.0\" - \"/wp-cron.php\" - - 230 0.139 0.139\nmysite.kinsta.cloud ::1 [07/Dec/2023:00:32:01 +0000] HEAD \"/wp-cron.php?server_triggered_cronjob\" HTTP/2.0 200 \"-\" \"curl/7.68.0\" - \"/wp-cron.php\" - - 230 0.016 0.016\nmysite.kinsta.cloud ::1 [07/Dec/2023:00:47:01 +0000] HEAD \"/wp-cron.php?server_triggered_cronjob\" HTTP/2.0 200 \"-\" \"curl/7.68.0\" - \"/wp-cron.php\" - - 230 0.015 0.015\n"
        }
    }
}

Je kunt dan de uitvoer opmaken om elke regel te scheiden met de n regeleinde. Met JavaScript kun je bijvoorbeeld de methode split() gebruiken:

const logsData = {
    "environment": {
        "container_info": {
            "logs": "string"
        }
    }
};

const logsString = logsData.environment.container_info.logs;

// Splitting the logs string into an array of log entries based on the newline character '\n'
const logEntries = logsString.split('\n');

console.log(logEntries);

Slack Slash commando’s gebruiken voor het ophalen van serverlogs met Kinsta API

In een recente gids werd het proces uitgelegd om een Slackbot te maken met behulp van Node.js en de Kinsta API voor sitebeheer. De gids beschreef het maken van een Slackbot en het tot stand brengen van interactie met de Kinsta API via een Node.js applicatie die gehost wordt op ons Applicatie Hosting platform.

Voor deze gids maken we een nieuw Slack Slash commando om de log endpoints van je site op te halen. Om dit te volgen, moet je eerst de bovenstaande gids doornemen om de Node.js applicatie te begrijpen en hoe je je persoonlijke Slackbot configureert.

Eenmaal klaar, kun je doorgaan met het klonen van ons startproject met Git:

  1. Navigeer naar de map van je voorkeur voor het opslaan van je code en voer het volgende commando uit in je terminal:
    git clone -b tutorial-1 --single-branch https://github.com/olawanlejoel/SlackBot-KinstaAPI.git
  2. Ga naar de projectmap en installeer alle vereiste dependencies:
    cd SlackBot-KinstaAPI
    npm install

[ad_2]

https://kinsta.com/nl/blog/serverlogs-api/