Links个Python的项目,无需像Go的项目那样去做编译。不过Go的项目是静态编译的,编译好了之后二进制无依赖,拿到其他机器也可以跑起来,Python的项目就需要安装一些依赖库了。
# 我们使用virtualenv来管理Python环境,yum安装需切到root账号# yum install -y python-virtualenv$ cd /path/to/links/$ virtualenv ./env
$ ./env/bin/pip install -r pip_requirements.txt
安装完依赖的lib之后就可以用control脚本启动了,log在var目录。不过启动之前要先把配置文件修改成相应配置。另外,监听的端口在gunicorn.conf中配置。
安装Nodatanodata用于检测监控数据的上报异常。nodata和实时报警judge模块协同工作,过程为: 配置了nodata的采集项超时未上报数据,nodata生成一条默认的模拟数据;用户配置相应的报警策略,收到mock数据就产生报警。采集项上报异常检测,作为judge模块的一个必要补充,能够使judge的实时报警功能更加可靠、完善。
服务部署服务部署,包括配置修改、启动服务、检验服务、停止服务等。这之前,需要将安装包解压到服务的部署目录下。
cd /opt/openfalcon/nodatamv cfg.example.json cfg.jsonvim cfg.json# 启动服务./control start# 校验服务,这里假定服务开启了6090的http监听端口。检验结果为ok表明服务正常启动。curl -s"127.0.0.1:6090/health"...# 停止服务./control stop
安装Aggregator
集群聚合模块。聚合某集群下的所有机器的某个指标的值,提供一种集群视角的监控体验。
服务部署服务部署,包括配置修改、启动服务、检验服务、停止服务等。这之前,需要将安装包解压到服务的部署目录下。
# 修改配置, 配置项含义见下文mv cfg.example.json cfg.jsonvim cfg.json# 启动服务./control start# 校验服务,看端口是否在监听ss -tln# 检查log./control tail
...# 停止服务./control stop
四、使用方法(转官网)
系统搭建好了,应该如何用起来,这节给大家逐步介绍一下。
有很多写好的服务监控可参考官网book:
教学视频:
?ss=1
查看监控数据我们说agent只要部署到机器上,并且配置好了heartbeat和transfer就自动采集数据了,我们就可以去dashboard上面搜索监控数据查看了。dashboard是个web项目,浏览器访问之。左侧输入endpoint搜索,endpoint是什么?应该用什么搜索?对于agent采集的数据,endpoint都是机器名,去目标机器上执行hostname,看到的输出就是endpoint,拿着hostname去搜索。
搜索到了吧?嗯,选中前面的复选框,点击“查看counter列表”,可以列出隶属于这个endpoint的counter,counter是什么?counter=${metric}/sorted(${tags})
假如我们要查看cpu.idle,在counter搜索框中输入cpu并回车。看到cpu.idle了吧,点击,会看到一个新页面,图表中就是这个机器的cpu.idle的近一小时数据了,想看更长时间的?右上角有个小三角,展开菜单,可以选择更长的时间跨度
如何配置报警策略上节我们已经了解到如何查看监控数据了,如果数据达到阈值,比如cpu.idle太小的时候,我们应该如何配置告警呢?
配置报警接收人falcon的报警接收人不是一个具体的手机号,也不是一个具体的邮箱,因为手机号、邮箱都是容易发生变化的,如果变化了去修改所有相关配置那就太麻烦了。我们把用户的联系信息维护在一个叫UIC(新用户推荐使用Go版本的UIC,即:falcon-fe项目)的系统里,以后如果要修改手机号、邮箱,只要在UIC中修改一次即可。报警接收人也不是单个的人,而是一个组(UIC中称为Team),比如falcon这个系统的任何组件出问题了,都应该发报警给falcon的运维和开发人员,发给falcon这个团队,这样一来,新员工入职只要加入falcon这个Team即可;员工离职,只要从falcon这个Team删掉即可。