一套开源监控系统,插件化搞定日志、指标和告警

35 阅读5分钟

项目简介

一款集 监控点监控、日志监控、数据可视化、监控告警 于一体的分布式开源监控系统。

  • 采用 插件化架构,常用监控需求通过插件实现,无需开发
  • 插件支持 一键部署、移除、启用、禁用
  • 提供 丰富的图表类型与多维数据展示,满足多样化可视化需求

演示地址(Windows 访问需代理):open.xrkmonitor.com

代理客户端:从源码目录下载 AccessDaemon.rar,解压后以管理员权限运行(自动将域名解析至本地回环)

核心优势(相比其他开源监控系统)

1、插件即服务:无需编码,控制台安装插件即可使用

2、内置分布式日志系统:高性能日志上报、过滤、染色、字段扩展,控制台支持多维日志检索

3、自动化配置:Agent 部署后自动注册,视图自动绑定上报机器

4、多用户支持:管理员可创建子账号,分配不同权限

5、双角色友好:

  • 运维/产品人员:直接使用现成插件快速搭建监控
  • 开发者:提供 API 接口,支持深度定制

6、内网友好:支持完全内网部署,插件仍可从云端下载;Agent 支持 UDP 代理,可调用云端告警等服务

特色功能推荐

IP 地址库:自动将 IP 转为物理地址,生成地域分布图(如插件 monitor_apache_log

插件市场:监控能力组件化,持续扩展中

分布式日志系统:支持频率限制、日志染色、自定义字段;控制台支持关键字/排除词/时间/机器等多条件过滤

灵活视图机制:图表可按服务器、监控点自由组合,支持在图上直接设置告警阈值

多通道告警:邮件、短信、微信、PC 客户端等,开箱即用

实时表格插件:横向对比分布式集群中各节点指标,支持排序

部署方式

1、集中部署

所有服务部署于单机,适合个人或小团队

2、分布式部署

服务分散于多台机器,适用于中小型企业大规模监控场景

Docker 部署指南(以宿主机 IP 192.168.128.210 为例)

1、拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/xrkmonitor/release:latest

2、启动容器

docker run -idt \  -p27000:27000/udp \  -p38080:38080/udp \  -p28080:28080/udp \  -p80:80 \  --env xrk_http_port=80 \  -v /data/xrkmonitor/docker_mysql:/var/lib/mysql \  -v /data/xrkmonitor/docker_slog:/home/mtreport/slog \  --env xrk_host_ip=192.168.128.210 \  <镜像ID>

参数说明:

端口映射:日志(27000)、监控点(38080)、接入服务(28080)、Web 控制台(80)

挂载目录:MySQL 数据、日志存储

xrk_host_ip:必须设为宿主机真实 IP

3、启动服务

docker attach <容器ID>cd /home/mtreport./start_docker.sh

4、访问控制台

浏览器打开:http://192.168.128.210

默认账号密码:sadmin / sadmin

5、停止服务

/home/mtreport/stop_docker.sh

注意:升级时若 MySQL 表结构变更,需更换或清空挂载的 MySQL 目录,避免兼容问题。

Agent 部署说明

  • Agent 包位于容器内:/home/mtreport/slog_mtreport_client.tar.gz
  • 拷贝至目标机器,解压后修改 SERVER_MASTER 为宿主机 IP
  • 若在宿主机部署 Agent,需指定 AGENT_CLIENT_IP 为容器网卡 IP
  • 不建议在容器内部署插件,易与宿主机冲突

源码编译(支持离线部署)

方式一:使用 Docker 编译镜像

# 拉取编译镜像docker pull registry.cn-hangzhou.aliyuncs.com/xrkmonitor/compile:latest# 启动并进入容器docker run -idt <镜像ID>docker attach <容器ID># 编译cd /home/xrkmonitor/openmake# 生成部署包cd tools_sh./make_all.sh  # 生成 slog_all.tar.gz

建议挂载宿主机目录进行二次开发,避免代码丢失

方式二:本地编译

git clone https://gitee.com/xrkmonitorcom/open.gitcd openmakecd tools_sh./make_all.sh  # 生成 slog_all.tar.gz# 安装tar -zxvf slog_all.tar.gz -C /home/mtreportcd /home/mtreport./local_install.sh# 卸载./uninstall_xrkmonitor.sh

OpenSUSE 用户可直接使用源码中的 slog_all.tar.gz 离线包

技术栈

  • 后端存储:Apache + MySQL(监控数据、配置信息)
  • 前端框架:DWZ(Web 控制台)
  • 可视化图表:ECharts
  • CGI 引擎:ClearSilver(支持 FastCGI 部署)
  • 网络通信:C++ Sockets 开源框架
  • API 支持语言:C/C++、PHP、Linux Shell、JavaScript(更多语言开发中)

插件市场(部分示例)

插件名称语言功能
linux_baseC/C++监控 CPU、内存、磁盘、网络等系统资源
monitor_apache_logC/C++分析 Apache 日志,统计流量、访客地域
linux_file_monitorShell监控文件/目录增删改
monitor_websiteJavaScript前端网站监控(访客、异常)
open_source_starC/C++聚合 Gitee/GitHub 粉丝数据
common_logC/C++通用日志监控,构建分布式日志系统

common_log 演示视频:www.bilibili.com/video/BV18i…

项目源码

项目演示:open.xrkmonitor.com

在线文档:xrkmonitor.com/monitor/dmt…

源码仓库:gitee.com/xrkmonitorc…

关键词

#开源监控#插件化架构#分布式日志#数据可视化#监控告警#一键部署#IP地址库#自动化注册#多协议支持#内网可用

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!