158 Star 1.1K Fork 322

GVPxrkmonitor / xrkmonitor

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

项目简介

集监控点监控、日志监控、数据可视化及监控告警为一体的分布式开源监控系统。
通过插件方式支持常用监控需求,插件可自由选择且支持一键部署、移除、启用、禁用等操作。
提供丰富的图表和多种数据类型,满足对数据可视化的需要。
在线演示版地址:http://open.xrkmonitor.com

相比其它开源监控系统优势

  1. 支持插件功能, 监控插件无需开发,自由选择监控插件,控制台安装即可使用
  2. 集成告警功能, 支持多种告警方式
  3. 集成分布式日志系统功能, 无需任何开发即可打造高性能分布式日志系统
  4. 支持多种部署方式
    a.集中部署(全部服务部署在一台机器,适合个人或者小团队开发者)
    b.分布式部署(分布式部署在多台机器,适合小中型企业大规模监控需求)
  5. 支持自动化配置(机器部署agent后自动注册到监控系统无需在控制台配置、视图根据上报自动绑定相关上报机器)
  6. 支持多用户访问(子账号由管理员账号在控制台添加)
  7. 同时面向开发者和运维产品人员,开发者可以使用API开发接口很方便的定制自己的监控需求,运维和产品人员可以直接部署使用现有插件完成监控需求

特色功能推荐

  1. IP地址库: 支持通过IP地址上报时将IP地址转为物理地址,相同物理地址归并展示,一个监控API 即可轻松生成监控数据的物理地址分布图,插件示例:monitor_apache_log


  2. 监控插件市场: 让监控成为可以复用的组件,无需开发一键安装即可使用,更多监控插件持续开发中


  3. 分布式日志系统: 支持大规模系统日志上报,日志上报支持频率限制、日志染色、自定义字段等高级功能,控制台日志查看支持按关键字、排除关键字、上报时间、上报机器等方式过滤日志,从茫茫日志中轻松找到您需要的日志

  4. 视图机制: 监控图表支持视图定制模式,视图可按上报服务器、监控点随意组合,轻松定制您需要的监控视图,并可在监控图表上直接设置告警值

  5. 告警集成: 集成告警功能, 支持邮件、短信、微信、PC客户端等告警方式,告警功能无需开发直接可用

  6. 内网部署: 监控系统可以部署在内网隔离环境,插件仍可以从云端下载部署,agent 支持 udp 代理功能,可通过 agent 的代理使用云端提供的服务,如监控告警服务。

  7. 插件实时表格,主要用于实时展示监控指标在分布式机群不同机器间的对比排序

docker 方式部署

以下假设宿主机的IP 地址为:192.168.128.210, 以最新版本 latest作为示例说明 docker 部署方法

  1. 拉取 docker 镜像: docker pull registry.cn-hangzhou.aliyuncs.com/xrkmonitor/release:latest
  2. 通过镜像启动容器:docker images 查看镜像ID,假设为:93297f01d06b
    启动容器:
    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 93297f01d06b
    参数说明:
    -p27000:27000/udp -p38080:38080/udp -p28080:28080/udp -p80:80 日志、监控点、接入服务等的端口映射
    --env xrk_http_port=80 web 控制台的映射端口(可以使用非80端口映射容器80端口,相关问题可以查看在线文档的 docker 部署部分)
    -v /data/xrkmonitor/docker_mysql:/var/lib/mysql, 挂载宿主机目录作为mysql数据库文件目录
    -v /data/xrkmonitor/docker_slog:/home/mtreport/slog,挂载日志目录
    --env xrk_host_ip=192.168.128.210 宿主机的ip地址, 根据实际情况传递
  3. docker attach 进入容器,进入目录 /home/mtreport, 执行 ./start_docker.sh 启动监控系统服务
  4. 在浏览器端使用宿主机IP访问控制台: http://192.168.128.210,控制台默认账号密码为:sadmin/sadmin
  5. 如需停止服务可执行 : /home/mtreport/stop_docker.sh 脚本

可以使用 ps -elf |grep slog 命令查看运行的进程,使用 ps -elf |grep xrk_ 查看运行的内置插件

特别注意:由于当前暂不支持增量更新,如之前使用过 docker 方式部署,升级版本时注意更换宿主机的 mysql 映射目录或者清除映射目录下旧版本的 mysql 文件,否则 db 仍会使用旧版本db 库,这在新版本更改了mysql库表结构的情况下服务运行会出错。

agent 部署说明:
容器中 /home/mtreport/slog_mtreport_client.tar.gz 为 agent 部署包,可以将其拷贝到需要部署的机器上,解压后部署SERVER_MASTER 配置改为宿主机的IP地址, 如果需要在宿主机上部署 agent,需要指定:AGENT_CLIENT_IP 为容器网卡的IP,关于 agent 的详细说明可以参考开源版在线文档, 不建议在容器中部署插件(在宿主机需要部署时会发生冲突).

docker 使用过程中如有问题可以加入我们的QQ群: 859052272 获取帮助。

使用 docker 镜像编译源码

使用 docker 镜像编译源码方法如下:

  1. 拉取镜像: docker pull registry.cn-hangzhou.aliyuncs.com/xrkmonitor/compile:latest
  2. 执行镜像容器:docker run -idt [镜像id] (docker images 获取)
  3. 进入容器:docker attach [容器id] (docker ps -a 获取)
  4. 进入容器目录:/home/xrkmonitor/open, 执行 make 即可编译项目全部源码
  5. 编译成功后生成集中部署包,进入 tools_sh 目录,执行:./make_all.sh 即可生成完整的集中部署包

