監控生產線上伺服器的docker容器及主機

来源:https://www.cnblogs.com/mushou/archive/2018/12/04/10063787.html
-Advertisement-
Play Games

1. 部署cadvisor容器,用來收集host上的容器信息,該容器部署在需要收集容器信息的每一個主機上部署; docker run -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib ...


1. 部署cadvisor容器,用來收集host上的容器信息,該容器部署在需要收集容器信息的每一個主機上部署;

docker run -v  /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -v /dev/disk:/dev/disk:ro -p 8080:8080 --detach=true --name cadvisor google/cadvisor

2.部署grafana容器,用於將收集的主機容器數據顯示到瀏覽器

docker run -d -p 3000:3000 --name grafana  --net=host grafana/grafana

3.部署prometheus server ,選定一臺伺服器

docker run -d -p 9090:9090 -v /root/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /root/prometheus/alert.rules:/etc/prometheus/alert.rules  -v /root/prometheus/conf.d:/etc/prometheus/conf.d  --name prometheus  --net=host  prom/prometheus

更改static_configs:

4.部署node-exporter

docker run -d -p 9100:9100 -v /proc:/host/proc -v /sys:/host/sys  -v /:/rootfs  --name node-exporter --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

5.部署告警(釘釘告警)

打開 prometheus.yml文件,配置規則

rule_files:

  - "alert.rules"

創建alert.rules 文件

在文件中定義了兩個告警規則

-    alert: InstanceDown   如果有實例down了,alert 的狀態會由 ok變為pending,達到5分,觸發告警

-    alert: APIHighRequestLatency

本例prometheus為容器應用,重啟容器,也就是重新載入prometheus.yml文件和alert.rules文件

docker run -d -p 9090:9090 -v /root/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /root/prometheus/alert.rules:/etc/prometheus/alert.rules  --name prometheus  --net=host  prom/prometheus

6.部署alertmanager告警管理程式

docker run -d -p 9093:9093 --name alertmanager -v /root/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager

使用9093埠工作

更改prometheus.yml文件,加入

alerting:

  alertmanagers:

  - scheme: http

    static_configs:

    - targets:

      - "ip:9093"

主要是發生了 alert ,將報警信息發到ip:9093這個伺服器的9093埠上

配置alertmanager.yml配置文件

receivers:

- name: webhook

  webhook_configs:

  - url: http://ip:8060/dingtalk/ops_dingding/send

send_resolved: true

其中url: http://localhost:8060/dingtalk/ops_dingding/send為安裝的prometheus-webhook-dingtalk.git  發生了 alert  發給http://localhost:8060

告警信息加入釘釘

在釘釘中加入機器人,通訊錄-我的群組-軟體研發-群機器人-自定義-添加-機器人名字/添加到群組,會生成一個url地址,將該地址url: https://oapi.dingtalk.com/robot/send?access_token=a7b646af2ff248da9a3fdf7e236438e641a11853fcb5c8c20f12037591c04e26複製

將釘釘接入 Prometheus AlertManager WebHook

7.安裝 alertmanager webhook    

mkdir -p /usr/lib/golang/src/github.com/timonwong/

cd  /usr/lib/golang/src/github.com/timonwong/

git clone https://github.com/timonwong/prometheus-webhook-dingtalk.git

cd prometheus-webhook-dingtalk

make(出錯不要管他)

會生成 prommetheus-webhook-dingtalk執行程式

執行nohup ./prometheus-webhook-dingtalk --ding.profile="ops_dingding= https://oapi.dingtalk.com/robot/send?access_token=fd0ff6f99a4253279262f924e04a40b8e88f5aa7fefa8360c7a568e355e1ddbb"   2>&1 >dingding.log &

--ding.profile 可以在命令行中指定多次

該處的 https地址為在釘釘裡加入機器人時產生的url地址

8.測試成功


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • netstat命令狀態說明: 提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到 通過netstat命令查看資料庫、網站等連接情況(併發數等) 統計出所有TCP連接以及各個狀態的連接數 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a ...
  • Linux中的ps命令是Process Status的縮寫。ps命令用來列出系統中當前運行的那些進程。ps命令列出的是當前那些進程的快照,就是執行ps命令的那個時刻的那些進程,如果想要動態的顯示進程信息,就可以使用top命令。 要對進程進行監測和控制,首先必須要瞭解當前進程的情況,也就是需要查看當前 ...
  • 1.kangle官方腳本 linux下easypanel版本安裝及升級(集成了kangle web 伺服器和mysql,僅支持centos 5和centos 6)執行下麵的命令即可,安裝程式將自動安裝或者升級。 yum -y install wget;wget http://download.kan ...
  • 與jenkins構建項目記錄1不同的是通過tag拉去對應版本代碼 1、先安裝創建(git parameter) 2、general設置 name可任意命名,下麵源碼管理設置時變數會引用到。 3、源碼管理 ${tag}中tag名必須與上面Git Parameter中命名的name一致 4、設置完成進行 ...
  • 一、Spring Boot 入門 1、Hello World探究 1、POM文件 1、父項目 Spring Boot 版本仲裁中心: 以後我們導入依賴預設是不需要寫版本:(沒有在dependencies裡面管理的依賴自然需要寫版本號) 2、啟動器 spring-boot-starter-web: S ...
  • 有多種方式安裝jenkins 方式一、通過Tomcat發佈 安裝tomcat和jdk、maven1、安裝jdk環境jdk下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html( ...
  • ``` # 開啟防火牆 systemctl start firewalld.service # 防火牆開機啟動 systemctl enable firewalld.service # 關閉防火牆 systemctl stop firewalld.service # 查看防火牆狀態 firewall... ...
  • 本文最早發佈於我的51CTO博客,目前已遷移至博客園。 參考: "port的英文維基百科" ) 簡介 MAC地址定義了數據包的下一跳地址。 IP地址定義了數據包最終應該傳輸到哪台電腦上。 而埠(port)則定義了數據包中的數據應該由電腦上的哪個進程來接收。 埠是一種邏輯上的概念,用來識別一個 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...