Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TalkingData/owl
Distributed monitoring system
https://github.com/TalkingData/owl
go-micro golang metrics metrics-visualization microservice monitor monitoring-server owl
Last synced: 6 days ago
JSON representation
Distributed monitoring system
- Host: GitHub
- URL: https://github.com/TalkingData/owl
- Owner: TalkingData
- License: apache-2.0
- Created: 2015-10-29T04:05:58.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2024-03-22T04:18:36.000Z (8 months ago)
- Last Synced: 2024-08-06T16:30:04.443Z (3 months ago)
- Topics: go-micro, golang, metrics, metrics-visualization, microservice, monitor, monitoring-server, owl
- Language: Go
- Homepage:
- Size: 9.58 MB
- Stars: 835
- Watchers: 86
- Forks: 251
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - TalkingData/owl - Distributed monitoring system (Go)
README
# OWL
[![Go Report Card](https://goreportcard.com/badge/github.com/TalkingData/owl)](https://goreportcard.com/report/github.com/TalkingData/owl)
[![License](https://img.shields.io/badge/LICENSE-Apache2.0-ff69b4.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) OWL 是由国内领先的第三方数据智能服务商 [TalkingData]() 开源的一款企业级分布式监控告警系统,目前由 Tech Operation Team 持续开发更新维护。
OWL 后台组件全部使用 [Go](https://golang.org/) 语言开发,Go 语言是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,它的并发机制可以充分利用多核,同平台一次编译可以到处运行,运维成本极低,更多的信息可以参考[官方文档](https://golang.org/doc/)。前端页面使用 [iView]() 开发,iView 同样是由 TalkingData 开源的一套基于 Vue.js 的 UI 组件库,主要服务于 PC 界面的中后台产品。
## Features
- Go语言开发,部署维护简单
- 分布式,支持多机房
- 多维的数据模型,类opentsdb
- 支持多种报警算法,支持多条件组合、时间范围、报警模板等
- 灵活的插件机制,支持任意语言编写,支持传参,自动同步到客户端
- 丰富的报警渠道,邮件、企业微信、短信、电话以及自定义脚本
- 原始数据永久存储,支持发送到 opentsdb、kairosdb、kafka
- 自带 web 管理界面以及强大的自定义图表功能能## Architecture
![owl](./arch.jpg)
## Demo
![demo](./docs/demo_1.png)
## Components
**agent**:安装在每台被监控机器上,用于采集监控数据
**netcollect**:通过 SNMP V2 采集网络设备的接口数据
**repeater**:接收 `agent` 发送过来的监控数据,并写入后端存储
**cfc**:维护客户端需要执行的插件列表,主机名 、ip地址更新以及采集到的指标列表
**controller**:从数据库加载告警策略,生成任务发送给 `inspector`,并且根据执行结果进行告警
**inspector**:从 `controller` 获取监控任务,根据 `tsdb` 中的数据进行计算,并将结果返回 `controller`
**api**:对外提供 http rest api接口,web 页面就是通过它来获取数据
**MySQL**:所有配置信息的持久化存储,包含主机信息,告警策略,主机组,人员等
**TSDB**:时序数据库(time seires database),用于存储采集到的监控数据
**frontend**:web 管理页面,可以方便的进行系统管理维护工作
## 前端源码地址
https://github.com/TalkingData/owl-frontend