DevOps文化 & SRE实战分享平台

0%


文章声明:此文基于木子实操撰写
生产环境:MikroTik RouterOS 6.44.5
问题关键字:ROS路由器获取访客真实公网IP及内网回流解决方法


起因

今天开发的同事反馈,在测试环境无法获取客户端IP信息,但在预发布环境可以,这样就造成业务端无法统计访客来源,这对业务造成了诸多的不便。第一时间想到haproxy的问题,于是上服务器查看了一下,发现日志信息如下:

1
2
Apr 20 18:29:04 localhost haproxy[25679]: 192.168.8.254:1180 [22/Apr/2021:18:29:04.517] https-in~ bk_git.oubayun.com/git.oubayun.com 0/0/1/38/39 403 391 - - ---- 10/10/1/1/0 0/0 "GET /api/xxx HTTP/1.1"
Apr 20 18:29:04 localhost haproxy[25679]: 192.168.8.254:1178 [22/Apr/2021:18:29:04.509] https-in~ bk_git.oubayun.com/git.oubayun.com 0/0/1/52/53 200 1006 - - ---- 9/9/0/0/0 0/0 "GET /api/xxx HTTP/1.1"

从日志来看,返回的地址是ROS的网关地址192.168.8.254,问题一定出在ROS上,其实原因很简单,因为ROS也是一个Linux操作系统,如果有使用过Linux iptables做防火墙的同学,相信大概都知道是什么原因。为了使整个内网的服务器可以共享上网,在设置ROS时,我们一般都会设置一条srcnat规则(源地址转换),Action设置为”masquerade”,masquerade是snat的一个特例,主要用在无固定IP网关的情况下,比如:adsl拨号等,masquerade比snat效率低的原因是snat直接指出需要伪装的源地址,而masquerade永远以默认网关地址为IP伪装源地址,所以效率会慢一些,其次只能用在外网IP只有一个的情况,如果有多个wan接口就不能用masquerade,而只能用snat,因为snat可以手工指定多个需要伪装的源IP地址,而masquerade却只能找到一个地址,就是默认网关的地址。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:CentOS Linux release 7.9.2009 (Core),mysql Ver 14.14 Distrib 5.7.33
问题关键字:MySQL 5.7 快速导入导出大SQL文件及简单参数调优


前述

昨天的发文《CentOS 7.9安装与配置MySQL 5.7》是为了今天测试环境而部署,但遇到一个迁移数据库,大家都会遇到的问题,导入、导出大文件数据库慢问题,尝试了很多种方法,最终发现这种方法最管用,先做一个总结性的输出。
47GB SQL文件从阿里云RDS导出至公司机房花费4小时左右,每秒钟大约3.3MB/s,也就是47*1024/240/60*8=26.72/Mbps/s(因公司机房带宽总共50Mbps,为防止影响其它业务限制了单节点下载速度,所以正常如果你的带宽够大,下载的速度应该更快。)
再将47GB SQL文件导入数据库服务器,整个花费3.5小时左右,导入完成以后,整个数据量为:116GB(服务器配置:16C64G)

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:CentOS Linux release 7.9.2009 (Core),mysql Ver 14.14 Distrib 5.7.33
问题关键字:CentOS 7.9安装与配置MySQL 5.7


写在最前面

MySQL8已经发布很久,但作为主力军的MySQL5.7想立马切换过来,对于企业来说还是有一定困难的,所以才会有这篇MySQL5.7安装与配置基础教程。本教程主要与大家一起学习如何在CentOS 7.9上安装与配置MySQL5.7,其中包括:MySQL5.7基础安装、修改数据库存储位置、配置允许远程连接访问、创建与删除用户&数据库等。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:Docker 19.03.8,Kubernetes v1.18.2
问题关键字:Docker镜像拉取异常


写在最前面

自从Docker诞生以来,Docker镜像的拉取一直是一个老大难的问题。在前几年Docker在国内还没有普及的时候,基本上国内没有镜像源,部署一套Kubernetes因为镜像问题就吓退了一批同学。随着国内Docker应用的普及,国内的Docker镜像源开始慢慢多起来了,但稳定性也是一个让人头疼的问题,这不使用了多年的gcr.azk8s.cnquay.azk8s.cndockerhub.azk8s.cn最近也陨落了403。今天木子梳理了一下当前国内还可用源,分享给各位同学,希望对各位同学有所帮助。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:macOS Big Sur 11.1
问题关键字:Gitee Pages图床访问404错误


写在最前面

在博客系统、博客编辑器、微信公众号编辑器等选择上,木子可谓呕心沥血,中间使用过:Typora、MarkdownPad、VSCode,Wordpress、Hexo,Git、FTP、Sync等等,其中还有很多已经忘记了,而且目前的这一套vNote+Gitee图床+自定义Hexo Docker,过程中木子也折腾了很久,也算是比较符合自己的需求了。下面木子简单来聊一聊这一套解决方案。

阅读全文 »


文章声明:此文基于木子意愿撰写
生产环境:地铁上@[email protected]
问题关键字:时间成本


取关起因

