24年的随想


很久没有更新博客,不是忘了初心,只是在时间上确实没有以前那么宽裕。 自从换了工作,内网办公后,重心一直在更好的融入新公司当中,新公司的业务更广,技术栈更全面,可遇见的问题更多,Wiki上的记录也让人收获颇丰。但是无法将记录分享与外部。 下半年还是希望重新开启博客之路,将自己的所学所思分享一下。

Read more

curl中的连接和代理以及证书穿透


curl中的连接和代理以及证书穿透

1.curl中的主机名解析与技巧

1.1编辑hosts文件,改变域名指向
vim /etc/hosts
182.61.200.6 www.baidu.com
1.2指定Host头
HTTP客户端一般会通过Host:标头告诉HTTP服务器它要连接到哪个服务器,因为通常同一个HTTP服务器实例会有多个名字
    curl -H "Host: www.example.com" http://182.61.200.6/
注意点: HTTPS服务器通信时,只使用Host:标头是不够的。TLS协议中有一个单独的扩展字段,称作SNI(Server Name Ind...

Read more

apisix中etcd的集群备份和恢复


1.备份

ETCDCTL_API=3 etcdctl snapshot save snapshot.db
恢复

#2.查看备份状态
ETCDCTL_API=3 etcdctl  snapshot status snapshot.db -w=table

#3. 还原快照

kubectl  cp /root/temp/snapshot.db  -n ingress-apisix  apisix-etcd-0:/tmp/
kubectl  cp /root/temp/snapshot.db  -n ingress-apisix  apisix-etcd-1:/tmp/
kubectl  ...

Read more

Redis连接池Wireshark抓包分析


Redis连接池Wireshark抓包分析

1.文章背景

​ 因线上redis连接池出现i/o timeout,遂想通过抓包分析redis连接池的各配置参数。

​ 连接相对于其他对象,创建成本较高,资源也有限。如果没有连接池,在高并发场景下,连接关闭又新建,很快就会因为过多的TIME_WAIT(连接主动关闭方)导致无法创建更多连接了,程序被压死。

​ 本文主要确认:

​ 1.redis连接池是否复用

​ 2.redis连接池超时分析

​ 3.redis连接池直接替换(加锁)

​ ...

Read more

ElastAlert监控部署


ElastAlert监控部署

elastAlert介绍

ElastAlert是一个简单的框架,用于从Elasticsearch中的数据中发出异常,尖峰或其他感兴趣的模式的警报。

elastAlert部署-常见规则

创建配置文件

mkdir -p /data/elastalert/{rules,elastalert_modules}

创建elasticalert规则

cat > /data/elastalert/elastalert.yaml <<EOF
rrules_folder: /opt/elastalert/rules
run_every:
  minutes: ...

Read more

获取k8s中pod日志上传oss输出到企业微信


获取k8s中pod日志上传oss输出到企业微信 //目的: 一键获取Pod日志,方便给其他人查看 //方式: //1.通过client-go获取pod日志 //2.将pod日志上传值oss //3.将返回的链接输出到企业微信 //注意点: //1.参考kubectl log源码去写的 //2.上传值Oss信息PutOSSFile函数我涂抹了,需要自己写

package main

import (
    "bytes"
    "context"
    "encoding/json"
    "errors"
    "flag"
    "fmt"
    "github.com/...

Read more

gateio


//k8s集成企业微信通知第一版 //目的: 想将k8s的更新信息通知到企业微信里面 //现状: 目前是第一版,可以正常运行,可能存在bug,也需要进一步调优 //设计思路: //1.通过informer去获取k8s状态 //2.将service,pod,deployment,statefulset,job,crontab,sa,configmap,secret,ingress进行工厂实例化 //3.通过AddEventHandler去获取add,update,delete状态 //4.通过反射将判断资源类型,然后发送到企业微信通知 //5.update有这一块存在很多问题,一个资源更新...

Read more

gitlab升级后问题 (支持golang私有仓和兼容多域名拉取)


简述

​ 公司gitlab比较老,版本是v10.0.0,计划升级到v14.10.0。记录升级过程,保留多域名和ip地址访问,增加golang 私有仓支持。

gitlab版本升级

1.1.升级路径

官网参考

10.0.0-> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 ->14.0.12 ->14.9.0
1.2配置镜像源
cat &gt...

Read more

公司证书过期时间扫描(golang)


公司证书过期时间扫描(golang)

// 将公司所有A记录域名解析导出

// 将域名拼接为https://+域名

//设置超时时间,并发扫描域名

//无响应,不正确域名直接抛弃

//打印所有有结果域名过期信息

package main

import (
    "bufio"
    "context"
    "fmt"
    "io"
    "log"
    "net/http"
    "os"
    "strings"
    "sync"
    "time"
)

type Cert struct {
    Name string //域名
    Startt...

Read more

获取通过官方api获取docker状态


获取通过官方api获取docker状态

写的不好仅供参考。

package main

import (
    "context"
    "encoding/json"
    "fmt"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/client"
    "github.com/robfig/cron/v3"
    "github.com/shirou/gopsutil/v3/cpu"
    "github.com/shirou/gopsutil/v3/mem"
    "io/i...

PAMANSLOT