在Debian上使用Swagger进行API监控与日志分析,通常涉及两个主要方面:一是使用Swagger UI来暴露和测试API,二是使用工具来监控和分析API的使用情况。以下是详细的步骤和建议:
sudo apt update
sudo apt install -y nodejs npm
sudo npm install -g @nestjs/cli
nest new my-project
cd my-project
npm install @nestjs/swagger swagger-ui-express
编辑 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();
npm run start:dev
项目启动后,你可以通过访问以下URL来查看Swagger UI:
http://localhost:3000/api-doc/#/
确保系统上安装了Python 3.x和pip。
sudo apt install -y python3 python3-pip
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
pip3 install -r requirements.txt
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时产生的日志。
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
编辑 /etc/logstash/conf.d/logstash.conf
文件,配置输入、过滤和输出。
sudo systemctl start logstash
sudo systemctl enable logstash
sudo systemctl start kibana
sudo systemctl enable kibana
访问 http://localhost:5601
来配置和查看Kibana仪表板。
通过以上步骤,你可以在Debian上使用Swagger进行API文档和测试,并使用APIDetector进行API监控,同时结合ELK堆栈进行日志分析。