最近朋友圈大佬推了一波公众号,于是关注了,结果……一堆广告、吸粉、抽奖,刚开始以为只是偶尔发发,毕竟有读者,才有写作的动力,可以理解。可在持续关注的两周内除了以上说的几种情况,木子几乎没有关注到任何一篇真正有养分的文章(IT技术类文章),果断取消关注(也许个人太过于理想),回看在这个高速发展的时代,各种自媒体、公众号平台的出现,我们开始有些浮躁了(木子也不列外),沉淀自己、扎实基础、以不变应万变,是我们必须要去做的了,不然35岁的终结点可能来得更早。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:CentOS Linux release 7.9.2009 (Core), Elasticsearch 7.9.1, Zabbix 5.0.7
问题关键字:Zabbix Elasticsearch


写在最前面

昨天木子写了一篇关于在《CentOS 7.9上部署Elasticsearch 7.9.1单机版》,今天我们来聊一聊怎样使用Zabbix监控Elasticsearch集群健康状态,Elasticsearch自身提供了对应接口,可以获取其集群的健康状态curl --user username:password -XGET http://127.0.0.1:9200/_cluster/health?pretty,还有很多其它命令可以获取对应ES集群信息,详细参考[参考文献]中ES API文档链接。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:CentOS Linux release 7.9.2009 (Core), Elasticsearch 7.9.1, Kibana 7.9.1
问题关键字:bootstrap checks failed,Unassigned_shards


ES基础知识

Elasticsearch是目前最流行的全文搜索引擎,它可以快速地存储、搜索和分析海量数据,维基百科、Github均在使用。Elasticsearch的底层是开源库Lucene,但是你没法直接用Lucene,必须自己写代码去调用它的接口。Elasticsearch是Lucene的封装,提供了REST API操作接口开箱即用。本文从零开始,讲解如何使用Elasticsearch搭建自己的全文搜索引擎。Elasticsearch既可以单机部署,也可以集群部署。这仅仅只是一个单机版简单安装入门教程,想要更多的了解Elasticsearch,可以参考其官方文档。

阅读全文 »


文章声明:此文基于木子实操撰写
生产环境:Windows Server 2008 R2+
问题关键字:Windows Server 2019,tls,tls1.3,tls1.2,tls1.1,tls1.0,ssl,Winodws加密套件,cipher suites


题外话

今天(2021年1月4日)到公司比较早,大概7点半左右,去洗茶具的时候碰到打扫卫生的阿姨,阿姨很热情,我们互相打了一个招呼,本以为仅仅只是一个招呼,没想到阿姨也去茶水间,就和我聊起来了,“这么早到公司了?”,我说:“今天起的比较早,就早点过来公司了。您也这么早,几点钟上班了?”,阿姨说道:“早上6点,晚上8点,13个钟。”,“这么久啊?”“是啊,早上5点起床,晚上10点到家,6点20还要开早会。没有办法啊,没有文化,其他事也做不了,我读到二年级,没有交过学费,家里穷,哪里有钱交学费了,两年每次学校开大会,都被拉到台上点名批评,自己读不下去了,就不读了。”,说着眼泪润红了双眼。不想再听下去,个人泪点有点低,怕有点收不住。想洗完茶具就走了,阿姨还一直在说,中间省略了很多字……,最后我问了一下:”阿姨,您哪里人?”,“贵州大山里的”,说着转过头开始弯腰工作了,我也走了,走的时候打量了一下阿姨的背影,比我父母年龄应该还大些,两鬓斑白,但人很精神,衣着干净、整洁,仪表形态都很端庄。突然想,自己有可以不努力奋斗的理由吗?深圳就是一个持续奋斗的城市。看到拼夕夕的知乎回复,可能大家都不愿意接受那个事实,会有一堆怼,但Ta却是真实写照。在2021年的第一天上班,阿姨给我很好的上了一堂课,以此激励所有在外打拼的底层人民,生命不止,奋斗不息。今天(2021年1月5日)早上我又在茶水间碰到那个阿姨,依旧是那个笑容、那个招呼,生活继续……

写在最前面

最近在配合Amazon做一些面向开发者的信息安全审计工作,涉及到的内容比较多,其中HTTPS基于HTTP的传输加密和身份认证是考核的重点之一。这也是木子今天要讲的,怎样在Windows上IIS Web服务器打造A+证书等级?需要注意的是随着证书安全等级要求越来越高,而微软又放弃对Windows Server 2008 R2的更新支持,在Windows Server 2008 R2上已经很难打造出A+证书等级了。例如:从2018年3月开始,任何不支持Perfect Forward Secrecy或AEAD套件的Web服务器的最高等级就只有B级了,当然其中还涉及客户端浏览器支持的加密套件问题等。

阅读全文 »


文章声明:此文基于木子实操撰写。
生产环境:Windows Server 2008 R2 Datacenter,runtime:3.1-alpine Docker
问题关键字:未能创建 SSL/TLS 安全通道,HandShake Failure,The SSL connection could not be established


问题说明

前几天运维同事反馈开发同事在Windows 2008 R2 Datacenter服务器上运行DotNet Framework程序出现无法正常建立SSL/TLS连接的情况,在自己的电脑上运行是OK的,代码也没有改过。于是我问他改了服务器上什么配置没有,他说改了注册表也不行。接过这个坑,心里万马奔腾,没事改注册表,这还能够回滚吗?这坑还可以越得过去吗?连忙问了一下,改注册表有记录吗?他说还在服务器桌面上,松了一口气,还可以回滚(后来回滚操作的时候发现他是直接从网上COPY的别人写的注册表文件,COPY过来的是乱码的,所以实际导入的都是错的……)。先根据对应注册表修改文件改回了注册表配置,重启服务器。

阅读全文 »