Filebeat输出日志格式处理
使用 filebeat 可以在收集过程中进行一些简单的处理,如丢弃日志等,给后面的 kafka 等减少压力 普通文本日志格式原始日志格式: 1{"log":"2022-03-15 14:53:48.972 [http-nio-8080-exec-10] o.s.c.c.c.ConfigServicePropertySourceLocator-[227]-[INFO]-Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available\n","stream":"stdout","time":"2022-03-15T06:53:48.972854745Z"} 这里的原始日志是指要收集的日志文件的格式,上面的这个日志是被 Kubernetes 处理过的,真正程序输出的日志应该是 log 字段。 对应的...
Kubernetes之master高可用方案
之前一直用使用的负载方案是搭建一台负载均衡器,可以是 haproxy 或 nginx 或 lvs,来将多个 master 节点的 6443 端口做个负载均衡,但是考虑到负载均衡也需要高可用,所以会引入类似 keepalived 的方案来解决问题。偶然看到了 kubeasz 这个开源项目,宣称解决了 master 高可用问题,部署了一遍发现并没有额外搭建负载均衡器,研究了一下,发现了另一种思路。 使用额外的负载均衡来做高可用这种就是比较容易想到的一种方案,比如 3 个 master 节点,前面有一台负载均衡(nginx、haproxy、lvs)等,但是负载均衡本身就是一个单点故障,所以一般来说还需要另一台负载均衡,通过 keepalived 来实现 VIP 的切换使用Keepalived来实现Nginx高可用 使用Nginx做负载均衡使用HAproxy做负载均衡使用LVS做负载均衡vim nginx.conf 在文件最后添加 123stream { include stream.conf;} 然后 vim...
Kubernetes使用NFS作为存储
我们玩单机的容器,如果需要持久化的话,需要将容器目录映射到主机,但是在 K8S 环境下容器是可能会被调度到任意节点的,所以需要使用远程服务存储数据。在云平台上都会提供自己的云盘存储,但是自己搭建的 Kubernetes 没有办法使用云盘做存储,所以需要用自己搭建的存储,NFS 是比较常见的一种,其他还有 glusterfs、ceph 等。 关于 NFS 搭建教程,可以查看https://zahui.fan/posts/4b677f68/容器镜像开源地址https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner 安装 NFS client 工具所有的 worker 节点上都需要安装 NFS client Ubuntu 1sudo apt install nfs-common -y CentOS 1sudo yum install nfs-utils -y rbac...
Kubernetes之ingress-nginx安装配置
部署 ingress-nginx ingress-nginx 官方文档 https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal-clusters自建的 Kubernetes 可以参数 bare-metal 安装 1kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.2/deploy/static/provider/baremetal/deploy.yaml 部署成功后修改 NodePort,把里面 30xxx 的端口换成你想要的端口 1kubectl edit service ingress-nginx-controller -n ingress-nginx 也可以 wget...
Hugo博客批量更换url结构
之前修改过 hugo 的 url 结构,config.toml 内容如下: 12[Permalinks] posts = ":slug" 生成的 URL 类似于:https://zahui.fan/a7c8660c/ 不过这样随着文件越来越多,发布用的仓库根目录文件夹也越来越多,不好看,再加上域名后加上光秃秃的无意义的字符串也不优雅,所以决定改成https://zahui.fan/posts/a7c8660c/这样的域名结构。 修改 config.toml我们需要修改 config.toml,改变默认的 url 结构 12[Permalinks] posts = "/posts/:slug" 这样重新生成博客,url 路径就会变成新的了 配置自动跳转这样配置的话,之前的 url 连接就会全部 404 了,对于做了 SEO 的同学来说就是个灾难,所以我们需要做个跳转 在 frontmatter 添加 aliases: 123456789101112---title: "安装和配置samba共享"date:...
Linux Shell 自动补全
一直使用 kubectl 操作 k8s 集群,每次都需要查看 pod 名字、查看 service 名字等,比较麻烦,看了 kubectl 官方就支持 bash 自动补全,所以记录一下。 官方文档地址:https://kubernetes.io/zh/docs/tasks/tools/included/optional-kubectl-configs-bash-linux/ 本文以 Ubuntu20.04 下的 kubectl 为例 Bash 自动补全kubectl 的 Bash 补全脚本可以用命令 kubectl completion bash 生成。 在 shell 中导入(Sourcing)补全脚本,将启用 kubectl 自动补全功能。 然而,补全脚本依赖于工具 bash-completion, 所以要先安装它(可以用命令 type _init_completion 检查 bash-completion 是否已安装)。 安装 bash-completion很多包管理工具均支持 bash-completion。 可以通过 apt-get install...
Nginx使用module_vts模块来做监控
最近我们想要用 Prometheus 来监控 Nginx 的状态,所以看了一下有个 module 可以支持。项目地址在:https://github.com/vozlt/nginx-module-vts.git 重新编译 Nginx首先执行 nginx -V 查看编译参数,记录一下, 比如 1--prefix=/usr/local/nginx --user=www --group=www --with-stream --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.1k --with-pcre=../pcre-8.45 --with-pcre-jit...
正则表达式入门
在线测试正则表达式: https://c.runoob.com/front-end/854/ 字符匹配普通字符:普通字符按照字面意义进行匹配,例如匹配字母 “a” 将匹配到文本中的 “a” 字符。 元字符:元字符具有特殊的含义,例如 \d 匹配任意数字字符,\w 匹配任意字母数字字符,. 匹配任意字符(除了换行符)等。 量词123456*:匹配前面的模式零次或多次。+:匹配前面的模式一次或多次。?:匹配前面的模式零次或一次。{n}:匹配前面的模式恰好 n 次。{n,}:匹配前面的模式至少 n 次。{n,m}:匹配前面的模式至少 n 次且不超过 m 次。 字符类12[ ]:匹配括号内的任意一个字符。例如,[abc] 匹配字符 "a"、"b" 或 "c"。[^ ]:匹配除了括号内的字符以外的任意一个字符。例如,[^abc] 匹配除了字符 "a"、"b" 或 "c"...
Ansible系列之条件判断
在 ansible 中,使用 when 关键字来做条件判断,when 关键字即为当条件成功就执行此条任务。在 when 判断中不需要加 {{}} 字符串判断 判断符 说明 == 判断字符串是否相同,相同为真,不同为假 lower 是否全是小写,是为真,不是为假 upper 是否是纯大写,是为真,不是为假 in 判断字符串是否在另一个字符串中,是为真,不是为假 判断系统,不支持的系统直接报错退出 ansible_distribution 是 ansible 自带变量,查看变量可以用 ansible localhost -m setup 命令。 12345---- hosts: all tasks: - fail: msg="this playbook don't support CentOS" when: ansible_distribution ==...
Ubuntu安装配置vncserver
VNC(Virtual Network Computing)是一种远程桌面协议。 vnc 大致可以分为两种,一种直接查看 TTY 上正在显示的桌面(和插上显示器显示的一致),另一种是创建一个新的桌面(即 可以在一台 linux 上打开若干个桌面供若干用户使用)常用的 vnc 服务器有:x11vnc tigervnc tightvnc 我的系统是:ubuntu22.04, 如果你不是这个系统,可能需要做一些修改。参考官方文档:https://help.ubuntu.com/community/VNC/Servers 本文配置直接转发桌面显示。 直接转发桌面我这里使用的是 x11vnc , 创建 vnc 虚拟桌面请看: 香橙派配置VNC Server 安装服务端1sudo apt install x11vnc 创建密码文件1234x11vnc -storepasswd# 或者使用 vncpasswd 命令来创建,支持非交互式创建# echo 123456 | vncpasswd -f > ~/.vnc/passwd 密码文件创建在: ~/.vnc/passwd 通过...