hexo博客添加自定义html页面
比如我想增加一个文件夹,文件夹里面有 img、css、js 等文件夹,还有 index.html 文件,想要在 hexo 博客里可以正常显示 将 文件夹 放到 hexo 的 source 文件夹下。 然后需要配置跳过 hexo 的渲染,因为 hexo 会改变 html 文件的结构。 修改 _config.yml 后续可以通过访问 http://xxx.com/html/ 来打开页面 需要注意 js css html 等文件调用的地址有可能需要更换。
编译安装MySQL5.7
编译需要耗时,且对系统的依赖更为复杂,更容易出错, 如果没有必要,可以参考使用 二进制安装MySQL5.7 安装编译依赖Ubuntu和DebianCentOS和Fedora 编译设置安装路径 准备工作 开始编译 收尾创建目录和用户 创建配置文件 创建软链接my.cnf 文件客户端和服务端都需要使用的。 创建 service 文件 初始化数据库 优化工作添加环境变量 修改 root 密码 查看编译参数
Prometheus手动打标签
有时候需要给 Prometheus 打标签,比如说联邦集群接入,需要知道是哪个集群,remote write 写入的时候也需要做个标记。 直接在集群打标签vim prometheus.yml 这样就可以给集群内的所有 metrics 打上这三个标签。 通过联邦集群打标签如果集群不好进行操作,可以通过联邦集群接入,在联邦主节点进行配置 给接入的 target 打标签 这种只是给当前这个 target 打标签,不是全局生效
基于VictoriaMetrics的大规模监控实战
victoriametrics 原生支持水平扩展,并且大部分兼容 Prometheus 语法,官方文档地址:https://docs.victoriametrics.com/ 这个是 victoriametrics 官方的集群架构 我公司用到的集群架构 目前用到 3 台机器 IP 部署的服务 10.0.0.21 vmauth、vmselect、vminsert、vmstorage、vmalert 10.0.0.22 vmselect、vminsert、vmstorage 10.0.0.23 vmselect、vminsert、vmstorage vmstorage首先需要把存储部署上,多个存储之间数据是不同步的,也就是说所有的 storege 组件之间是感知不到彼此的。通过 vmselect 和 vminsert 采用一致性 hash 算法来确定读取/写入哪台节点。 vmstorage 启动命令 vminsert vmselectvmselect 启动命令 vmalert 负载均衡配置vmauth 负载均衡配置 其中 vmaut...
使用Keepalived来实现Nginx高可用
公有云不会考虑这些,不过自建机房,使用 nginx 做入口,keepalived 是唯一的选择。 节点 IP keepalived 主 10.0.0.45 keepalived 备 10.0.0.44 vip 10.0.0.46 组播模式keepalived1keepalived2 单播模式keepalived1keepalived2 非抢占式说明 抢占式 和 非抢占式的区别: 比如 master1 默认的权重(priority)高,vip 当前在 master1 上, master1 挂掉后 vip 会飘到 master2 上,那么如果 master1 恢复正常了,抢占式会重新将 vip 抢过来,再次绑定到 master1 上,非抢占式则保持在 master2 上,除非 master2 也出问题。 必须都为 BACKUP 模式,如果有 MASTER,那么 MASTER 会抢占 必须都配置 nopreempt 去掉 weight -20 配置, 因为非抢占式这种配置, 高优先级的不会去抢占低优先级的 VIP, 所以检测失败降低权重是没有效果的。 配...
Prometheus通过remote_write写入数据到另一台Prometheus
假设 Prometheus1 是一个集群内的 Prometheus,需要远程写入数据到 Prometheus_Core Prometheus_Core 开启 remote_write_receiverPrometheus_Core 需要打开接收远程写入的功能,通过增加启动参数 --web.enable-remote-write-receiver: 远程写的接口地址 /api/v1/write Prometheus_Core 开启认证参考 Prometheus开启basic_auth认证 Prometheus1 配置 remote_writePrometheus1 需要将 remote_write 写入到 Prometheus_Core 的远程接口 远程写如何判断监控是否离线远程写不像联邦集群,联邦是事先配置好的,远程写的方式,被写入的 Prometheus 是无法预知是谁在向我发送数据的。可以通过 absent 函数来实现。 收集 Prometheus 自身的监控指标想要监控 Prometheus 的状态,则需要收集自身的监控指标(比如 up 指标),确保 Prome...
Prometheus开启basic_auth认证
考虑将公司的联邦集群(pull)换成 remote_write(push)这种形式, 所以需要将 Prometheus 开放到公网,看了看认证相关的配置 也可以使用 Nginx 来反向代理,可以参考 Nginx开启基本http认证, 不过 Prometheus 原生带了 basic auth 和 ssl 认证, 官网的说明https://prometheus.io/docs/guides/basic-auth/ 开启 web 配置文件 生成密码密码需要 bcrypt 加密,这里使用 htpasswd 工具生成 Ubuntu和Debian安装CentOS和Fedora安装 web 配置文件vim web.yml 验证一下配置 remote write 访问后面访问控制台页面或者调用接口都需要指定账号密码了 其他 Prometheus 如果需要往这台写入, 需要在其他的 Prometheus remote_write 配置认证 联邦配置如果此 Prometheus 需要通过联邦机制接入到其他 Prometheus, 需要在对方的配置里面增加: 启用了 Bas...
Ingress Nginx 的灰度方案
在 k8s 环境下进行灰度,ingress-nginx 自带了灰度注解, 这篇文章挺详细的https://v2-1.docs.kubesphere.io/docs/zh-CN/quick-start/ingress-canary/ 再此之前有个需求, 根据请求 header 有没有特定的值,来判断是否进入灰度环境。当时的做法是在集群内用 nginx 这种方式可以实现需求, 不过不灵活, 也不优雅, 搜了一下, 发现 ingress nginx 原生提供了灰度的方案 ingress 自带 canary 部署简单来说就是部署了两套环境, 这两套一模一样, 只是在不同的 namespace(同一个 namespace 需要取不同的名字),service 和 ingress 域名都配置成一样的, 然后在 canary 环境的 ingress 上添加注解即可。 如何测试效果可以使用 echo server 来做测试容器, 请求它可以输出一些基本信息, 我们就知道访问到哪个 pod 了 测试过程
Nginx四层反向代理后端记录真实IP
使用 k8s 的 ingress 暴露服务,会有使用负载均衡反向代理 ingress 的情况,那么我们的 ingress 获取到的 ip 都是 4 层负载的 ip,比如常用架构图 4 层 Proxy Protocol 透传 tcp 工作在网络第 4 层,Proxy Protocol 就是在 tcp 中增加一个小的报头,用来存储额外的信息 代理协议即 Proxy Protocol,是 haproxy 的作者 Willy Tarreau 于 2010 年开发和设计的一个 Internet 协议,通过为 tcp 添加一个很小的头信息,来方便的传递客户端信息(协议栈、源 IP、目的 IP、源端口、目的端口等),在网络情况复杂又需要获取客户 IP 时非常有用。其本质是在三次握手结束后由代理在连接中插入了一个携带了原始连接四元组信息的数据包。 目前 proxy protocol 有两个版本,v1 仅支持 human-readable 报头格式(ASCIII 码),v2 需同时支持 human-readable 和二进制格式,即需要兼容 v1 格式proxy protocol 的接收端必须在接...
在CentOS7上安装新版本Git(2.x)
centos7 的默认源里面的 git 版本是 1.8.3, 比较老了, 对于有些操作会提示 git 版本太低, 可以使用第三方源的方式来安装新版本的 git 使用 Wandisco 源创建仓库文件 安装 git 查看版本 离线安装 (手动安装 rpm)下载两个文件到本地 安装

