[TOC]
Kubernetes集群监控之alertmanager
Kubernetes集群监控之全手动部署
参考
- https://blog.csdn.net/liukuan73/article/details/78881008
- https://github.com/liukuan73/kubernetes-addons
总体目标
从监控平台本身的业务需求来看,至少应该通过平台获取到以下的监控数据:
性能指标(如:CPU、Memory、Load、磁盘、网络等)
- 容器、Pod相关的性能指标数据
- 主机节点相关的性能指标数据
- 容器内进程自己主动暴露的指标数据
- k8s上应用的网络性能,如http、tcp等数据
状态指标
- k8s资源对象(Deployment、Daemonset、Pod等)的运行状态指标
- k8s平台组件(如kube-apiserver、kube-scheduler等)的运行状态指标
获取监控数据之后,还需要对监控进行可视化展示,以及对监控中出现的异常情况进行告警。
Kubernetes集群监控之Prometheus Operator
[TOC]
参考
- https://github.com/helm/charts/tree/master/stable/prometheus-operator
- https://github.com/coreos/prometheus-operator
- https://www.servicemesher.com/blog/prometheus-operator-manual/
- https://blog.csdn.net/travellersY/article/details/84632679
Kubernetes Operator 介绍
Operator
是由CoreOS公司开发的,用来扩展 Kubernetes API,特定的应用程序控制器,它用来创建、配置和管理复杂的有状态应用,如数据库、缓存和监控系统。Operator
基于 Kubernetes 的资源和控制器概念之上构建,但同时又包含了应用程序特定的一些专业知识,比如创建一个数据库的Operator
,则必须对创建的数据库的各种运维方式非常了解,创建Operator
的关键是CRD
(自定义资源)的设计。
CRD
是对 Kubernetes API 的扩展,Kubernetes 中的每个资源都是一个 API 对象的集合,例如我们在YAML文件里定义的那些spec
都是对 Kubernetes 中的资源对象的定义,所有的自定义资源可以跟 Kubernetes 中内建的资源一样使用 kubectl 操作。
Operator
是将运维人员对软件操作的知识给代码化,同时利用 Kubernetes 强大的抽象来管理大规模的软件应用。目前CoreOS
官方提供了几种Operator
的实现,其中就包括我们今天的主角:Prometheus Operator
,Operator
的核心实现就是基于 Kubernetes 的以下两个概念:
- 资源:对象的状态定义
- 控制器:观测、分析和行动,以调节资源的分布
当然我们如果有对应的需求也完全可以自己去实现一个Operator
,接下来我们就来给大家详细介绍下Prometheus-Operator
的使用方法。
Prometheus Operator介绍
Kubernetes的Prometheus Operator为Kubernetes服务和Prometheus实例的部署和管理提供了简单的监控定义。
安装完毕后,Prometheus Operator提供了以下功能:
- 创建/毁坏: 在Kubernetes namespace中更容易启动一个Prometheus实例,一个特定的应用程序或团队更容易使用Operator。
- 简单配置: 配置Prometheus的基础东西,比如在Kubernetes的本地资源versions, persistence, retention policies, 和replicas。
- Target Services通过标签: 基于常见的Kubernetes label查询,自动生成监控target 配置;不需要学习普罗米修斯特定的配置语言。
Prometheus Operator 架构图如下:
以上架构中的各组成部分以不同的资源方式运行在 Kubernetes 集群中,它们各自有不同的作用:
- Operator: Operator 资源会根据自定义资源(Custom Resource Definition / CRDs)来部署和管理 Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。
- Prometheus: Prometheus 资源是声明性地描述 Prometheus 部署的期望状态。
- Prometheus Server: Operator 根据自定义资源 Prometheus 类型中定义的内容而部署的 Prometheus Server 集群,这些自定义资源可以看作是用来管理 Prometheus Server 集群的 StatefulSets 资源。
- ServiceMonitor: ServiceMonitor 也是一个自定义资源,它描述了一组被 Prometheus 监控的 targets 列表。该资源通过 Labels 来选取对应的 Service Endpoint,让 Prometheus Server 通过选取的 Service 来获取 Metrics 信息。
- Service: Service 资源主要用来对应 Kubernetes 集群中的 Metrics Server Pod,来提供给 ServiceMonitor 选取让 Prometheus Server 来获取信息。简单的说就是 Prometheus 监控的对象,例如 Node Exporter Service、Mysql Exporter Service 等等。
- Alertmanager: Alertmanager 也是一个自定义资源类型,由 Operator 根据资源描述内容来部署 Alertmanager 集群。
Kubernetes集群监控之Prometheus
[TOC]
参考
- http://dockone.io/article/9269
- http://dockone.io/article/5716
- https://www.jianshu.com/p/fb5c82de935d
- https://github.com/prometheus/prometheus
- https://yunlzheng.gitbook.io/prometheus-book
- https://prometheus.io/docs/introduction/overview/
- https://github.com/samber/awesome-prometheus-alerts
监控目的
在《SRE:Google运维解密》一书中指出,监控系统需要能够有效的支持白盒监控和黑盒监控。通过白盒能够了解其内部的实际运行状态,通过对监控指标的观察能够预判可能出现的问题,从而对潜在的不确定因素进行优化。而黑盒监控,常见的如HTTP探针,TCP探针等,可以在系统或者服务在发生故障时能够快速通知相关的人员进行处理。通过建立完善的监控体系,从而达到以下目的:
- 长期趋势分析:通过对监控样本数据的持续收集和统计,对监控指标进行长期趋势分析。例如,通过对磁盘空间增长率的判断,我们可以提前预测在未来什么时间节点上需要对资源进行扩容。
- 对照分析:两个版本的系统运行资源使用情况的差异如何?在不同容量情况下系统的并发和负载变化如何?通过监控能够方便的对系统进行跟踪和比较。
- 告警:当系统出现或者即将出现故障时,监控系统需要迅速反应并通知管理员,从而能够对问题进行快速的处理或者提前预防问题的发生,避免出现对业务的影响。
- 故障分析与定位:当问题发生后,需要对问题进行调查和处理。通过对不同监控指标以及历史数据的分析,能够找到并解决根源问题。
- 数据可视化:通过可视化仪表盘能够直接获取系统的运行状态、资源使用情况、以及服务运行状态等直观的信息。
而对于上一代监控系统而言,在使用过程中往往会面临以下问题:
- 与业务脱离的监控:监控系统获取到的监控指标与业务本身也是一种分离的关系。好比客户可能关注的是服务的可用性、服务的SLA等级,而监控系统却只能根据系统负载去产生告警;
- 运维管理难度大:Nagios这一类监控系统本身运维管理难度就比较大,需要有专业的人员进行安装,配置和管理,而且过程并不简单;
- 可扩展性低: 监控系统自身难以扩展,以适应监控规模的变化;
- 问题定位难度大:当问题产生之后(比如主机负载异常增加)对于用户而言,他们看到的依然是一个黑盒,他们无法了解主机上服务真正的运行情况,因此当故障发生后,这些告警信息并不能有效的支持用户对于故障根源问题的分析和定位。
在上述需求中,我们可以提取出以下对于一个完善的监控解决方案的几个关键词:数据分析、趋势预测、告警、故障定位、可视化。
除此以外,当前越来越多的产品公司迁移到云或者容器的情况下,对于监控解决方案而言还需要另外一个关键词:云原生。
基金定投之5G基金
5G相关指数
市场上涉及5G相关的指数有三个:
(1)中证全指通信设备指数(931160)
中证官网:http://www.csindex.com.cn/zh-CN/indices/index-detail/931160
选取中证全指样本股中的通信设备行业股票组成,以反映该行业股票的整体表现。
场内:国泰中证全指通信设备ETF(515880)
场外:国泰中证全指通信设备ETF联接A(007817),国泰中证全指通信设备ETF联接C(007818)
(2)中证5G通信主题指数(931079)
中证官网:http://www.csindex.com.cn/zh-CN/indices/index-detail/931079
选取产品和业务与5G通信技术相关的上市公司作为样本股,包括但不限于电信服务、通信设备、计算机及电子设备和计算机运用等细分行业,旨在反映相关领域的A股上市公司整体表现
场内:华夏中证5G通信主题ETF(515050)
场外:华夏中证5G通信主题ETF联接A(008086),华夏中证5G通信主题ETF联接C(008087)
(3)中证通信技术主题指数(931144)
中证官网:http://www.csindex.com.cn/zh-CN/indices/index-detail/931144
中证通信技术主题指数选取产品或业务与5G、物联网、光通信、量子通信和卫星通信等新兴通信技术相关的上市公司,包括但不限于通信传输设备、通信终端设备、半导体、电子设备及制造商、光电子器件等行业,旨在反映相关领域的A股上市公司整体表现。
场外:东财中证通信A(008326),东财中证通信C(008327)
基金定投之互联网基金
中证海外中国互联网50人民币指数(H30533)
易方达中概互联50ETF,中国互联网50指数,跟踪中证海外中国互联网50人民币指数,选取海外上市的50家中国互联网企业作为样本股,反映在海外交易所上市知名中国互联网企业的投资机会。
虽然,中国互联网50指数,是想选取50家公司作为成分股,但是呢,符合条件的公司,只有30多家,所以这个50指数就有点名不符实了哈。
需要说明的是,中国互联网50指数成分股业绩基数已经很高,尽管现在的业绩增速仍然很快,但未来应该会逐渐降低,但何时会降低,还是一个未知数。因此,如果有朋友也看好这只指数的话,建议尽量放低收益预期,尽管我相信互联网行业未来仍然会快速发展,但不要期待,未来能像之前那样高速地增长。
中国互联网50指数的构成非常简单,腾讯、阿里、百度、网易、京东,这5家公司占据了指数80%的权重。下图是该指数的前大权重股,他们占据了这个指数90%的权重。
互联网是一个强者恒强的行业,这些年来,回报最好的还是其中的龙头股公司,因为这一行有个特点,就是用户越多产品越好用,产品越好用用户也就越多,这样龙头公司的优势就可以不断自我强化,形成强大的护城河,最终转化为巨大的利润。国内的腾讯、阿里、百度,国外的Facebook、Google都是非常好的例子。
互联网这样的行业格局,有极高的概率会继续维持下去。如果看好互联网行业发展的话,长期投资其中的龙头股应该是不错的选择,而中国互联网的行业龙头股,都集中在了中国互联网50这只指数中。
投资工具
可以在场内1.30以下,场外1.00以下,坚持定投中概互联和它的场外联接基金。
跟踪中国互联网50指数的指数基金,
- 场内:易方达中概互联50ETF(代码:513050)
- 场外联接基金:易中概ETF联接人民币(A份额:006327,C份额:006328)
准备长期(半年以上)持有的朋友,可以申购A份额(006327),想短期持有的朋友,可以选择申购C份额(006328)
Python笔记之正则表达式
[TOC]
参考
Python 正则表达式
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
本章节主要介绍Python中常用的正则表达式处理函数。
基金定投之中证500
参考
概念
中证500
中证500指数由全部A股中剔除沪深300指数成份股及总市值排名前300名的股票后,总市值排名靠前的500只股票组成,综合反映中国A股市场中一批中小市值公司的股票价格表现。
500低波动
中证500行业中性低波动指数在中证500指数二级行业内选取低波动特征的股票为样本,保持行业中性的同时,行业内股票采用波动率倒数加权。