HTTPS的原理,使用HTTPS就一定是安全的吗?
HTTPS 是什么以前一直以为 HTTPS 是一种与 HTTP 类似的应用层协议,后来才发现 HTTPS 并不是一种协议。https 只是在 URI 中作为 protocol identifier 罢了。HTTPS 其实是 HTTP Over TLS( RFC2818 )的简称,也就是运行在 TLS 协议上的 HTTP 协议,使用 TLS 协议对 HTTP 数据进行加密,从而保证了安全性。 TLS 协议简介HTTPS 的核心就是 TLS 协议,那么 TLS 协议又是什么呢?TLS 的全称为 Transport Layer Security,也就是在传输层保证安全 RFC5246。主要分为以下四个协议: handshake protocol,用来建立连接、身份认证、密钥协商 alert protocol,用来关闭连接 change cipher spec protocol,用来表示开始使用协商好的加密方式进行数据传输 application data protocol,用来传输密文 TLS 协议中最重要的就是 handshake 了,在握手阶段通信双方以安全的方式协商好用于之后...
生产环境Prometheus监控架构记录
比如有 30 家客户,每一个客户都有自己的 Kubernetes 集群,部署方式千差万别,还有客户不使用 Kubernetes 的,使用虚拟机部署,那么怎么对这么多客户的机器、服务进行有效的监控,本文记录一下监控的架构方案。 监控架构图 说明:Prometheus Core 是一个核心的 Prometheus,所有其他 Prometheus 的数据都汇总到这里,查询、告警等都使用这个 Prometheus Prometheus Core这个是核心的 Prometheus,其他客户的 Prometheus 通过联邦接入或者 远程写 (remote write) 的方式来写入数据到这个 Prometheus 中。Prometheus Core 可以更换成 VictoriaMetrics 联邦接入配置 对应的 federate_http.yml 远程写入配置修改 Prometheus 启动参数,增加:--enable-feature=remote-write-receiver 启动参数。 Kubernetes 中部署有集群权限的 Prometheus适合有集群权限的 Promet...
使用snmp exporter对交换机、服务器等进行监控
安装到 GitHub 下载一个可执行文件,直接运行即可,或者使用 systemd 来运行,也可以直接部署到 Kubernetes 中。https://github.com/prometheus/snmp_exporter systemd 配置: 交换机或服务器打开 snmp 协议这一步需要在交换机或服务器的 ipmi 上配置,交换机这种网络设备一般都只支持 snmp 协议来获取数据,比如说每个接口的状态(有没有插网线等)对于服务器,像 cpu 占用率、内存使用率这些数据使用 node_exporter 就可以做,为啥还要使用 snmp_exporter 呢,snmp_exporter 可以做到一些底层的监控,比如说:风扇转速、电源是否有损坏的(一般服务器都有多个电源模块)、温度情况、磁盘阵列状态(是否有硬盘坏掉了,比如做了 raid1,坏了一块硬盘在软件层面是无感知的,但是需要及时更换硬盘了。) 打开 snmp 协议后,需要设置并记录一下团体名。 测试 snmp 命令示例: 生成配置文件snmp exporter 开源软件中有个 snmp generator ,可以用于生...
Windows 开机自启动配置位置
注册表方式系统 个人 只运行一次 新建字符串值 – 数值名称任意,数值数据为要启动的程序路径,如 C:\Program Files (x86)\WinHotKey\WinHotKey.exe或者命令行创建 reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /f /v "数值名称" /t REG_SZ /d "程序启动路径" 文件方式开机自启动也会显示在开始菜单的 startup 文件夹里。这里启动的话,是以用户身份启动,如果需要管理员权限的软件会弹窗。 系统启动文件夹 个人启动文件夹 快速进入 startup 文件夹win+r 输入 shell:startup 服务方式待完善 定时任务方式定时任务方式启动有个好处,就是可以以管理员权限运行,不用用户授权,也就是不会 UAC 弹窗。按照如图配置即可。
Windows常见注册表位置
oem 信息添加 oem 信息 删除 OEM 信息 侧边栏的网盘链接(OneDrive 等) 开机自启动注册表配置系统 个人 只运行一次 新建字符串值 – 数值名称任意,数值数据为要启动的程序路径,如 C:\Program Files (x86)\WinHotKey\WinHotKey.exe或者命令行创建 reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /f /v "数值名称" /t REG_SZ /d "程序启动路径" 登录界面不显示用户 IE 主页个人主页 系统主页 默认主页 Windows Defender关闭 Windows Defender 这种方法和直接修改组策略是一样的,家庭版不支持组策略可以使用这种方式
Prometheus的瞬时向量(Instant vector)和区间向量(Range vector)
在 Prometheus 的表达式语言中,表达式或子表达式包括以下四种类型之一: 瞬时向量(Instant vector) : 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。 区间向量(Range vector) : 一组时间序列,每个时间序列包含一段时间范围内的样本数据。 标量(Scalar) : 一个浮点型的数据值。 字符串(String) : 一个简单的字符串值。 瞬时向量 比如这样的,取值是一个值 区间向量指的是指定时间段的所有瞬时向量 PromQL 聚合操作例如:sum,min,max,count 等聚合函数,只能作用于瞬时向量上。
快速部署单节点kafka
如果需要集群部署的文档你可以在站内搜搜,之前写过。 单节点部署,不考虑高可用性,只求快速搭建出环境,一般都是自己开发或者运维做测试使用。或者业务的测试环境为了节省服务器资源采取的方案。不过我不一样,我们测试环境资源充足,我只是单纯的懒。 第一步 安装 Docker部署是基于 docker 来部署的,所以要先安装 docker,安装 docker 的过程可以看这个文档:快速搭建环境记录 第二步 选择镜像打开 docker 镜像仓库 https://hub.docker.com 找了找, 按照下载量排序,有以下几种,我选择 bitnami 打包的 kafka 第三步 编写启动脚本我个人不喜欢 docker-compose ,总觉得这个东西不伦不类的,论灵活不如 bash 脚本,论专业不如 Kubernetes 甚至 Docker Swarm,还不如自己写脚本来做。 需要创建一个 docker network ,默认的 bridge 网络不能通过 dns 名字找到对应的容器。 其中: kafka 的启动用户 id 是 1001,所以需要给 kafka-data 目录授权,不然可能...
yaml多行文本的写法和区别
直接看效果(pip install pyyaml): 输出结果: 结论在 YAML 中,|、|- 和 >- 都用于定义多行字符串,但它们的处理方式不同: | 保留换行符。 生成的字符串在每行的末尾保留换行符。 |- 类似于 |,但去掉最后的换行符。 结果中的最后一行不会有换行符。 >- 将换行符转换为空格。 结果中的所有行会被连接成一行,中间用空格分隔,最后一行也没有换行符。
Grafana 接入 LDAP 认证
Grafana 是一个非常好用的展示数据软件,我一直以为可以直接在设置里增加 ldap 配置,没想到啊没想到 必须要修改配置文件才能接入到 LDAP,还是记录一下吧,免得下次部署浪费时间。 我是在 Kubernetes 中部署的,数据存储用的是 MySQL,所以 Grafana 本身可以当作一个无状态服务来看待。也可以不做数据持久化。 先创建 ldap 配置文件这里包括 ldap 数据的映射关系,可以自己尝试修改调整。 创建 deployment 和 service 创建 ingress 验证 LADP 字段配置配置好以后,使用默认管理员账户登录: 默认账号密码:admin/admin 登录以后,在 管理 – 身份验证 – LDAP 里验证字段的映射情况。 LADP 用户权限调整默认情况下,权限是 viewer,只可以查看,不能编辑,系统后台也不能修改权限。如图: 需要到 ldap 来配置权限并同步到 Grafana,我们只希望 ldap 做个轻量的用户数据库,不希望赋予 ldap 太多的功能,这里我们直接修改数据库来修改权限。 先到 user 表查询用户 id 再到...
用Prometheus对nacos集群进行监控
参考官方文档:https://nacos.io/zh-cn/docs/monitor-guide.html 暴露 metrics 数据 需要修改配置文件,spring boot 支持通过环境变量来修改系统配置,在 Kubernets 环境下,可以通过增加环境变量的形式来暴露 metrics 数据。 增加环境变量后,nacos 服务会重启,重启后进入 Pod,执行命令查看是否有 metrics 数据: 数据接入 Prometheus自动接入或手动接入按照需求选择一个。 自动接入自动接入需要使用到 Prometheus 的自动发现机制,利用 servcie discovery endpoint 来接入,Prometheus 配置: 修改 nacos 的 service: 查看 Prometheus 的 targets: 手动接入如果由于种种原因不能自动发现,可以手动配置的方式来接入到 Prometheus Nacos metrics 含义jvm metrics 指标 含义 system_cpu_usage CPU 使用率 system_load_av...







