首页 > 代码库 > TICK技术栈 -- DevOps轻量级监控解决方案

TICK技术栈 -- DevOps轻量级监控解决方案

了解和学习TICK栈不久,还有很多需要进一步深入。但我个人非常看好这个项目,也希望更进一步研究,可能的话,会在生产环境谨慎和大胆地尝试一下。同时,在阅读源码和二次开发中,希望技术上能有所提升。

TICK技术栈

简介

技术分享

  • T = Telegraf is a plugin-driven server agent for collecting and reporting metrics.
  • I = InfluxDB is a time series database built from the ground up to handle high write and query loads.
  • C = Chronograf is a graphing and visualization application for performing ad hoc exploration of data.
  • K = Kapacitor is a data processing framework proving alerting, anomaly detection and action frameworks.

简单表达:

  • Telegraf - 数据采集
  • InfluxDB - 数据接收和存储
  • Chronograf - 数据汇总展示
  • Kapacitor - 数据处理,比如监控策略等

技术架构

技术分享

安装和部署

根据官方的开源解决方案,安装和部署都比较简单,可以用快捷安装方式即可。Chronograf建议编译安装,可以做一些基础的二次开发,部分react的组件修改和做一下汉化等。不过由于go的依赖比较多,有一些包需要翻墙才能get到,我在这儿也是倒腾了蛮久,有点蛋疼 >.<,具体略,有需要可以沟通。(不过没啥聊的其实,就是折腾)

比如,如下是针对CentOS平台:

#1. influxdb
#1.1 下载并安装
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.0.x86_64.rpm
sudo yum localinstall influxdb-1.2.0.x86_64.rpm
#1.2 修改配置文件(修改了data目录后,注意修改对应目录的权限,需要将influxdb用户设置为属主和属组)
#1.3 启动服务
service influxd start

#2. telegraf
#2.1 下载并安装
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.2.1.x86_64.rpm
sudo yum localinstall telegraf-1.2.1.x86_64.rpm
#2.2 修改配置文件 /etc/telegraf/telegraf
#主要是修改influxdb的配置
#2.3 启动服务
service telegraf start

#3. kapacitor
#3.1  下载并安装
wget https://dl.influxdata.com/kapacitor/releases/kapacitor-1.2.0.x86_64.rpm
sudo yum localinstall kapacitor-1.2.0.x86_64.rpm
#3.2 修改配置文件 /etc/kapacitor/kapacitor.conf
#3.3 启动服务

#4. chronograf
# (源码编译安装略)

#4.1 下载并安装(快捷安装) 
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.2.0~beta3.x86_64.rpm
sudo yum localinstall chronograf-1.2.0~beta3.x86_64.rpm
#4.2 启动服务
service chronograf start

都启动服务后,打开浏览器,访问: http://chronograf-ip:8888 即可访问

二次开发

技术分享

二次开发,我这边主要针对 Chronograf 做了一些微调,还需要进一步学习源码。有兴趣的朋友,并且熟悉go或reactjs的最好,可以一起学习该开源方案。

可视效果

技术分享

其它

技术分享

Chronograf 的开源版本有支持和github,google等账号体系打通,通过JWT等,但是没有开放用户管理等功能,而且一般公司内部有账号体系,也不愿意将部分组织开放到github等上面,所以,要更好地在内部的环境使用它,目前来看,可能还需要进一步开发才行。不过,我个人倒是觉得 JWT 比较新鲜,看了部分文档后,也觉得很不错。另外,后期肯定需要关联CMDB系统,关于这些后期的设计,如果有读者感兴趣,可以一起沟通和交流。欢迎指导!

<script type="text/javascript"> $(function () { $(‘pre.prettyprint code‘).each(function () { var lines = $(this).text().split(‘\n‘).length; var $numbering = $(‘
    ‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

    TICK技术栈 -- DevOps轻量级监控解决方案