关于集中部署请参考文档:源码编译-集中部署

docker 编译镜像安装了 vim/gcc/git 等工具,如需更新源码,进入目录:/home/xrkmonitor/open 执行 git pull 即可
如您想使用镜像进行二次开发,建议您挂载宿主机目录,将源码下载到挂载的目录进行修改, 不要使用容器中的/home/xrkmonitor/open 目录,以免工作成果丢失。

在线部署

安装脚本: install.sh
从以下链接下载后, 按提示执行即可, 需要系统支持 bash
(wget http://xrkmonitor.com/monitor/download/install.sh; chmod +x install.sh; ./install.sh )
示例(如您安装失败可在评论区留言系统版本或者加入Q群咨询):在线安装示例

在线部署说明:
安装脚本会先检查当前系统是否支持在线安装, 如不支持您可以下载源码后在系统上编译安装
在线部署目前只支持集中部署方式, 即所有服务部署在一台机器上, 该机器上需要安装 mysql/apache
安装脚本使用中文 utf8 编码, 安装过程请将您的终端设置为 utf8, 以免出现乱码
安装脚本同时支持 root 账号和普通账号操作, 使用普通账号执行安装部署要求如下:

  1. 在线部署使用动态链接库, 需要在指定目录下执行安装脚本, 目录为: /home/mtreport
  2. 普通账号某些目录可能无权操作, 需要授权才能正常安装

卸载脚本: uninstall_xrkmonitor.sh
在线部署过程中会下载该脚本, 如需卸载可执行该脚本
在线部署详细说明文档:在线部署

我们强烈建议您先在本地虚拟机上执行在线安装, 熟悉安装流程后在实际部署到您的服务器上。

离线部署(自行编译源码)

如果在线安装失败或者需要二次开发, 可以使用源码编译方式安装

操作步骤:

  1. git clone https://gitee.com/xrkmonitorcom/open.git 下载源码
  2. 进入源码目录,执行 make 完成源码编译
  3. 进入 tools_sh 目录,执行 make_all.sh 生成部署包
  4. 在安装目录解压部署包,执行 local_install.sh 完成安装

(如遇编译环境问题,可以尝试使用docker 镜像编译)
监控系统卸载脚本: uninstall_xrkmonitor.sh,移除彻底不留丝毫痕迹

安装环境变量同在线安装一样, 具体可以查看说明文档: 源码编译-集中部署
控制台默认账号密码: sadmin/sadmin

使用的技术方案

  1. apache + mysql(监控点数据、配置信息使用 mysql 存储, 支持分布式部署)
  2. 前端 web 控制台采用 dwz 开源框架
  3. 前端监控图表采用开源 echarts 绘制
  4. 后台 cgi 使用开源的cgi模板引擎 - clearsilver, 所有cgi支持以fastcgi方式部署
  5. 后台服务使用了开源的 socket 开发框架 - C++ Sockets

当前监控上报API支持的语言如下(更多语言支持在开发中)

  1. c/c++ 开发接口
  2. php 开发接口
  3. linux shell 开发接口
  4. javascript 开发接口

插件市场 (部分插件,请登录演示版查看更多)

  1. linux_base - c/c++语言开发,用于监控linux 系统 cpu/内存/磁盘/网络等资源
  2. monitor_apache_log - c/c++语言开发,用于监控apache 网站的流量访问量等
  3. linux_file_monitor - shell 语言开发,用于监控 linux系统文件目录的增删改变动
  4. monitor_website - javascript 语言开发,用于监控网站访客基本信息和运行异常信息
  5. open_source_star - c/c++ 语言开发,用于开源项目监控粉丝数据,聚合了gitee和github 平台数据
  6. common_log - c/c++ 语言开发,用于监控日志文件,通过该插件可轻松打造高性能分布式日志系统

精品插件截图

  1. linux_base ,linux 系统基础资源监控,包括cpu、内存、网络、磁盘等基础的监控指标,可在视图或者服务器模式的图表上直接针对指标设置告警


  2. monitor_apache_log,基于apache 日志组件实现的 apache 网站服务端监控,可监控网站流量、访客地域分布等指标

  3. monitor_website,使用javascript 脚本语言编写的,网站前端监控

  4. open_source_star,开源项目粉丝增长监控,可聚合了 gitee 和 github 两个平台的粉丝

  5. common_log,通用日志文件监控,可监控日志文件,轻松打造高性能分布式日志系统
    common_log 插件使用演示视频:https://www.bilibili.com/video/BV18i4y1c7rJ/

项目演示链接:字符云监控项目演示 http://open.xrkmonitor.com

在线文档:- 在线文档 http://xrkmonitor.com/monitor/dmt_open_doc.html

联系我们

微信公众号:
字符云监控系统微信公众号

邮箱:1820140912@qq.com
QQ群:859052272

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

xrkmonitor - 集业务监控点监控、日志监控、数据可视化以及监控告警为一体的国产开源云监控系统,众多云监控插件直接部署即可使用。 展开 收起
Apache-2.0
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
C/C++
1
https://gitee.com/xrkmonitorcom/open.git
git@gitee.com:xrkmonitorcom/open.git
xrkmonitorcom
open
xrkmonitor
master

搜索帮助

14c37bed 8189591 565d56ea 8189591