系统上线之后会因为各种因素导致异常的出现并且我们往往都是后知后觉,都是在业务发生大量错误之后才发现,这样产品对客户的体验就很不好,对运维人员也会存在压力,所以我们需要一种手段能监控到系统爆发出来的问题,这就是我们今天需要总结的东西,监控,监控顾名思义就是监控什么东西,我们这里只要是一些指标,如CPU,内存,硬盘,数据库等还有一些系统内部运行的异常,open-falcon已经提供了一部分基础指标的监控,我们今天要整理的是系统稳定性即系统内部问题的监控,有些人可能会说了有日志记录啊,是的,但是人不能无时无刻在那里过滤日志吧,所以必须提供自动化的提醒功能。

open-falcon是小米开源的一款免费的监控软件,我们只需要配置好环境,安装好就可以使用,他有一些依赖如redis,mysql,go,python,配置好环境就可以安装了,安装按照官网的流程暗转就可以,基本不会出错,主要我们来讲讲他的配置吧,配置主要包含两部分,前端和后端,前端就是dashborad,这里面主要配置的东西是dashboard下rrd下面的config.py,修改对应的数据库用户名密码。后端主要是open-falcon的组件,所有的配置都在config目录下,需要配置的主要是数据库用户名密码。

配置好上面这些就应该可以运行了,下面我们把常用的命令总结一下:

以开发者模式启动
./env/bin/python wsgi.py
open http://127.0.0.1:8081 in your browser.

在生产环境启动
bash control start
open http://127.0.0.1:8081 in your browser.

停止dashboard运行
bash control stop

查看日志
bash control tail


./open-falcon start [start|stop|restart|check|monitor|reload] module

基本的使用整理完了,现在我们来说说怎么实现系统内部异常的监控,open-falcon提供了一个提供监控数据的接口

http://IP:1988/v1/push

通过HTTP调用该接口就可以上传监控指标数据了,具体的数据可是是一个json.

[{
	"endpoint": "endpoint-name",
	"metric": "metric-name",
	"timestamp": 1551163618657,
	"step": 30,
	"value": 0,
	"counterType": "GAUGE",
	"tags": "app=appname,info=this is a demo"
}]

上面的格式字段缺一不可。

剩下的就是在dashboard中的配置了,但是还有一个地方需要配置,就是open-falcon的模块judge,这个模块负责定时的进行数据抓取通知,默认时间是300秒,我们将时间改为60秒一分钟。