数据、服务报警机制是产品中比较常用的安全机制,一般而言报警功能都是预置的产品中,但是在实际项目中 , 根据部署架构的实际要求,可能通过脚本的方式进行邮件报警 。
目前公司产品均采用K8S容器化的部署方式,通过UMC云管理平台对相关服务、集群、容器进行统一监控报警,但在实际项目中,由于Linux服务器系统、架构的不同,对于系统资源以及一些特殊的容器需要单独进行监控,采用shell脚本+邮件通知的方式进行监控和报警 。
总体说明在产品运行的过程中 , 对系统资源、环境、产品的监控都是产品稳定运行的重要保证,尤其涉及系统集成的环境,一旦服务异常就会直接影响多个系统或模块的功能,对实际业务的影响比较大,所以要有必要的监控手段对环境进行监控,以保证提前暴露问题,及时修复,将业务的影响降低最低 。
1.应用场景
在生产环境中,一般需要监控和报警的内容包括系统资源和产品运行,而产品又是基于K8S的容器化部署,所以也需要对K8S服务以及相关容器进行监控:
1.K8S节点:监控K8S集群节点状态,保证服务器节点的稳定;
2.K8S系统容器:监控kube-system命名空间下的容器,保证K8S集群稳定运行的基?。?
3.Ingress容器:监控Ingress容器状态,保证外部访问时可以完成代理和容器的访问;
4.NFS服务:监控NFS服务端服务,保证NFS磁盘资源共享;
5.NFS挂载:监控Node节点的共享磁盘挂载,保证NFS磁盘资源共享;
6.容器CPU/内存:监控运行容器的CPU和内存消耗,及时处理内存泄露等问题;
7.产品访问:验证产品访问地址的可用性,保证产品的正常访问;
8.UMC平台:监控UMC平台运行的稳定性,避免产品容器无法连接UMC异常;
9.Redis集群:监控外部Redis集群的稳定性,避免UMC无法连接Redis导致访问异常 。
2.报警机制
一般平台的报警主要是在系统监控到异常时记录相应的错误日志,然后通过平台的消息功能进行消息提醒,再由管理员或者运维人员根据异常进行问题处理 。而为了提高问题发现以及处理的效率,对于紧急问题往往需要通过短信、微信、邮件等方式进行提醒,以达到更快报告问题的目的 。
1.手机短信:通过Linux服务器进行短信发送有两种方式,一种是通过服务器AT指令和串口的方式,二是通过短信平台的API接口方式;
【linux中sendmail linux shell发送邮件】2.微信/企业微信:微信/企业微信以及其他平台一般会提供API接口,可以直接调用API进行消息推送;
3.电子邮件:在Linux服务器上部署邮件工具,通过脚本和命令的方式进行邮件发送 。
3.配置过程
本次主要介绍邮件报警,在Linux服务器部署脚本,通过脚本监控相关资源,在出现异常时调用邮件工具发送邮件进行报警 。根据项目环境的具体情况,邮件报警的过程 。
1.在Linux服务器上部署邮件工具,通过rpm包进行安装;
2.邮件工具配置,配置发件服务器以及发件人邮箱;
3.部署shell脚本,通过脚本进行资源监控,并根据异常信息发送报警邮件 。
基础环境本次以CentOS 7系统为例,在服务器上部署邮件工具,并配置相关信息,包括发件服务器、发件人邮箱、用户名/密码等,如果是生产环境的内网服务器 , 还需要考虑通过Nginx进行网络代理 , 以便服务器向外网发送邮件 。
1.软件安装
本次通过sendmail和mailx工具来进行邮件发送,其中sendmail是邮件服务器 , mailx是客户端 , CentOS 7默认没有安装该工具 , 需要手动安装 。
1.如果服务器已经连接外网 , 或者可以通过yum proxy的方式连接外网 , 直接通过yum的方式进行安装:

文章插图
2.如果服务器无法连接外网 , 需要通过rpm的方式进行安装:

文章插图
注意:mailx安装时需要安装依赖 , 包括
cyrus-sasl-2.1.26-24.el7_9.x86_64.rpm、
hesiod-3.2.1-3.el7.x86_64.rpm、
procmail-3.22-36.el7_4.1.x86_64.rpm 。2.外部代理
一般生产环境大多部署在内网服务器上 , 不能直接连接外网,而在发送邮件时需要向外网发送,所以需要连接外网 , 这里有两种方式:
1.一是在外网服务器(DMZ区)通过Nginx代理邮件服务器地址,内网服务器通过调用代理端口实现邮件服务器的调用;
2.二是在外网服务器(DMZ区)部署邮件工具,通过DMZ服务器调用内网服务器脚本实现服务监控 。
由于跨服务器调用脚本监控服务比较麻烦,所以推荐采用第一种方式,并且Nginx只代理邮件服务器 , 也能避免内网服务器被攻击的风险 。
3.配置主机
安装邮件工具后,在服务器上直接配置发件邮箱信息,修改配置文件:

文章插图

