debian

如何在Debian上使用Swagger进行API监控与日志分析

小樊
42
2025-05-06 02:13:50
栏目: 智能运维

在Debian上使用Swagger进行API监控与日志分析,通常涉及两个主要方面:一是使用Swagger UI来暴露和测试API,二是使用工具来监控和分析API的使用情况。以下是详细的步骤和建议:

使用Swagger UI进行API文档和测试

  1. 安装Node.js和npm
sudo apt update
sudo apt install -y nodejs npm
  1. 安装Nest.js CLI
sudo npm install -g @nestjs/cli
  1. 创建一个新的Nest.js项目
nest new my-project
cd my-project
  1. 安装Swagger UI依赖
npm install @nestjs/swagger swagger-ui-express
  1. 配置Swagger

编辑 src/main.ts 文件,添加以下配置:

import { NestFactory } from '@nestjs/core';
import { ExpressAdapter } from '@nestjs/platform-express';
import { AppModule } from './app.module';
import * as express from 'express';
import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, new ExpressAdapter());
  app.use(express.json()); // for parsing application/json
  app.use(express.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

  const options = new DocumentBuilder()
    .setTitle('My Project')
    .setDescription('The My Project API description')
    .setVersion('1.0')
    .addTag('test')
    .build();

  const document = SwaggerModule.createDocument(app, options);
  SwaggerModule.setup('api-doc', app, document);

  await app.listen(3000);
}

bootstrap();
  1. 运行项目
npm run start:dev
  1. 访问Swagger UI

项目启动后,你可以通过访问以下URL来查看Swagger UI:

http://localhost:3000/api-doc/#/

使用APIDetector进行API监控

  1. 安装Prerequisites

确保系统上安装了Python 3.x和pip。

sudo apt install -y python3 python3-pip
  1. 安装APIDetector
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
pip3 install -r requirements.txt
  1. 运行APIDetector
python3 apidetector.py -d example.com
python3 apidetector.py -i input_file.txt
python3 apidetector.py -i input_file.txt -o output_file.txt
python3 apidetector.py -i input_file.txt -t 20
python3 apidetector.py -m -d example.com
python3 apidetector.py -q -d example.com
python3 apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"

日志分析

对于日志分析,你可以使用ELK(Elasticsearch, Logstash, Kibana)堆栈,这是日志分析的常用工具集。虽然它不是专门为Swagger设计的,但可以用来分析通过Swagger UI访问API时产生的日志。

  1. 安装ELK堆栈
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo apt-get install logstash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install kibana
  1. 配置Logstash

编辑 /etc/logstash/conf.d/logstash.conf 文件,配置输入、过滤和输出。

  1. 运行Logstash
sudo systemctl start logstash
sudo systemctl enable logstash
  1. 访问Kibana
sudo systemctl start kibana
sudo systemctl enable kibana

访问 http://localhost:5601 来配置和查看Kibana仪表板。

通过以上步骤,你可以在Debian上使用Swagger进行API文档和测试,并使用APIDetector进行API监控,同时结合ELK堆栈进行日志分析。

0
看了该问题的人还看了