美文网首页
FastAPI结合ELK

FastAPI结合ELK

作者: 木火应 | 来源:发表于2023-03-09 02:03 被阅读0次
  1. 安装依赖:使用命令 pip install fastapi uvicorn elasticsearch logstash_async 安装FastAPI、Uvicorn、Elasticsearch和Logstash的Python客户端。

  2. 编写FastAPI应用:创建一个名为app.py的Python文件,编写一个简单的FastAPI应用,并且使用LogstashAsyncHandler来将日志发送到Logstash:

import logging
from fastapi import FastAPI
from logstash_async.handler import LogstashAsyncHandler
from elasticsearch import Elasticsearch

app = FastAPI()
logger = logging.getLogger("uvicorn")
logger.addHandler(LogstashAsyncHandler(host='logstash', port=5044))

@app.get("/")
def read_root():
    logger.info("Hello, world!")
    return {"Hello": "World"}

这个应用使用了LogstashAsyncHandler作为日志处理器,并且将日志发送到logstash:5044的地址上。可以根据实际情况修改Logstash的地址和端口。

  1. 编写Logstash配置文件:创建一个名为logstash.conf的配置文件,配置Logstash的输入、过滤器和输出。这里使用Elasticsearch作为输出,将日志存储在Elasticsearch中:
input {
  tcp {
    port => 5044
    codec => json
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  elasticsearch {
    hosts => ["elasticsearch:9200"]
  }
}

这个配置文件定义了一个TCP输入,将从logstash:5044的地址上接收日志。接收到的日志使用json解码器进行解码,然后存储到Elasticsearch中。

  1. 启动服务:使用以下命令启动FastAPI应用和Logstash服务:
# 启动FastAPI应用
uvicorn app:app --host 0.0.0.0 --port 8000

# 启动Logstash服务
logstash -f logstash.conf
  1. 查看日志:使用Kibana查看日志,打开Kibana的Web界面,创建一个名为logstash-*的索引模式,然后就可以查看FastAPI应用的日志了。

相关文章

网友评论

      本文标题:FastAPI结合ELK

      本文链接:https://www.haomeiwen.com/subject/zbkaldtx.html