數據、服務報警機制是產品中比較常用的安全機制,一般而言報警功能都是預置的產品中,但是在實際項目中 , 根據部署架構的實際要求,可能通過腳本的方式進行郵件報警 。
目前公司產品均采用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中如何使用替換功能批量修改樣式
- 支付寶隱藏模式 支付寶隱藏玩法
- 電腦網速慢如何提升網速 電腦網速太慢怎么提速
- 背包客的意義到底是什么 背包客有什么好處
- 內存詳解 內存詳細
