Minikube 中使用 Helm 安装 Prometheus 监控大全套

Minikube is a tool that allows you to run a Kubernetes cluster on your local machine. It is designed to make it easy to develop and test applications that will be deployed to a production Kubernetes environment. Minikube runs a single-node Kubernetes cluster inside a virtual machine on your local machine, which allows you to simulate a real-world Kubernetes environment without the need for additional hardware. ...

2023-03-15 · 6 min

Elasticsearch 跨集群迁移方案对比

elasticsearch-dump、logstash、reindex、snapshot 方式进行数据迁移,实际上这几种工具大体上可以分为以下几类: scroll query + bulk:批量读取旧集群的数据然后再批量写入新集群,elasticsearch-dump、logstash、reindex 都是采用这种方式。 snapshot:直接把旧集群的底层的文件进行备份,在新的集群中恢复出来,相比较 scroll query + bulk 的方式,snapshot 的方式迁移速度最快。 从源 ES 集群通过备份 API 创建数据快照,然后在目标 ES 集群中进行恢复,无网络互通要求、迁移速度快、运维配置简单、适用于数据量大,接受离线数据迁移的场景。Snapshot and restore 模块允许创建单个索引或者整个集群的快照到远程仓库。所以首先需要创建一个存储快照的地方,存储方案可以选择一个 NFS 的共享存储,或者对象存储。 ...

2023-01-09 · 9 min

Logstash 用日志时间代替时间戳

最近工作中遇到的一个问题,网络组把网络设备的“陈年”老日志传到 ELK,这样的问题就是日志的时间是过去的,但是 Logstash 在生成时间戳然后输入到 ES 时,默认的是当前的时间戳。于是需求就是将日志中的时间代替它生成的时间戳,开搞! ...

2022-12-29 · 2 min

使用 parted 操作对超大硬盘进行分区

我承认我可能是标题党了,因为每个人对“大”的理解肯定是不一样的,更何况我说的是超大。其实就是 10TB,对我一个没见过大世面的行业新人和 fdisk 来说,它确实算大的了,本文介绍对 parted 的学习和实际使用。 ...

2022-12-25 · 10 min

Shell 脚本加密的一些思考

今天同事请教我一个问题,说不想让别人看到脚本执行的内容,我一开始脸懵,后来才了解到,她是不想让用户看到脚本的内容(卸载软件的路径),以防软件的文件被人恶意破坏,导致不能正常运行等问题,于是便有了本文。 ...

2022-11-02 · 2 min

MySQL 的 MHA 高可用安装踩坑记录

MHA 是一种 MySQL 高可用解决方案,可用于 Position 或 GTID 模式下的主从复制架构,可以在主从故障时自动完成主从切换,并且最大程度地保持数据一致性。MHA 由管理节点(Manager)和数据节点(Node)组成,一套 MHA Manager 可以管理多套 MySQL 集群。当 Manager 发现 MySQL Master 出现故障时,自动将一个拥有最新数据的 Slave 提升为 Master,并让另外的 Slave 重新指向到新的 Master 上来。 ...

2022-10-18 · 9 min

OpenResty+Keepalived 组建高可用集群

OpenResty 是一个基于 Nginx 的 Web 平台,可以使用其 LuaJIT 引擎执行 Lua 指令码。由章亦春建立。2011 年之前,它最初由 淘宝网 赞助,2012 年至 2016 年主要由 Cloudflare 支援。自 2017 年起,主要得到 OpenResty 软体基金会和 OpenResty 公司的支援。OpenResty 旨在构建可延伸的 Web 应用、Web 服务和动态 Web 闸道器。OpenResty 的架构是基于几个 nginx 模组,这些模组已经被扩充,以便将 nginx 扩充为一个 web 应用服务器,处理大量的请求。 ...

2022-09-15 · 8 min

Shell 学习之 getopt 和 getopts

getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数。 getopts 是 Shell 内建命令,getopt 是一个独立外部工具 getopts 使用语法简单,getopt 使用语法较复杂 getopts 不支持长参数(如:--option),getopt 支持长参数 getopts 出现的目的是为了在不太复杂的场景代替 getopt 较快捷地执行参数分析工作 getopts 负责参数解析,可以方便地提取参数值,getopt 只负责按规则重新对参数进行排列,进一步解析需要自行编写代码处理 ...

2022-09-11 · 5 min

LVM 创建和扩容

LVM 是 Logical Volume Manager(逻辑卷管理器)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制。LVM 将一个或多个磁盘分区(PV)虚拟为一个卷组(VG),相当于一个大的硬盘,我们可以在上面划分一些逻辑卷(LV)。当卷组的空间不够使用时,可以将新的磁盘分区加入进来。我们还可以从卷组剩余空间上划分一些空间给空间不够用的逻辑卷使用。 ...

2022-08-14 · 4 min

Nginx 配置 SSL 证书、黑白名单

HTTP 协议由于其简单快速、占用资源少,是一种用于分布式、协作式和超媒体信息系统的应用层协议,是互联网数据通信的基础,一直被用于网站服务器和浏览器之间进行数据传输。然而,HTTP 是明文协议,不会对数据进行任何方式的加密,在数据传输过程中存在明显安全隐患。 当黑客攻击并窃取了网站服务器和浏览器之间的传输报文时,可以直接读取传输的信息,造成网站或用户资料的泄露。因此,HTTP 不适用于敏感信息的传播,此时需要引入 HTTPS(超文本传输安全协议)。 HTTPS HTTPS(Hypertext Transfer Protocol Secure)是一种以计算机网络安全通信为目的的传输协议。它在 HTTP 基础上加入了 SSL/TLS 层,从而具备保护数据交换的隐私性、完整性和对网站服务器身份认证的功能。简单来说,HTTPS 就是安全版的 HTTP。 在 Nginx 服务器上安装证书 您可以将已签发的 SSL 证书安装到 Nginx 或 Tengine 服务器上。本文介绍如何下载 SSL 证书并在 Nginx 或 Tengine 服务器上完成配置。 编辑 Nginx 配置文件(nginx.conf),修改与证书相关的配置。 # 以下属性中,以 ssl 开头的属性表示与证书配置有关。 server { listen 443 ssl; # 配置 HTTPS 的默认访问端口为 443。 # 如果未在此处配置 HTTPS 的默认访问端口,可能会导致 Nginx 无法启动。 # 如果您使用 Nginx 1.15.0 及以上版本,请使用 listen 443 ssl 代替 listen 443 和 ssl on。 # 网上有些文档仍在使用 ssl on,该写法已被官方弃用。 server_name yourdomain; root html; index index.html index.htm; ssl_certificate cert/yourdomain.com.crt; # (服务器证书) ssl_certificate_key cert/yourdomain.com.key; # (私钥文件) ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 表示使用的加密套件类型。 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 表示支持的 TLS 协议版本,请根据实际安全策略评估是否启用 TLSv1.1。 ssl_prefer_server_ciphers on; location / { root html; # Web 网站程序存放目录。 index index.html index.htm; } } 设置 HTTP 请求自动跳转 HTTPS server { listen 80; server_name yourdomain; # 需将 yourdomain 替换为证书绑定的域名。 rewrite ^(.*)$ https://$host$1 permanent; # 将所有 HTTP 请求重定向到 HTTPS。 location / { index index.html index.htm; } } 或者可以这样 server { listen 80; server_name dev.wangsl.com; return 301 https://$server_name$request_uri; } 其他 Web 服务器或其他语言的实现方式此处不赘述。 记录一个 SSL 配置生成器 SSL Configuration Generator https://ssl-config.mozilla.org/ Nginx 的黑白名单 Nginx 提供了基于 IP 的简单访问控制功能。例如,若要禁止 1.2.3.4 这个 IP 地址访问服务器,可在配置文件中添加如下指令: ...

2022-07-12 · 3 min