之前为了监控服务,部署了sentry,仅通过几行代码就将Flask的异常实时上传至sentry中,非常方便。但毕竟只是对异常进行了一个收集,其他粒度的信息则无法采集分析,这方面ELK以及新出的Elastic APM就非常合适,Elastic APM通过和sentry类似的低侵入性代码埋点方式,对Flask框架的服务进行性能监控,采集的指标非常详细,而且也能自定义指标。
官方支持使用docker方式部署,但我一直没有部署成功。但通过一个热心网友的项目成功部署了,部署的是单机版,如果像部署集群,也是支持的,甚至可以通过docker swam部署
>>> git clone https://github.com/deviantony/docker-elk.git
>>> cd docker-elk
# 目前最新版本是7.12.1,可以修改以下文件中的版本号安装7.12.1
>>> vim docker-stack.yml
>>> vim .env
# 默认部署ELK
>>> docker-compose up -d
# 部署ELK+APM
>>> docker-compose -f docker-compose.yml -f extensions/apm-server/apm-server-compose.yml up -d
登录
http://xx.xx.xx.xx:5601
默认账号密码是elastic、changeme
选择APM会出现引导界面
如果部署正常则APM Server status显示为如下状态
看一下系统状态