1.介绍 小米开源的基于监控系统 open-falcon 和滴滴开源的日志采集工具 falcon-log-agent 作为一组黄金搭档,被互联网公司广泛使用
。开发控系 本文介绍怎么使用这组黄金搭档监控业务系统的基于日志。 open-falcon 使用 Golang 和 Python 开发,开发控系其中 Python 主要开发的基于是 Dashboard。 限于篇幅
,开发控系本文不准备介绍 open-falcon 的基于原理 ,仅介绍如何安装。开发控系 安装 open-falcon 之前,基于必须确保已成功安装 Redis 和 MySQL,开发控系因为 open-falcon 需要使用这两个存储组件
。模板下载基于 同时
,开发控系我们还需要确保已成功安装 Golang 和 Python。基于 需要注意的开发控系是 ,我们还需要确保已设置 $GOPATH 和 $GOROOT 环境变量(也可以使用默认值)。基于 安装 open-falcon : 下载源码和初始化数据库 falcon falcon # 初始化数据库 编译 # make all modules make all # make specified module make agent # pack all modules 在执行 make pack 之后,我们得到一个压缩包 open-falcon-vx.x.x.tar.gzmake pack 之后
,我们得到一个压缩包 open-falcon-vx.x.x.tar.gz 如果我们想要修改每个模块的配置文件 ,在执行 make pack 之前
,我们可以修改模块的 config/xxx.jsonmake pack 之前,我们可以修改模块的 config/xxx.json 需要注意的是亿华云,模块的配置文件中,MySQL 的账号和密码,默认分别是 root 和空,如果我们的 MySQL 账号和密码与之不同,我们需要编辑模块的配置文件进行修改 。root 和空,如果我们的 MySQL 账号和密码与之不同,我们需要编辑模块的配置文件进行修改。建站模板 部署 我们可以将得到的压缩包解压缩到指定目录进行部署
,例如: falcon 启动所有模块 falcon falcon start # 检查模块状态 安装仪表盘 在安装 Dashboard 之前
,我们需要先安装依赖项
: 复制# Centos virtualenv devel devel devel # Ubuntu virtualenv utils dev essential 安装 Dashboard
: falcon cd dashboard env 需要注意的是
,这里有一个 Bug ,会导致无法在仪表盘注册账号(点击按钮无反应) ,需要将 falcon api 的端口号 18080 改为 8080
。18080 改为 8080。 dashboard 在启动 Dashboard 之前,我们再检查一下 open-falcon 的 api 模块是否已启动: falcon 启动 Dashboard: dashboard 在浏览器中
,打开 http://127.0.0.1:8081
。免费模板http://127.0.0.1:8081。 falcon-log-agent 不同于 ELK
,它不是日志查看系统
,而是日志计算系统
。 它通过外挂式的日志采集方式,实时读取日志文件中的内容 ,实时计算,并将计算结果直接推送到 open-falcon。 它有几个限定条件,分别是要求日志必须包含时间
,不支持文件软链接
,源码下载日志时间必须有序 。 安装 falcon-log-agent : 构建 cd $_ 修改配置文件 agent # 基础配置 部署 agent make pack agent 启动 agent 检查 策略配置示例
: 本文以 open-falcon 的 agent 模块的日志为例,介绍怎么配置一个新策略
。 # 多个策略
,id 必须唯一 falcon 中的 metric(监控项) # 日志路径(支持动态路径) # 时间格式 # 匹配正则表达式 # 排除正则表达式 # 日志采集周期
,单位秒 falcon 中的 tag # 日志采集方式
,cnt、avg、sum、max、min # 精度 # 备注 重启 falcon-log-agent
,我们在 Dashboard 中的香港云服务器 Couters 列表中可以看到 agent send data count。agent send data count
。 我们介绍完 open-falcon 和 falcon-log-agent 的安装和启动
。 已实现自动采集日志并将计算数据上报到 open-falcon
,接下来
,我们介绍针对日志数据怎么配置监控 。 监控配置操作步骤: 告警条件支持函数如下 : all(#3) 最新 3 个点都满足阈值条件则报警。 max(#3) 最新 3 个点,最大值满足阈值条件则报警
。 min(#3) 最新 3 个点,最小值满足阈值条件则报警。 sum(#3) 最新 3 个点
,其和满足阈值条件则报警。 avg(#3) 最新 3 个点,其平均值满足阈值条件则报警。 diff(#3) 将最新 push 过来的点(被减数),与历史最新 3 个点(减数)相减,得到 3 个差,有一个差满足阈值条件则报警
。 pdiff(#3) 将最新 push 过来的点(被减数),与历史最新 3 个点(减数)相减
,得到 3 个差,再将 3 个差值分别除以减数,得到 3 个商值,有一个商值满足阈值条件则报警。 lookup(#2,3) 最新的 3 个点中有 2 个满足阈值条件则报警
。 本文我们介绍了基于 Go 语言开发的开源监控系统和日志采集工具的安装和使用方式。 建议读者朋友们动手操作一遍 ,需要注意的是,尽量严格按照本文的目录结构操作
。 https://github.com/open-falcon/falcon-plus https://github.com/open-falcon/dashboard https://github.com/didi/falcon-log-agent