从上篇笔记开始已经一个月多没有更新了,有点苦恼,没有坚持学完ES和算法知识。不过最近工作上学习了很多运维知识,还学习了Clojure和Lua,但都还未进行纪录。非工作的事情也比较多。在此做一个阶段性总结,汇总下最近了解的知识,好为下一个阶段的学习做准备。
运维
最主要的是一个从业务开发到运维的思路转变,期间学习了很多方法论、概念,以及应用工具等等
通过Metrics进行规则分析告警
通过K8S探针采集数据告警
概念
SLO、SLA、SLI
ITIL
RCA
Logging & Monitor
Metrics
性能指标信息,也是大部分基础监控告警信息的来源。
Alert
工具
Prometheus
SoundCloud开源监控告警解决方案。也是目前所在公司使用的产品。个人理解是一个有存储能力,包含查询、配置规则、告警等功能的产品。
存储采用Time Seris Database(TSDB)时序数据库,因为metrics信息是以时间为主要单位进行存储的,所以该类型存储最合适。
同类的产品还有Zabbix,但还未进行过相关产品的比较。
promSQL
prometheus的专用查询语句,有一些语法规则,但是整体不复杂.
Thanos
其实是上面Prometheus的一套高可用组件,本身Prometheus是支持高可用的。Thanos主要提供了跨集群联合、跨集群无限存储和全局查询等功能。
Grafana
一个Dashboard UI应用,可以将多种数据源的数据,比如Prometheus、Elasticsearch等数据以各种方式进行展示。
Fluentd
替换ELK中的L(Logstash)进行日志收集的角色,最近还在学习Elasticsearch的课程(已经学了400多天了还没学完…要抓紧了)
ELK
ELK其实已经很早前就接触过了,包含在Elastic stack的x-pack、Beats,都有了更新的认识
Kubernetes
之前已经系统的学习过docker了,并且有简单学习过K8S的基本概念,但是已经忘的差不多了。最近了解到了K8S很多实用的技巧和应用插件,之后真的应该系统学习下。
Netdata
linux上的实时性能监控工具。会实用ansible在VM上进行自动部署,提供操作系统级别的metrics。
Skywalking
开源的分布式链路追踪应用,以前就有接触过,在此记录下。
Other Language
Clojure
clojure是一个基于JVM的lisp语言,特点是函数式、复合类型数据结构,方便快捷。最近是有用该语言做一个后台的程序,目前学习的还比较浅,后面会单独列出一个分类做clojure的笔记
IDE相关
- IDE: IntellJ + Curisve; Emacs + Cider
- 构建工具: leiningen + boot-clj
- Clojure 语言特点: dynamic + functional + lisp + designed for concurrency + hosted on jvm
常用工具包
- WebApp开发包:Ring、compojure
- Scheduler开发包:clojurewerkz
lua
是一个轻量级的脚本语言,最近一段时间有做了一个网关的插件用到了。目前学习的比较浅。其实老版本的redis高可用、Nginx都有用到该语言。
lua与lua-lit