性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

01?介紹

小米開源的監(jiān)控系統(tǒng) open-falcon 和滴滴開源的日志采集工具 falcon-log-agent 作為一組黃金搭檔,被互聯(lián)網(wǎng)公司廣泛使用。

本文介紹怎么使用這組黃金搭檔監(jiān)控業(yè)務(wù)系統(tǒng)的日志。

02? open-falcon

open-falcon 使用 Golang 和 Python 開發(fā),其中 Python 主要開發(fā)的是 Dashboard。

限于篇幅,本文不準(zhǔn)備介紹 open-falcon 的原理,僅介紹如何安裝。

安裝 open-falcon 之前,必須確保已成功安裝 Redis 和 MySQL,因?yàn)?open-falcon 需要使用這兩個存儲組件。

同時(shí),我們還需要確保已成功安裝 Golang 和 Python。

需要注意的是,我們還需要確保已設(shè)置?$GOPATH?和?$GOROOT?環(huán)境變量(也可以使用默認(rèn)值)。

安裝 open-falcon :

下載源碼和初始化數(shù)據(jù)庫

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

編譯

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

在執(zhí)行?make pack?之后,我們得到一個壓縮包?open-falcon-vx.x.x.tar.gz

如果我們想要修改每個模塊的配置文件,在執(zhí)行?make pack?之前,我們可以修改模塊的?config/xxx.json

需要注意的是,模塊的配置文件中,MySQL 的賬號和密碼,默認(rèn)分別是?root?和空,如果我們的 MySQL 賬號和密碼與之不同,我們需要編輯模塊的配置文件進(jìn)行修改。

部署

我們可以將得到的壓縮包解壓縮到指定目錄進(jìn)行部署,例如:

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

啟動所有模塊

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

安裝儀表盤

在安裝 Dashboard 之前,我們需要先安裝依賴項(xiàng):

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

安裝 Dashboard:

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

需要注意的是,這里有一個 Bug,會導(dǎo)致無法在儀表盤注冊賬號(點(diǎn)擊按鈕無反應(yīng)),需要將?falcon api 的端口號?18080?改為?8080。

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

在啟動 Dashboard 之前,我們再檢查一下 open-falcon 的 api 模塊是否已啟動:

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

啟動 Dashboard:

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

在瀏覽器中,打開?http://127.0.0.1:8081

03?falcon-log-agent

falcon-log-agent 不同于 ELK,它不是日志查看系統(tǒng),而是日志計(jì)算系統(tǒng)。

它通過外掛式的日志采集方式,實(shí)時(shí)讀取日志文件中的內(nèi)容,實(shí)時(shí)計(jì)算,并將計(jì)算結(jié)果直接推送到 open-falcon。

它有幾個限定條件,分別是要求日志必須包含時(shí)間,不支持文件軟鏈接,日志時(shí)間必須有序。

安裝 falcon-log-agent:

構(gòu)建

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

修改配置文件

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

部署

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

啟動

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

檢查

  • http://ip:8003/health?健康檢查
  • http://ip:8003/strategt?查看生效策略

策略配置示例:

本文以 open-falcon 的 agent 模塊的日志為例,介紹怎么配置一個新策略。

基于 Go 語言開發(fā)的監(jiān)控系統(tǒng)

重啟 falcon-log-agent,我們在 Dashboard 中的 Couters 列表中可以看到?agent send data count。

04?

監(jiān)控配置

我們介紹完 open-falcon 和 falcon-log-agent 的安裝和啟動。

已實(shí)現(xiàn)自動采集日志并將計(jì)算數(shù)據(jù)上報(bào)到 open-falcon,接下來,我們介紹針對日志數(shù)據(jù)怎么配置監(jiān)控。

監(jiān)控配置操作步驟:

  1. 創(chuàng)建用戶組。
  2. 創(chuàng)建模板。
  3. 添加策略,其中 metric 對應(yīng) falcon-log-agent 策略配置文件中配置項(xiàng)的 name,max 是最大報(bào)警次數(shù),P 是報(bào)警級別(<3:既發(fā)短信也發(fā)郵件,>=3:只發(fā)郵件),run 是策略生效時(shí)間(不填寫代表全天生效),if 代表?xiàng)l件。

    告警條件支持函數(shù)如下:

    • all(#3) 最新 3 個點(diǎn)都滿足閾值條件則報(bào)警。
    • max(#3) 最新 3 個點(diǎn),最大值滿足閾值條件則報(bào)警。
    • min(#3) 最新 3 個點(diǎn),最小值滿足閾值條件則報(bào)警。
    • sum(#3) 最新 3 個點(diǎn),其和滿足閾值條件則報(bào)警。
    • avg(#3) 最新 3 個點(diǎn),其平均值滿足閾值條件則報(bào)警。
    • diff(#3) 將最新 push 過來的點(diǎn)(被減數(shù)),與歷史最新 3 個點(diǎn)(減數(shù))相減,得到 3 個差,有一個差滿足閾值條件則報(bào)警。
    • pdiff(#3) 將最新 push 過來的點(diǎn)(被減數(shù)),與歷史最新 3 個點(diǎn)(減數(shù))相減,得到 3 個差,再將 3 個差值分別除以減數(shù),得到 3 個商值,有一個商值滿足閾值條件則報(bào)警。
    • lookup(#2,3) 最新的 3 個點(diǎn)中有 2 個滿足閾值條件則報(bào)警。
  4. 配置報(bào)警接收用戶組。

05?總結(jié)

本文我們介紹了基于 Go 語言開發(fā)的開源監(jiān)控系統(tǒng)和日志采集工具的安裝和使用方式。

建議讀者朋友們動手操作一遍,需要注意的是,盡量嚴(yán)格按照本文的目錄結(jié)構(gòu)操作。

原文鏈接:https://mp.weixin.qq.com/s/10DUiyIHSon3OZoYQy7VHg

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!