文章插图
测试验证邮件发件服务器完成后就可以通过mail命令进行邮件发送测试,可以直接在服务器上执行mail命令发送邮件 。但对于监控功能而言,为了便于后续排查 , 可以将监控信息写入日志文件,并基于日志文件进行邮件发送 。
1.邮件脚本
直接扩展一个K8S节点监控的脚本 , 通过脚本进行邮件的发送测试,监控脚本:

文章插图
1.通过kubectl命令监控K8S集群node的状态,如果状态异常则写入node-send-mail.txt文件;
2.脚本执行的最后根据node-send-mail.txt的内容判断是否发送邮件,如果文件非空则通过mail发送邮件 。
2.发送测试
1.调用shell脚本,进行邮件发送测试:

文章插图
2.node-send-mail.txt文件内记录了错误信息:

文章插图
3.检查邮件 , 已经成功接收到了对应的报警邮件:

文章插图
3.定时任务
1.配置crontab定时任务,定时进行资源监控,并发送报警邮件:

文章插图
2.每间隔10分钟执行一次脚本,进行邮件报警 。
注意事项在部署mail工具进行资源的过程中 , 由于部署架构、网络环境、监控脚本不同等原因 , 配置过程也会有所区别 。
1.命令相关
Mail工具常用命令如下:

文章插图
1.用户地址为接收人邮箱地址 , 可以配置多个,用“,”分隔;
2.邮件正文可以是文本,也可以是一个文本文件 , 在发送邮件时会将文本内容作为邮件正文发送;
3.另外如果单独执行mail命令,可以查询接收的邮件:

文章插图
2.SSL证书
在实际项目中,很多时间会采用企业邮箱 , 而企业邮箱一般会采用SSL的方式来提高安全性 。对于启用SSL的邮箱,需要下载配置SSL证书文件,以163邮箱为例:
1.创建证书目录:

文章插图

文章插图
2.获取邮件服务器证书:

文章插图

文章插图

文章插图
注意:SSL证书不能直接进行copy操作,如果服务器无法联网,可以和邮件的外部代理一样,通过DMZ区的Nginx代理,将smtp.163.com:465代理成内网地址,再将上述命令的smtp.163.com:465换成代理后的地址和端口 , 从而实现证书下载 。
3.添加执行权限:

文章插图

文章插图
4.添加SSL证书到数据库:

文章插图

文章插图

文章插图
5.添加global证书到数据库:

文章插图

文章插图
6.指定受信任证书,防报错:

文章插图

文章插图
7.列出安全数据库中的证书:

文章插图

文章插图
8.修改邮箱配置:

文章插图

文章插图
3.系统邮件
对于系统接收到的邮件可以通过mail命令进行查看

文章插图
另外邮件也会保存在/var/spool/mail/root目录下,可以直接进行访问查看 。
分析总结对于平台来说,监控报警是一项必要的功能,大多数平台都会有对应的功能,但是在实际项目中,由于项目环境、网络、开发等内容的要求,可能平台的内容未必能全部满足实际需要,所以有时也需要直接通过服务器进行功能的补充 。
1.系统维护
目前公司产品均采用K8S容器化的部署方式 , 由于K8S集群以及网络、组件的复杂性,所以对于项目实施和运维人员来说,需要对Linux系统的常用命令、常用功能、日常运维、问题排查等非常熟悉,对于服务器的问题能快速定位和解决,才能保证在项目实施和运行过程中的稳定性,才能保证在出现问题时能及时进行解决 。
2.平台功能
对于平台化的产品,必要的监控是保证产品稳定运行的基?。栽谄教⒌墓讨校?需要加强对平台运维监控能力的提升,从功能、方案等角度提升平台的稳定性和易用性,才能有效支撑项目的实施与交付 。
3.项目支持
在实际项目实施的过程中,由于实施环境、部署环境、网络环境、实施内容等多方面的要求,往往会出现需要定制化的内容,并且有的定制化的内容是不适合直接移植到产品中,对于这些项目级的内容,在平台功能无法完全满足的情况下,往往会需要通过服务器或外部工具结合来处理 。
项目和产品是相辅相成的,产品的研发为项目提供支持,保证项目的实施交付,而在项目过程中,项目中遇到的问题、场景等又可以反馈给产品进行优化完善 。所以对于项目实施和产品研发人员来说,需要相互了解对方的内容,实施人员了解产品功能的使用场景,能够根据场景匹配对应的业务,提高实施的效果,研发人员针对实际业务场景进行开发,保证开发的内容可以有效支撑项目业务 , 最终才能相互支持、相互成就 。
本文由@数通畅联原创,欢迎转发 , 仅供学习交流使用,引用请注明出处!谢谢~
- 咋样在图片上编辑文字 如何在图片上进行文字编辑修改
- 微信朋友圈发长视频的方法最新 微信朋友圈发长视频的方法介绍 微信分享
- 微信朋友圈怎么发超过30秒的视频 微信朋友圈怎么发文字
- word中表格编辑 word编辑表格的基本操作
- 文档批量替换 在word中如何使用替换功能批量修改样式
- 支付宝隐藏模式 支付宝隐藏玩法
- 电脑网速慢如何提升网速 电脑网速太慢怎么提速
- 背包客的意义到底是什么 背包客有什么好处
- 内存详解 内存详细