3个月 新任基础设施工程师认为必要的基础设施知识框架

【目录】
①基础设施工程师的角色
② 待监控的系统图(7项)
③ 确定监测对象紧急程度的标准(4 个等级)
[内容]
很高兴见到你。
我叫水泽义弘,这是我在 Beyond Blog 上的第一篇文章。
2020年8月,我正式成为Beyond的一员。
目前,我们的办公地点位于德岛县三好市的四国办事处。
不,我非常抱歉……
我在波斯猫事务所工作,和井上先生在同一地点,她本人也是一只非常活泼的波斯猫。我一直很感激大家的帮助,包括在奈须猫的事情上。
虽然这是一份简短的概述,但我在文末的“个人简介”部分列出了我的职业经历,如果您感兴趣,请查看。
最近,不知为何,我开始认真地想:“我想变成苔藓”,“我想变成苔藓”。说清楚点,“不是海藻”,“是苔藓”,“是苔藓!”
这很重要。虽然考试不会考,但它极其重要。
说真的,我最近一直在沉思,就像苔藓一样,我意识到我之所以形成这种思维方式,是因为我这些年来与山口先生和苏珊·凯恩的书有过“奇妙的邂逅”。作为一个生活在日益动荡的世界里的“内向者”,我一直都在与他们的书籍进行着这种“奇妙的邂逅”。不过,以后有机会再谈这个吧。
所以,这就是这篇博客的主题。
我的第一篇博文主题是“理解IT基础设施的系统知识”。每个主题都着重于我从阅读《面向软件工程师的IT基础设施监控[实践]入门》(作者:斋藤雄一郎)一书中获得的知识,并着重于我作为一名“新手基础设施工程师”(我从一个没有经验的工程师转行而来)三个月工作期间所感受到的特别必要的要点。
因此,请原谅我目前更多地关注“运营维护”方面,而非“设计施工”方面。未来,我也希望能够撰写一些关于“设计施工”方面的博客文章。
我选择这个主题的原因是,虽然我每天都有很多机会接触到基础设施工作的“内部”,但我常常觉得,无法完全掌握“外部”的整体情况,使我无法理解内部发生的事情。
用烹饪来打个比方,通过日常的家庭烹饪,我逐渐能够烹饪一些特定的菜肴,比如炒蔬菜和汉堡牛排,但我感觉这和我一直以来遇到的困难很相似,因为我还没有完全掌握烹饪的整体框架,也就是烹饪的外在框架,比如“采购食材、切菜、加热、调味和摆盘”。
促使我转变烹饪方式的契机是我接触到了《逻辑烹饪》。具体来说,我从水岛浩的书中了解到“低温慢煮=低至中低火,每分钟升温10°C(蔬菜:最高130°C,肉类和鱼类:最高180°C)”,“盐的用量=食材重量的0.8%”,以及“用刀以30度角切菜”。这些知识帮助我理解了高度可重复的烹饪要素,大大减轻了烹饪的负担。从下个月开始,我打算不仅在家尝试这些方法,还会使用像Hot Cook和Healsio这样的厨房电器。
我有点跑题了,但作为一名基础设施工程师,我开始觉得如果我们现在不实施这个流程,那将是一个巨大的浪费,所以我决定回顾一下基础设施知识的“全貌”。
我撰写本文,希望它能对以下人群有所帮助:
① 那些立志成为基础设施工程师的人
②几个月前加入公司的新基础设施工程师
3. 一年后的我
好,我们开始吧。
基础设施工程师的角色
①基础设施设计
→我们会考虑各种因素,以确保我们能够达到客户期望的绩效水平。
“安全性、冗余性、可用性、可维护性、可靠性”——不太可能导致故障
该设计非常精细,包含了构建基础设施环境所需的要素。
② 基础设施建设
→根据设计文档构建不易发生故障的基础设施环境。
3)了解故障警报
→尽早发现和理解故障警报至关重要。
我们公司使用诸如“Zabbix”和“Datadog”之类的监控工具。
我们还创建了一个系统,可以在五分钟内提供初步响应。
新员工培训后,我在日常工作中对此深有体会
具体来说,即使是几秒钟的延迟也会对客户服务产生重大影响。
想象一下这样的情况:你访问一个你想浏览的网站,但需要等待几秒钟。
我想你应该能看出这件事影响的严重性。
在调查原因时,只需几秒钟即可在“访问日志”或其他来源中找到问题所在。
这样一来,找出问题所需的时间将比正常情况下长好几倍。
④恢复反应
→我们公司的目标是“在发生故障时尽快恢复”。
我们正在建立一套系统。
具体来说,我们建立了一个系统,其中“基础设施工程师”全年 365 天、每天 24 小时都在现场,
并且我们每天都力求持续改进。
此外,为了确保与利益相关者的沟通顺畅,我们使用“Chatwork”。
被监控对象系统图(7)
① 实时监控(服务器登录状态)
→监控是否能够通过 ICMP 协议与目标主机进行 Ping 通信。
② 端口运行状态监控(服务器运行状态)
→ 监控特定端口(80、443 等)的通信是否可用。
→使用 top 或 ps 命令进行检查。
3)过程存活监测
→ 监控特定进程是否正在运行以及运行次数(Apache、MySQL、Zabbix-agent 等)。
(1)MySQL
- 连接数受限于 my.cnf 中的值。
- 复制延迟仅适用于从服务器。
原因是当数据从主服务器传输到从服务器时,
这是因为它用于监测网络延迟。
・对于 innoDB 缓冲池,请提前使用 mysqltuner.jp。
请考虑调整或增加实例的物理内存
→找出负载增加的过程。
4. 性能监控
→监控被监控对象的“性能指标”。
(1)CPU负载平均值
⇒CPU平均执行等待状态。
每 5 秒计算一次,并分别取 1 分钟、5 分钟和 15 分钟的平均值。
具体来说,您可以使用“top -c”命令来检查这一点。
(2)CPU空闲
⇒CPU可用性。
(3)CPU I/O等待
⇒CPU在输入输出处理期间的等待时间。
⑤ 资源监控
→监控被监控对象的“使用情况”。
(1)内存使用情况
⇒当总容量不足时,Linux 系统中会激活“OOMKiller”程序,此时
它会尝试通过终止占用大量内存的进程来释放内存。
因此,根据被强制终止的进程,可能会发生系统故障。
具体来说,您可以使用“free”命令来检查这一点。
(2)交换使用率
⇒ “交换”是指当主内存不足时,将内存内容临时转移到硬盘的过程。
⇒ 换位(反复换出/换入)
(a)“换出”是指当主内存不足时,将未使用的内存页换出。
将数据从某个区域移动到交换内存,从而释放主内存空间。
(b)“交换入”是指将交换内存中的内存页重新加载。
请注意,从交换内存读取数据比从主内存读取
它的速度要慢数万倍,并且会显著降低整个服务器的性能
(3)磁盘使用率
⇒如果磁盘使用率增加,请删除不太重要的历史日志和二进制文件。
此外,设置日志轮换机制有助于防止日志膨胀。
⑥ 外部监测
→ 监控包含您内容的特定网页是否可以访问。
在与用户实际操作相同的条件下,通过负载均衡器
→ 根据 ping 响应时间监控与 Web 服务器的通信路径是否中断。
→ 如果发生丢包,则表示通信速度已达到极限。
网络设备可能出现故障,或者网络设备驱动程序存在
⑦ 信息获取
→ 获取有关被监控对象的信息。
(1)当“系统主机名”的值发生更改时发出通知。
(2)当“uname 命令”的结果值发生改变时发出通知。
(3)当“/etc/passwd 文件校验和”的值发生更改时发出通知。
确定监测对象紧急程度的标准(4 个等级)
① A级
⇒由于服务可能中断,此事必须作为首要任务予以解决。
(a)实时监测中的警报发生
(b)港口健康监测期间生成的警报
(c)外部监控期间(特定客户网站)发生警报
(d)进程存活监控期间生成的警报(Apache)
(e)进程存活监控期间生成的警报(MySQL)
② B级
⇒如果无人处理,服务可能会暂停,因此这是需要优先处理的事情。
(a)CPU负载平均值警报发生
(b)CPU空闲警报
(c) CPU I/O等待警报发生
(d)内存使用情况警报
(e)进程运行监控中的警报发生(Zabbix代理)
③ C级
⇒这不会立即影响服务,但需要尽快做出回应。
(a)交换使用率警报
(b)磁盘使用情况警报
④ 我排名
仅作信息通报。将对事件原因展开调查。
(a)系统主机名变更通知。
(b)通知“uname 命令”产生的更改。
(c)“/etc/passwd 文件校验和”的更改通知。
概括
您觉得呢?
它们对了解基础设施运营的整体情况有帮助吗?
自 2020 年 8 月我开始担任基础设施工程师以来,我逐渐意识到这项工作很有意义,因为它让我能够支持我们客户重要的“信息资产”。
然而,与此同时,我每天都感到紧张和焦虑,不断碰壁。说实话,我不知道这三个月我取得了多大的进步,但我认为我唯一能做的就是继续每天努力,一步一个脚印地增加我现在能做的事情。
幸运的是,在我提出并思考了自己的假设之后,总有人愿意倾听我的问题,对此我非常感激。
在此过程中,我希望继续努力工作,成为一名基础设施工程师,为所有利益相关者提供服务。
很抱歉这篇文章这么长,但我终于可以谈谈我作为内向者的经历了。抱歉……
原因是我开始觉得“基础设施工程师”这个职业可能是“内向型人格”能够适应的环境之一。
我现在正处于一个能够自然而然地接受并发展自己内向性格的阶段。然而,直到29岁,我完全没有这种感觉,并且一直否认自己是内向的。
我之所以能够接受这些,是因为我拥有了合适的机遇,但对我来说,这是一段极其艰难的旅程……
因此,如果我能通过担任基础设施工程师的工作来帮助内向者,我个人会非常高兴。
我们知道还有很长的路要走,但希望您能像苔藓一样,以长远的眼光看待我们。非常感谢您一直以来的支持。
0