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

news/2024/7/5 2:30:39 标签: tick, monitoring, devops, go, reactjs

了解和学习TICK栈不久,还有很多需要进一步深入。但我个人非常看好这个项目,也希望更进一步研究,同时,在阅读源码和二次开发中,希望技术上能有所提升。另外,telegraf有CPU毛刺,已经转战更稳定的老牌 collectd。同时,生产环境,grafana 也是非常不错的选择,不需要二次开发,即可满足大部分需求。前端框架一个用的reactjs,一个angular1.5。感觉chronograf技术更轻量和前卫点儿,不过grafana也有非常多值得学习的地方,想二次开发的话,两个项目都值得深入 : ) 看个人选择了。

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 做了一些微调,还需要进一步学习源码。有兴趣的朋友,并且熟悉goreactjs的最好,可以一起学习该开源方案。

可视效果

这里写图片描述

其它

jwt

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

注意

发现 telegraf 这个 agent 占 cpu 资源太多了,真是坑爹:

strace -T -r -c -p PID

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 99.12   16.050820       29451       545        12 futex
  0.35    0.055932           3     19278     18790 openat
  0.18    0.029826          36       838           read
  0.09    0.014101          22       627           sched_yield
  0.07    0.012027        2405         5           clone
  0.07    0.010825          71       153           select
  0.03    0.004468          25       178           getdents64
  0.03    0.004195         839         5           waitid
  0.02    0.003915           8       496           stat
  0.02    0.003291           6       507           close
  0.01    0.002091           5       390           fstat
  0.00    0.000366          46         8         1 readlinkat
  0.00    0.000187          37         5           wait4
  0.00    0.000166          21         8           lstat
  0.00    0.000147          15        10           pipe2
  0.00    0.000105          12         9         2 rt_sigreturn
  0.00    0.000101           8        12           statfs
  0.00    0.000072          14         5           getpid
  0.00    0.000030          30         1           sysinfo
  0.00    0.000005           1         7           epoll_wait
------ ----------- ----------- --------- --------- ----------------
100.00   16.192670                 23087     18805 total

http://www.niftyadmin.cn/n/1614902.html

相关文章

快速修改MTU值

macOS System Preferences -> Network -> advanced -> Hardware linux(CentOS) 修改 network-scripts 下面的配置文件后重启网络即可即可&#xff0c; eg: /etc/sysconfig/network-scripts/ifcfg-eth0 查看&#xff1a; 很简单&#xff0c; ifconfig 即可 修改&a…

三星很陶醉:爷会成为智能手机之王

来自Reuters的报告显示&#xff0c;在对手HTC低估三星智能手机销售量将会下滑之后&#xff0c;三星非常自信地声明&#xff0c;在即将结束的2011年&#xff0c;其手机销售量将会超过预期。在之前&#xff0c;三星总共销售了超过3000万部Galaxy S及Galaxy S II智能手机&#xff…

Lights:奇妙的WebGL 3D体验

了解WebGL技术的人应该都知道&#xff0c;WebGL是一种3D绘图标准&#xff0c;通过该技术标准Web开发人员可以借助系统显卡在浏览器里更流畅地展示3D场景和模型&#xff0c;创建复杂的导航和数据视觉化。而Lights就是这样一款拥有强大WebGL显示功能的产品&#xff0c;无需插件便…

SVG可视化简易漏斗图

Visualization as a problem-solving and knowledge discovery tool has become even more important as we enter the Big Data era. 效果图 js代码 jQuery /*------------------------------------------说明&#xff1a;漏斗图 - TEST作者&#xff1a;taolinran日期&#…

川田工业开发出可和人类协作的人形机器人

日本的川田工业株式会社开发出一个人形机器人&#xff0c;专门设计来用于和人类一起工作。这个叫Nextage的并不是此类机器人中的第一个&#xff0c;但其特别之处给人印象很深刻&#xff0c;而且已经商业化运作。 其配备一个高速立体摄像头和两只手臂&#xff0c;每只有12个关节…

多队列网卡设置CPU中断绑定

水文一篇&#xff0c;有需要&#xff0c;看底下的参考链接哈 先发一个图&#xff0c;业务高峰期的时候&#xff0c;cpu0软中断非常高&#xff0c;是否影响服务性能&#xff1f; 参考&#xff1a; 深度剖析告诉你irqbalance有用吗&#xff1f; Balancing Hardware Interrupts

Twitter收购安全软件公司Whisper Systems

Whisper Systems是一家关注Android企业用户安全的小公司&#xff0c;近日通过官方博客宣布&#xff0c;Twitter已收购该公司。Wisper Systems称&#xff0c;公司会陆续为大家带来意想不到的惊喜&#xff0c;但由于处于并购期&#xff0c;所以所有的服务及产品将暂时不向大家开放…

PHP用isset替换count之优化

From if (count($arr) > 3) {/* ... */ }if (!in_array($tmp, $arr)) {/* ... */ }To if (isset($arr[3]) {/* ... */ }if (!isset($arr[$tmp])) {/* ... */ } 其他: echo 比 print_r快很多&#xff0c;因为echo是 语法结构 __DIR__ 比 dirname(__FILE__) 快&#xff0c…