中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Agentless監控實踐中的預警指標采集

發布時間:2020-08-10 14:39:55 來源:ITPUB博客 閱讀:163 作者:宜信技術學院 欄目:網絡管理

很多公司已經開發了監控解決方案,解決了指標收集、展示、預警發送等一系列問題。

本文介紹的監控解決方案由高性能時序數據庫InfluxDB、時序分析監控工具Grafana及Agentless自動化工具Ansible構成:Ansible負責不間斷抓取服務器硬件指標數據,并將數據存儲在數據庫InfluxDB中;時序分析監控工具Grafana負責從InfluxDB中讀取并展示指標數據,設定閾值,配置預警。

一、開發環境

通過三臺本地虛機還原監控對象:一臺為監控服務器(monitor),另兩臺為可接入監控服務的服務器(server1和server2)。

使用Vagrant管理開發環境,執行vagrant up monitor命令,通過下方Vagrantfile開啟并配置監控服務器。如果需要把server1和server2接入監控服務中,可以稍后啟動這兩臺虛機服務器。

Agentless監控實踐中的預警指標采集

Ansible負責配置監控服務器,包括安裝InfluxDB、Grafana及Ansible以及配置監控服務。為了保證代碼整潔,結構清晰,每個工具的安裝任務都保存在單獨的YML文件夾中。include_tasks可動態地將分組后的任務納入整個流程中。

Agentless監控實踐中的預警指標采集

二、監控服務配置

監控服務配置步驟如下方monitoring-configuration.yml文件所示。首先,創建monitor數據庫,生成API,用于完成各項數據庫操作。通過Ansible URI與網頁服務交互。從監控對象服務器中提取的所有指標均存儲在監控數據庫中。

接下來創建Grafana數據源,對接數據庫InfluxDB,讀取全部指標數據。Grafana提供API,支持通過json格式的內容最大限度地利用配置。除數據源外,還創建了Slack通知渠道和第一個面板。

Slack通知渠道指向測試版Slack工作區。用戶可創建自己的工作區,并邀請運維人員加入。同時創建傳入webhook,取代json URL字段值。

初始面板會顯示已使用內存百分比。用戶可以添加其他指標或創建新面板。可將閾值設定為95%,這樣便能直觀地查看展示結果;同時配置預警:當最后五個指標值大于等于95%時,則向Slack渠道發送通知。

Ansible支持在多個服務器上同時執行任務。此外,Ansible可通過清單文件(/etc/ansible/hosts)了解目標服務器的分組情況。在監控服務配置期間,在庫存文件中創建 monitored_servers分組。該組內的所有服務器會被自動監控。

服務器接入監控服務后,為防止Ansible核驗SSH密鑰,需禁用Ansible配置文件(/etc/ansible/ansible.cfg)中的默認功能,以便采集新增服務器的指標。

通過Ansible playbook(playbook-get-metrics.yml)連接所有監控對象,提取所有相關指標。Ansible playbook位于 /etc/ansible/playbooks目錄下,通過CRON配置,每分鐘執行一次:每分鐘采集、存儲、顯示一次指標數據;如發現問題,則發送預警。

Agentless監控實踐中的預警指標采集

Agentless監控實踐中的預警指標采集

三、采集指標數據

下方playbook-get-metrics.yml文件負責從monitored_servers中提取所有重要指標,并將采集到的數據存儲在monitor數據庫中。初始面板僅采集內存占用比例。用戶可在playbook中添加任務,采集其他指標。

InfluxDB數據存儲API用于存儲監控數據庫中的指標數據。192.168.33.10為監控服務器的IP地址,8086為InfluxDB端口號。數據庫中,已使用內存的key為used_mem_pct。用戶需為每個指標配置合適的key。

Ansible默認會采集目標主機信息,用于執行任務。例如,根據主機名稱(ansible_hostname)可以判斷指標從哪個服務器上采集的。

此外,通過Ansible采集到的實際使用內存(ansible_memory_mb.real.used)和累計實際使用內存(ansible_memory_mb.real.total)可以計算出內存消耗百分比。掌握這些數據后,可以執行ansible monitor -m setup -uvagrant -k -i hosts命令。彈出SSH密碼時,輸入vagrant。前述信息均為json格式,可使用點符號訪問值。

Agentless監控實踐中的預警指標采集

四、在監控服務中接入服務器

執行vagrant up monitor命令,啟動監控服務器。

然后在瀏覽器中輸入http://192.168.33.10:3000,訪問Grafana。用戶名和密碼均為admin。點擊used_mem_pct面板鏈接,查看折線圖中監控服務器的數值。

接入其他服務器,查看折線圖中的數值。啟動接入其他服務器,查看折線圖中的數值。啟動server1,執行vagrant up server1命令,繼續執行ansible-playbookplaybook-add-server.yml -u vagrant -k -i hosts命令。-u參數用于定義SSH用戶,-k參數提示輸入密碼,-i用于定義監控服務器。

獲取新服務器IP地址和SSH證書后,便可實現Ansible與服務器對接。在監控服務器/etc/ansible/hosts文件中插入一行代碼后,便可將服務器接入監控服務中。CRON再次執行playbook-get-metrics.yml時,server1便會成為監控對象。這樣就可以采集、存儲、展示server1的各項指標數據。

Agentless監控實踐中的預警指標采集

五、結論

本文介紹的監控解決方案成本較低且易于實施,具有以下優勢:

  • Ansible不需要在所有監控對象中安裝agent;
  • 所有指標數據存儲在高性能時序數據庫InfluxDB中;
  • 利用Grafana統一展示數據,并支持配置預警。

作者:Gustavo Carmo

編譯自:How to Get Metrics for Advance Alerting to Prevent Trouble

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莱阳市| 京山县| 晋江市| 体育| 沐川县| 醴陵市| 商城县| 苗栗市| 色达县| 隆林| 太康县| 长武县| 肃南| 大英县| 台东县| 高邑县| 黑山县| 望奎县| 萍乡市| 安阳市| 阜阳市| 义乌市| 婺源县| 卓资县| 榆中县| 碌曲县| 兖州市| 通州市| 边坝县| 永城市| 平山县| 合川市| 昌图县| 壤塘县| 兴安盟| 虞城县| 旅游| 胶州市| 米脂县| 巴彦淖尔市| 叶城县|