Alan's BLOG
  • archives
  • posts
  • tags
  • about
  • quote
  • search
Home » Tags

monitor

自動化SSL憑證監控與到期通知系統

👨‍💻簡介 最近因為憑證越來越多,需要監控什麼時候到期,當到期時發送到期通知,因此撰寫一個簡單的小程式來完成。 這次使用Python和Telegram Bot來監控SSL證書的到期時間並發送通知。並使用GCP工具,如CloudFunction和CloudScheduler做部署平台。 🛠️使用工具 Python 3.9 Telegram Bot(Webhook) CloudFunction CloudScheduler 📝功能需求 取得憑證到期時間 到期後發送通知 透過 Telegram Bot 發送訊息 讀取 yaml domain list 設定環境變數 CloudFunction 設定 CloudScheduler 排程設定 🎯Setup 1. 取得憑證到期時間 def get_ssl_cert_expiry_date(domain): """ 取得 SSL 證書的過期日期。 參數: domain (str): 需要檢查SSL證書過期時間的域名。 返回: datetime: SSL證書的過期日期,如果獲取失敗則返回None。 """ # 建立SSL上下文,建立一個安全的“環境”來管理SSL設定和操作 ssl_context = ssl.create_default_context() # 包裝socket對象,將基礎的socket通訊轉變為加密通訊 conn = ssl_context.wrap_socket(socket.socket(socket.AF_INET), server_hostname=domain) # 設定連接的超時時間為 3 秒,防止長時間等待 conn.settimeout(3.0) try: # 通過加密的連線嘗試連接到服務器的443端口(HTTPS) conn.connect((domain, 443)) # 取得服務器的SSL證書訊息 ssl_info = conn.getpeercert() # 解析證書中的過期時間 expire_date = datetime....

2024-04-07 · 4 min · 669 words · Alan

K8S-monitor

📔心得 之前都介紹docker監控container,這次來點不一樣的,直接裝在k8s裡面去監控pod的一些指標。 基本的指標像是cpu, mem, pod數量, node數量等等,都能透過kube-state-metrics完成,而如果想要監控一些流量的指標,像是tcp連線數,tw數等,則是需要另外在服務的pod裡另外寫node-exporter的container,組成side-car的形式,讓exporter將指標送往prometheus。 在撰寫的過程,遇到比較大的難題是prometheus的config檔撰寫,一開始打算使用docker-compose的方式起monitor服務,然後去call k8s cluster取得相關指標,但常常call不到服務,可能是因為minikube的關係,在本地也跑docker,最後改成直接安裝在k8s裡面,另外建立一個namespace放監控相關的服務,有機會在測試kind以及k3s。 demo用的deploy使用skaffold這本地開發k8s的神器,搭配kustomize可讓我依據所需測試的環境下去做自動佈署,有機會再另外介紹這工具。 之後預計會再新增prometheus adapter,讓我的prometheus metrics可以成為我hpa的擴縮判斷,因為基本的hpa指標只有cpu以及mem,如果可以依照網路流量變大,幫我擴展pod,當流量變小時幫我縮pod,讓我能自定義指標,相信使用k8s的效益會更大。 🔗詳細專案位置 –> https://github.com/sz9751210/k8s-monitor ...

2022-10-17 · 1 min · 72 words · Alan

ELFK-stack-monitor

📔心得 因最近在研究elk-stack,藉此紀錄一下使用docker-compose建立起elk-stack的架構,在建立的過程中,比較多遇到的是記憶體使用率的配置不足,導致容器無法成功啟動,或是config檔權限的問題,因此在filebeat的部分會直接把config檔放進去並改成root權限。 之後希望能再增加logstash的pipeline功能,在實務上可多個服務做篩選,以及elasticsearch的資料安全性配置SSL和叢集架構,並導入ILM做log的空間管理。 監控的部分則是拿之前做的小專案直接套用並呈現,所以整體流程大致上差不多,多了個elasticsearch_exporter,可查看更多elasticsearch的整體狀況,例如index、shard的數量,資料大小,寫入速率等等。 🔗詳細專案位置 –> ELFK-stack-monitor 👨‍💻簡介 🔰ELFK-stack:使用docker-compose建立起elk-stack的架構,主要先從alpine產生假資料並存到filebeat讀取的資料夾,接著filebeat將資料送往logstash,在實務上,會在logstash做filter的功能(未來會新增),接著送到elasticsearch存起來,並透過kibana的ui下去做搜尋所需的log資料。 🔰Monitor:使用cadvisor監控所有容器以及elasticsearch_exporter監控elasticsearch的狀態,並把資料送到prometheus儲存起來,最後透過grafana的ui呈現。 ...

2022-07-03 · 1 min · 45 words · Alan
© 2024 艾倫的程式之旅 Powered by Hugo & PaperMod