open-falcon學習總結

open-falcon安裝

直接安裝openfalcon

(略,見docker學習總結-openfalcon鏡像的製做和打包或下面的連接)html

https://book.open-falcon.org/zh_0_2/quick_install/prepare.htmljava

https://www.cnblogs.com/nulige/p/7741580.htmlnode

使用自定義鏡像部署openfalcon

獲取openfalcon的docker鏡像

可經過移動硬盤獲取鏡像的tar包或者直接從遠程倉庫獲取python

運行openfalcon容器

運行容器時須要映射四個端口,其中8081是openfalcon的Dashboard界面訪問端口,1988(Agent組件 數據上報)、6030(HBS服務 心跳服務)、8433(Transfer組件 數據接收)在監控時須要用到。mysql

docker run -dit --name 容器名稱n -p Dashboard組件映射端口:8081 -p Agent組件映射端口:1988 -p HBS服務映射端口:6030 -p Transfer組件映射端口:8433 openfalcon鏡像名稱:openfalcon鏡像tag /bin/bash

## 示例
docker run -dit --name my_openfalcon -p 10101:8081 -p 10102:1988 -p 10103:6030 -p 10104:8433 my_openfalcon:0.1 /bin/bash

進入openfalcon容器

## 查看運行中的容器,獲取openfalcon對應容器的編號
docker ps
## 以交互方式進入容器內部
docker exec -it 容器編號 /bin/bash

修改openfalcon容器中MySQL的配置

由於新建立容器以後MySQL沒有對應的pid文件,會出現沒法啓動的狀況,全部須要建立對應的pid文件,並配置相應的權限,使得MySQL能夠訪問到它。linux

## 前往MySQL安裝目錄
cd /apps/mysql-5.7.27/data
## 建立當前容器對應的MySQL的pid文件
touch 容器編號.pid
## 修改建立的pid文件的權限
cd ..
chown -R mysql:mysql data
chmod -R 755 data

修改openfalcon容器中的配置文件

檢查一下openfalcon的agent組件的配置文件是否正確。ios

## 前往openfalcon後端agent組件安裝目錄
cd /apps/open-falcon-beckend/agent/config
## 編輯配置文件
vim ./cfg.json

修改cfg.json文件的如下內容:git

//修改HBS服務的IP地址和端口號,這裏改爲openfalcon安裝宿主機的ip和容器內6030端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:6030
"heartbeat": {
    "addr": "47.96.72.151:10103",
},
//修改Transfer組件的IP地址和端口號,這裏改爲openfalcon安裝宿主機的ip和容器內8433端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:8433
"transfer": {
    "addrs": [
        "47.96.72.151:10104"
    ],
},
//修改Agent組件的IP地址的端口號,這裏改爲容器內1988端口對應宿主機映射的端口號(docker run時設置的),本機的話能夠直接設置成127.0.0.1:1988
"http": {
    "listen": ":10102",
},

運行腳本文件,開啓服務

運行sh文件,開啓服務。github

當出現文件運行完成,容器自動中止的狀況時,可編輯/apps/start.sh文件,在最後面加上【while true; do echo openfalconRuning; sleep 1; done】再從新運行start.sh文件,運行成功後直接關閉該ssh鏈接便可。golang

## 前往openfalcon軟件安裝根目錄
cd /apps
## 運行腳本文件
./start.sh

查看open-falcon服務端界面是否能夠正常訪問

訪問【宿主機IP地址:Dashboard組件映射端口】便可訪問open-falcon服務端,默認爲8081端口

open-falcon簡介

畫面介紹

訪問

IP地址:8081(默認)

![](https://img2018.cnblogs.com/blog/1592246/201909/1592246-20190904084154901-1332843973.png)

界面

官方說明:https://book.open-falcon.org/zh_0_2/usage/getting-started.html

  1. Dashboard頁面:監控機列表及監控數據查看

    查看當前openfalcon服務端監控的實體(Endpoints)和對應的指標(Counters)。

  2. Screen頁面:自定義看板

    建立和管理監控指標的看板。分別建立看板組合看板畫面,可配置單個看板的監控實體、監控指標、展現樣式。

  3. Hostgroup頁面:監控機組

    建立和管理監控實體組。openfalcon有監控組的概念,報警時不針對單個的實體,而是根據組來報警。

    在Hostgroup頁面,可建立和編輯每一個組的基本信息、配置組成員、配置組報警策略、配置組插件等。

    plugins參考:官方文檔博客

  1. Template頁面:監控報警策略模板

    查看和管理報警策略。能夠根據需求建立和管理報警信息,

    報警對象:一個實體組(Hostgroup)或者一個實體(Endpoint)

    報警指標:自定義指標及報警值

    給誰報警:一個用戶組(Team)

    報警回調:可設置一個URL,當報警被觸發時,openfalcon會以get方式回調這個URL,回調時可發送提醒和結果

  2. Expression頁面:監控報警策略表達式

    查看和管理表達式。

  3. Nodata頁面:無數據報警

    查看和管理無數據上報時的報警。可根據實體組和實體來報警,選擇無數據的週期,便可在無數據的時候報警。

  4. Alarm-Dashboard頁面:報警儀表盤

    報警信息展現。

  5. 用戶管理

    1. Profile頁面:登陸用戶信息管理

      管理當前登陸用戶的信息

    2. Users頁面:用戶管理

      查看當前系統的全部用戶

    1. 用戶組管理

      當前用戶組管理。用戶組與報警相關。

組件的關係

繪圖組件

組件名稱 用途 服務端口 備註
Agent 部署在目標機器採集機器監控項 http: 1988
Transfer 數據接收端,轉發數據到後端Graph和Judge http: 6060 rpc: 8433 socket: 4444
Graph 操做rrd文件存儲監控數據 http: 6070 rpc: 6071 1.可部署多實例作集羣 2.須要鏈接數據庫graph
Query 查詢各個Graph數據,提供統一http查詢接口 http: 9966
Dashboard 查詢監控歷史趨勢圖的web端 http: 8081 1.須要python虛擬環境 2.須要鏈接數據庫dashborad、graph
Task 負責一些定時任務,索引全量更新、垃圾索引清理、自身組件監控等 http: 8002 1.須要鏈接數據庫graph

報警組件

組件名稱 用途 服務端口 備註
Nodata 檢測監控數據的上報異常 http: 6090 1.須要鏈接數據庫:falcon_portal
Portal 配置報警策略,管理機器分組的web端 http: 5050 1.須要鏈接數據庫:falcon_portal 2.須要python虛擬環境
Judge 報警判斷模塊 http: 6081 rpc: 6080 1.可部署多實例
Alarm 報警事件處理器 http: 9912
Sender 報警發送模塊,控制併發度,提供發送的緩衝queue http: 6066
mail-provider 報警郵件http api http: 4000 小米提供
sms-provider 報警短信http api http: 4040 自行編寫
Links 報警合併依賴的web端,存放報警詳情 http: 5090 1.須要鏈接數據庫:falcon_links 2.須要python虛擬環境
HBS HeartBeat Server,心跳服務器 http: 6031rpc: 6030 1.須要鏈接數據庫:falcon_portal
UIC(fe) 用戶組管理,單點登陸 http: 80 1.須要鏈接數據庫:uic
Aggregator 集羣聚合模塊——聚合某集羣下的全部機器的某個指標的值,提供一種集羣視角的監控體驗。 http: 6055 1.須要鏈接數據庫:falcon_portal

組件關係

架構圖

https://blog.csdn.net/beta_xiyan/article/details/81911653

https://blog.51cto.com/chenguomin/1865550

open-falcon系統的使用

配置一個open-falcon監控機

  1. 獲取監控數據

    新增一個監控機

    根據監控物的不一樣而不一樣,可參考下面的各類監控配置或者官方文檔

  2. 查看監控數據

    在Dashboard菜單查看剛剛配置的監控機,選擇這個監控機可查看指標

  3. 配置監控組

    在HostGroup菜單將監控機配置到組中,可新增組或者點擊hosts將當前的機器加到指定的組中

  4. 配置報警策略

    在Template菜單配置報警策略

    在HostGroup菜單找到指定的組,點擊template將報警策略與監控組綁定

  5. 配置無數據報警

    在Nodata菜單配置無數據報警

  6. 配置報警方式

    參考下面的【openfalcon配置報警方式】

  7. 查看指標或者查看報警

    在Dashboard中查看監控指標

    在Screen中配置一個看板

    在Alarm-Dashboard中查看報警信息(配置了報警方式的話能夠收到報警信息)

經過open-falcon查看監控機的指標信息

  1. 訪問open-falcon服務端

    默認是8081端口。

  2. 選擇須要查看指標的監控機(可搜索、多選)

  3. 點擊【刷新counter列表】按鈕

  4. 點擊指標可查看單個指標的動態圖

  5. 選擇多個指標後,點擊【看圖】按鈕,選擇對應的視角,可同時查看多個指標(視角介紹見下方Q&A)

經過open-falcon建立指標看板

  1. 訪問open-falcon服務端,進入screen菜單

  2. 點擊screen首頁,在彈出的下拉畫面中可搜索已有的看板組或直接新建組

  3. 點擊【+導航】,在打開的畫面中輸入組名稱,點擊【新增】便可新建一個卡板組

  4. 新增組以後,便可新增看板畫面。選擇對應的組,點擊【選擇】【+screen】便可進入看板新增頁面

  5. 進入看板新增頁面,填寫相關信息便可新增看板

    Graph標題:看板名稱

    Endpoints列表:看板展現的機器列表,一行一個

    Counters列表:看板展現的指標列表,一行一個

    默認時間跨度:看板展現指標的時間跨度,即展現多久的數據

    視角:看板數據的展現視角

    是否加和:是否對數據進行加和運算並將和展現出來(與指標信息相同的方法展現)

經過open-falcon管理機器組

openfalcon對機器的管理是以組的形式進行的,報警策略配置是按照機器組來的,可根據須要將不一樣的機器進行編組,再進行管理。

  1. 訪問open-falcon服務端,進入Hostgroup菜單

  2. 在頁面中展現了機器組列表,可進行搜索

  3. 輸入名稱後點擊右上角的+可新增組

  4. 在組列表中,可配置該組的報警策略、組成員機器、組插件等信息


經過open-falcon管理報警信息

配置報警策略

  1. 訪問open-falcon服務端,進入Template菜單

  2. 在頁面中展現了報警策略列表,可進行搜索

  3. 輸入名稱後點擊右上角的+可進入新增報警策略頁面

  4. 設置相應的信息便可新增報警策略

    模板基本信息

    name:模板名稱

    parent:父級模板名稱

    該模板中的策略列表

    metric/tags[note]:指標名稱

    condition:報警條件

    max:最大報警次數

    P:報警級別(<3時既發短信也發郵件 , >=3時只發郵件)

    run:報警時間(默認全天)

    模板報警配置

    報警接收組:報警信息的接收人組(openfalcon的用戶組)

    callback地址:報警以後回調的URL(GET方法回調),並可配置回調前的提醒和回調以後的結果通知

配置報警方式

在openfalcon的Alarm-Dashboard菜單中可查看報警信息,若是須要短信、電話、郵箱、微信等方式報警,須要本身配置,可使用官方的控件也能夠本身寫接口實現,主要是修改【後端-Alarm-config-cfg.json】文件,docker鏡像中爲【/apps/open-falcon-beckend/alarm/config/cfg.json】。

修改其中的api部分:

"api": {
   //im報警接口URL,如微信,對應openfalcon用戶中的IM
   "im": "http://127.0.0.1:10086/wechat",
   //短信、電話報警接口URL,對應openfalcon用戶中的手機
   "sms": "http://127.0.0.1:10086/sms",
   //郵件報警接口URL,對應openfalcon用戶中的郵箱
   "mail": "http://127.0.0.1:10086/mail",
   "dashboard": "http://127.0.0.1:8081",
   "plus_api":"http://127.0.0.1:8080",
   "plus_api_token": "default-token-used-in-server-side"
},

官方說明文檔:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html

詳見下面的配置報警方式。

配置無數據報警

  1. 訪問open-falcon服務端,進入Nodata菜單

  2. 在頁面中展現了無數據報警列表,可進行搜索

  3. 輸入名稱後點擊右上角的+可進入新增無數據報警頁面

  4. 設置相應的信息便可新增無數據報警

    name:無數據報警的名稱

    endpoint選擇:設置無數據報警的機器,可設置機器組或者機器,一行一個

    metric:監測指標

    tags:監控指標的tag

    type:監控指標的值類型

    週期(秒):數據上報的週期,須要與監控項上報數據的step一致

    數據上報中斷時, 補發以下值:無數據上報時補發的值

查看報警內容

  1. 訪問open-falcon服務端,進入Alarm-Dashboard菜單
  2. 在頁面中展現了報警信息列表
  3. 配置了短信、郵件等報警方式時,會收到報警信息

open-falcon監控指標說明(主機)

其餘具體內容,請參考:

官方文檔0.1官方文檔0.2

Satori官方文檔

博客

組件相關

指標名稱 指標說明
agent.alive agent存活(存活時爲1)

CPU相關

參考博客:https://blog.51cto.com/asinego/1949715

指標名稱 指標說明
cpu.idle CPU空閒時間,不包括等待I/O的時間
cpu.iowait 等待I/O的CPU時間
cpu.switches cpu上下文切換次數(計數器類型)
cpu.system 內核態CPU時間
cpu.user 用戶態CPU時間
cpu.nice 低優先級用戶態CPU時間,也就是進程nice值被調整爲1-19之間的CPU時間
cpu.irq 處理硬中斷的CPU時間
cpu.softirq 處理軟中斷的CPU時間
cpu.guest 運行虛擬機的CPU時間
cpu.steal 系統運行在虛擬機中的時候,被其餘虛擬機佔用的CPU時間

內存相關

參考博客:https://blog.51cto.com/asinego/1905622

指標 說明
mem.memtotal 內存總大小
mem.memused 內存使用量
mem.memused.percent 內存使用百分比
mem.memfree 內存剩餘量
mem.memfree.percent 內存剩餘百分比
mem.swaptotal swap總量
mem.swapused sqap使用量
mem.swapused.percent swap使用百分比
mem.swapfree swap剩餘量
mem.swapfree.percent swap剩餘百分比

磁盤相關

參考博客:https://blog.51cto.com/asinego/1902213

指標名稱 指標說明
df.statistics.total 磁盤總量
df.statistics.used 磁盤使用總量
df.statistics.used.percent 磁盤使用百分比
df.bytes.used 磁盤使用量
df.bytes.used.percent 磁盤使用百分比
df.bytes.free 磁盤可用量
df.bytes.free.percent 磁盤可用百分比
df.inodes.free.percent 磁盤可用inode佔比

IO相關

指標名稱 指標說明
disk.io.util 在統計時間內全部處理IO時間,除以總共統計時間
disk.io.svctm 表示平均每次設備I/O操做的服務時間
disk.io.avgqu-sz 平均請求隊列的長度
disk.io.avgrq_sz 平均請求扇區的大小
disk.io.await 每個IO請求的處理的平均時間(毫秒)
disk.io.ios_in_progress 當前正在運行的實際I / O請求數
disk.io.msec_read 全部讀取所花費的總時間(毫秒)
disk.io.msec_write 全部寫入所花費的總時間(毫秒)
disk.io.read_bytes 讀取字節數,單位是byte的數字
disk.io.read_merged 相鄰的讀取請求合併在單個請求中
disk.io.read_requests 成功讀取完成的總次數
disk.io.read_sectors 成功讀取的扇區總數
disk.io.write_bytes 寫入字節數,單位是byte的數字
disk.io.write_merged 相鄰的寫入請求合併在單個請求中
disk.io.write_requests 成功寫入磁盤的總次數
disk.io.write_sectors 成功寫入扇區數的總次數
disk.io.msec_total ios_in_progress> = 1的時間量
disk.io.msec_weighted_total 統計最近的I/O完成時間和積壓

機器內核配置

指標 說明
kernel.files.allocated 讀取的/proc/sys/fs/file-nr第一個Field
kernel.files.left 值=kernel.maxfiles-kernel.files.allocated
kernel.maxfiles 讀取的/proc/sys/fs/file-max
kernel.maxproc 讀取的/proc/sys/kernel/pid_max

機器負載相關

指標 說明
load.15min 15min系統平均load average(load average <= CPU核數 *0.7)
load.5min 5min系統平均load average
load.1min 1min系統平均load average

通訊相關

參考博客:https://satori-monitoring.readthedocs.io/zh/latest/builtin-metrics/net.html

指標 說明
net.if.in.bits 網絡io流入位數(1字節/byte=8位/bit)
net.if.in.bytes 網絡io流入字節數
net.if.in.packets 網絡io流入包數
net.if.in.compressed 網絡io流入壓縮包數
net.if.in.multicast 網絡io流入多播包數
net.if.in.dropped 網絡io流入丟棄數
net.if.in.errors 網絡io流入出錯數
net.if.in.fifo.errs 因接收緩衝區滿丟掉的包數
net.if.in.frame.errs 網絡io流入錯誤幀數

open-falcon配置報警方式

在openfalcon的Alarm-Dashboard菜單中可查看報警信息,若是須要短信、電話、郵箱、微信等方式報警,須要本身配置,可使用官方的控件也能夠本身寫接口實現,主要是修改【後端-Alarm-config-cfg.json】文件,docker鏡像中爲【/apps/open-falcon-beckend/alarm/config/cfg.json】。

配置文件:

openfalcon後端安裝目錄/alarm/config/cfg.json

"api": {
    //微信發送網關地址
    "im": "http://127.0.0.1:10086/wechat",
    //短信發送網關地址
    "sms": "http://127.0.0.1:10086/sms",
    //郵件發送網關地址
    "mail": "http://127.0.0.1:10086/mail",
    //dashboard模塊的運行地址
    "dashboard": "http://127.0.0.1:8081",
    //falcon-plus api模塊的運行地址
    "plus_api":"http://127.0.0.1:8080",
    //用於和falcon-plus api模塊服務端之間的通訊認證token
    "plus_api_token": "default-token-used-in-server-side"
}

官方說明文檔:https://book.open-falcon.org/zh_0_2/distributed_install/mail-sms.html

短信、電話報警

官方適配了靈犀雲的短信和電話接口,可直接使用。

  1. 註冊靈犀雲

  2. 在靈犀雲中建立應用

  3. 在靈犀雲中獲取token

  4. 修改alarm/config/cfg.json配置文件

    "sms": "https://www.linkedsee.com/alarm/falcon_sms/本身的token"
  5. 靈犀雲電話和短信均免費10次,剩下的須要付費購買

郵件報警

mail-provider組件:https://github.com/open-falcon/mail-provider

  1. 下載編譯好的二進制文件

    cd /apps/open-falcon-msg/mail
    
    wget https://dl.cactifans.com/open-falcon/falcon-mail-provider.tar.gz
  2. 解壓安裝

    cd /apps/open-falcon-msg/mail
    
    mkdir -p falcon-mail-provider
    
    tar zxvf falcon-mail-provider.tar.gz
    
    cd falcon-mail-provider
  3. 修改falcon-mail-provider的配置文件

    vim /apps/open-falcon-msg/mail/falcon-mail-provider/cfg.json
    {
        "debug": true,
        "http": {
            "listen": "0.0.0.0:4000",
            "token": ""
        },
        "smtp": {
            //發件服務器地址
            "addr": "mail.example.com:25",
            //發件人郵箱
            "username": "falcon@example.com",
            //發件人郵箱密碼
            "password": "123456",
            //發件人郵箱
            "from": "falcon@example.com",
            "tls":false,
            "anonymous":false,
            "skipVerify":true
        }
    }
  4. 修改open-falcon alarm組件的配置文件

    vim /apps/open-falcon-beckend/alarm/config/cfg.json
    "api": {
       "mail": "http://127.0.0.1:4000/sender/mail",
    },
  5. 啓動服務

    啓動服務

    cd /apps/open-falcon-msg/mail/falcon-mail-provider
    ./control start

    查看日誌

    cd /apps/open-falcon-msg/mail/falcon-mail-provider
    ./control tail
  6. 測試使用

    curl http://127.0.0.1:4000/sender/mail -d "tos=收件人&subject=郵件標題&content=郵件內容"
    ## 示例
    curl http://127.0.0.1:4000/sender/mail -d "tos=a@a.com,b@b.com&subject=openfalcon報警&content=測試郵件"

微信報警

chat組件:https://github.com/yanjunhui/chat

  1. 克隆代碼

    cd /apps/open-falcon-msg/wechart
    git clone https://www.github.com/yanjunhui/chat.git
  2. 修改chat配置文件

    cd /apps/open-falcon-msg/wechart/chat
    vim config.conf
    #http 服務端口
    [http]
    #默認爲0.0.0.0, 可根據須要修改爲本身的IP或者想使用本地地址修改成: 127.0.0.1
    address = 0.0.0.0
    port = 4567
    
    #微信接口信息
    [weixin]
    CorpID = ww6424d33203e90e20
    AgentId = 1000002
    Secret = FoST_8RQSTjZwH_CN3aQW6UKksjCSI9mizFqD7HKhrw
  3. 修改open-falcon alarm組件配置文件

    "api": {
     "im": "http://yanjunhui.com:4567/send",
    },
  4. 啓動服務

    cd /apps/open-falcon-msg/wechart/chat
    ./control.sh start
  5. 查看服務狀態

    cd /apps/open-falcon-msg/wechart/chat
    ./control.sh status

open-falcon組件說明

繪圖相關

Agent:部署在目標機器採集機器監控項
Transfer:數據接收端,轉發數據到後端Graph和Judge
Graph:操做rrd文件存儲監控數據
Query:查詢各個Graph數據,提供統一的http查詢接口
Dashboard:查詢監控歷史趨勢圖的web端
Task:負責一些定時任務,全部全量更新、垃圾索引清理、自身組件監控等

報警相關

Sender:報警發送模塊,控制併發度,提供發送的緩衝queue
UIC(FE):用戶組管理,單點登陸
Portal(python):配置報警策略,管理機器分組的web端
HBC:Hearbeat Server,心跳服務器
Judge:報警判斷模塊
Links:報警合併依賴的web端,存放報警詳情
Alarm:報警事件處理器

open-falcon監控Windows

https://blog.51cto.com/zhuyuanpo/1775108

  1. 安裝好openfalcon服務器

  2. 選擇合適的Windows監控程序(這裏選擇windows-agent:另外一個 go 語言實現的 windows-agent。支持端口,進程監控,支持後臺服務運行。)

  3. 下載已經編譯好的版本

    https://github.com/freedomkk-qfeng/windows-agent/releases

  4. 解壓壓縮包(windows-agent-release-1.0.3和裏面的nssm-2.24都要解壓)

  5. 修改配置文件內容

    找到cfg.example.json文件,複製一份到windows-agent.exe同級目錄(根據本身的機器選擇x64和x86)

    1566810430444

    修改配置文件內容

    {
        "debug": true,
     "logfile": "windows.log",
        //給這臺機器取個名字,在openfalcon中就是顯示的這個名字
        "hostname": "hutianyao.windows.test",
        //修改IP地址爲本機的IP地址
        "ip": "47.96.72.151",
     "iis":{
         "enabled": false,
         "websites": [
             "Default Web Site"
         ]
         }, 
        //本機數據庫配置
     "mssql":{
         "enabled": false,
         "addr":"127.0.0.1",
         "port":3306,
         "username":"sa",
         "password":"123456",
         "encrypt":"disable",
         "instance": [
             "test"
         ]
         }, 
        "heartbeat": {
            "enabled": true,
            //修改成openfalcon服務端的IP:端口號,默認是6030,這裏映射到了10103
            "addr": "47.96.72.151:10103",
            "interval": 60,
            "timeout": 1000
        },
        "transfer": {
            "enabled": true,
            //修改成openfalcon服務端的IP:端口號,默認是8433,這裏映射到了10104
            "addrs": [
                "47.96.72.151:10104"
            ],
            "interval": 60,
            "timeout": 1000
        },
        "http": {
            "enabled": true,
            //修改成openfalcon服務端的IP:端口號,默認是1988,這裏映射到了10102
            "listen": ":10102",
            "backdoor": false
        },
        "collector": {
            "ifacePrefix": ["網絡"]
        },
     "default_tags": {
        },
        "ignore": {
            "cpu.busy": true
        }
    }
  6. 以管理員身份運行CMD

  7. CD到解壓目錄

    cd H:\tmp\windows-agent-release-1.0.3\x64
  8. CD到包含windows-agent.exe的文件夾下運行命令

    windows-agent.exe
  9. 輸出正常後使用 nssm 註冊爲 Windows 服務

    CD到nssm解壓目錄中包含nssm.exe的文件夾根據本身的機器選擇win32和win64)

    執行命令

    nssm.exe install windows-agent

    輸入或選擇windows-agent.exe文件的絕對路徑,以及其上一級目錄

  10. 啓動服務

    nssm.exe start windows-agent

open-falcon監控Linux

https://www.cnblogs.com/yinzhengjie/p/10111390.html

open-falcon監控MySQL

MySQL監控部署

https://github.com/open-falcon/mymon

  1. 安裝和配置go環境

    ## 下載go安裝包
    https://golang.google.cn/dl/
    
    ## 解壓安裝包到指定位置
    cd /apps && mkdir go
    tar -C /apps/go -xzf go1.12.9.linux-amd64.tar.gz
    
    ## 配置環境變量
    export GOROOT=/apps/go/go
    export GOPATH=/apps/go/goWork
    export PATH=$PATH:/apps/go/go/bin
    
    ## 測試是否安裝成功
    go version
  2. 克隆代碼

    go get -u github.com/open-falcon/mymon
  3. 編譯代碼

    cd $GOPATH/src/github.com/open-falcon/mymon
    make
  4. 修改配置文件

    [default]
    ## 工做目錄
    basedir = . 
    ## 日誌目錄,默認日誌文件爲myMon.log,舊版本有log_file項,若是同時設置了,會優先採用log_file
    log_dir = ./fixtures 
    ## 配置忽略的metric項
    ignore_file = ./falconignore 
    ## 保存快照(process, innodb status)的目錄
    snapshot_dir = ./snapshot 
    ## 保存快照的時間(日)
    snapshot_day = 10 
    ##  日誌級別[RFC5424]
    log_level  = 5 
    # 0 LevelEmergency
    # 1 LevelAlert
    # 2 LevelCritical
    # 3 LevelError
    # 4 LevelWarning
    # 5 LevelNotice
    # 6 LevelInformational
    # 7 LevelDebug
    # falcon agent鏈接地址
    falcon_client=http://127.0.0.1:1988/v1/push 
    
    [mysql]
    ## 數據庫用戶名
    user=root 
    ## 數據庫密碼
    password=1tIsB1g3rt 
    ## 數據庫鏈接地址
    host=127.0.0.1 
    ## 數據庫端口
    port=3306
  5. 測試啓動

    cd $GOPATH/src/github.com/open-falcon/mymon
    ./mymon -c etc/myMon.cfg
  6. 添加定時任務

    echo '* * * * * cd mymon編譯目錄 && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon
    
    ##示例
    echo '* * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg' > /etc/cron.d/mymon

    注:可能須要安裝crontabs(定時任務)服務

    ## 安裝crontabs
    yum -y install crontabs
    
    ## 開機自啓動crontabs
    
    
    ## 配置定時任務
    vim /etc/crontab
    ## 在文件中加上(/1表示每分鐘執行一次)
    */1 * * * * cd /apps/go/goWork/src/github.com/open-falcon/mymon && ./mymon -c etc/myMon.cfg
    
    ## 保存定時任務
    crontab /etc/crontab
    
    ## 查看定時任務
    crontab -l

    ​ 當在docker容器中運行時,可直接在啓動容器時添加參數:

    docker exec -it 容器編號 crond restart
    ## 或者
    docker exec -it 容器編號 /usr/sbin/crond -i
    ## 示例
    docker exec -it 315e4af50cbd crond restart
  7. 查看日誌

    cd $GOPATH/src/github.com/open-falcon/mymon
    cat myMon.log

MySQL監控指標

open-falcon監控Redis

open-falcon監控Tomcat

官方文檔

博客

Tomcat監控部署

  1. 安裝和配置JDK(使用tar.gz文件)

    1. 解壓JDK到指定的目錄
    tar zxvf /tmp/jdk-8u221-linux-x64.tar.gz -C /tomcat
    1. 配置環境變量

      ## 配置環境變量
      vi ~/.bashrc
      ## 在文件最後添加
      export JAVA_HOME=jdk安裝目錄
      export PATH=$JAVA_HOME/bin:$PATH
      
      ## 示例
      export JAVA_HOME=/tomcat/jdk1.8.0_211
      export PATH=$JAVA_HOME/bin:$PATH
    2. 刷新配置文件

      ## 刷新配置
      source ~/.bashrc
    3. 驗證是否安裝成功

      ## 查看java版本
      java -version
  2. 安裝Tomcat

    tar zxvf /tmp/apache-tomcat-8.5.45.tar.gz -C /tomcat
  3. 修改Tomcat啓動文件

    ## 前往Tomcat的bin目錄
    cd /tomcat/apache-tomcat-8.5.45/bin
    ## 修改配置文件
    vi catalina.sh

    catalina.sh中須要添加的內容(可以使用/CATALINA_OPTS搜索位置)

    CATALINA_OPTS="$CATALINA_OPTS
    -Dcom.sun.management.jmxremote //開啓jmxremote
    -Djava.rmi.server.hostname=tomcat所在機器的IP(默認是本機的IP)
    -Dcom.sun.management.jmxremote.port=jmxremote使用的端口號
    -Dcom.sun.management.jmxremote.ssl=是否開啓ssl通訊
    -Dcom.sun.management.jmxremote.authenticate=是否須要鑑權"
    
    ## 示例
    CATALINA_OPTS="$CATALINA_OPTS
    -Dcom.sun.management.jmxremote
    -Djava.rmi.server.hostname=127.0.0.1
    -Dcom.sun.management.jmxremote.port=8999
    -Dcom.sun.management.jmxremote.ssl=false
    -Dcom.sun.management.jmxremote.authenticate=false"
  4. 啓動Tomcat

    ## 前往Tomcat的bin目錄
    cd /tomcat/apache-tomcat-8.5.45/bin
    ## 啓動Tomcat
    sh startup.sh
  5. 安裝openfalcon的Agent組件

    ## 安裝Agent組件
    tar xvf /tmp/agent.tar -C /tomcat
    ## 修改Agent配置文件(修改其中上報數據的IP地址和端口號)
    cd /tomcat/agent/config/cfg.json
    ## 啓動Agent服務
    nohup /tomcat/agent/bin/falcon-agent -c /tomcat/agent/config/cfg.json
    ## 檢查服務是否開啓
    netstat -antp | grep 1988
    ps -ef | grep -i "falcon"

    agent配置文件說明

    {
        "debug": true,
        //這裏是本機在openfalcon中顯示的名稱
        "hostname": "",
        "ip": "",
        "plugin": {
            "enabled": false,
            "dir": "./plugin",
            "git": "https://github.com/open-falcon/plugin.git",
            "logs": "./logs"
        },
        "heartbeat": {
            "enabled": true,
            //這裏是openfalcon的heartbeat模塊的URL,默認端口號爲6030
            "addr": "47.96.72.151:10104",
            "interval": 60,
            "timeout": 1000
        },
        "transfer": {
            "enabled": true,
            //這裏是openfalcon的transfer模塊的URL,默認端口號爲8433
            "addrs": [
                "47.96.72.151:10105"
            ],
            "interval": 60,
            "timeout": 1000
        },
        "http": {
            "enabled": true,
            //這裏是openfalcon的agent模塊的URL,默認端口號爲1988
            "listen": ":10103",
            "backdoor": false
        },
        "collector": {
            "ifacePrefix": ["eth", "em"],
            "mountPoint": []
        },
        "default_tags": {
        },
        "ignore": {
            "cpu.busy": true,
            "df.bytes.free": true,
            "df.bytes.total": true,
            "df.bytes.used": true,
            "df.bytes.used.percent": true,
            "df.inodes.total": true,
            "df.inodes.free": true,
            "df.inodes.used": true,
            "df.inodes.used.percent": true,
            "mem.memtotal": true,
            "mem.memused": true,
            "mem.memused.percent": true,
            "mem.memfree": true,
            "mem.swaptotal": true,
            "mem.swapused": true,
            "mem.swapfree": true
        }
    }
  6. 部署jmxmon

    ## 獲取jmxmon
    cd /tmp
    wget https://github.com/toomanyopenfiles/jmxmon/releases/download/v0.0.2/jmxmon-v0.0.2.tar.gz
    ## 解壓jmxmon
    tar zxvf /tmp/jmxmon-v0.0.2.tar.gz -C /tomcat
    ## 修改jmxmon配置文件
    cd /tomcat/jmxmon-v0.0.2
    cp conf.example.properties conf.properties
    vi conf.properties

    conf.properties文件說明

    ## 監聽端口號(和上面Tomcat啓動文件中的port一致)
    jmx.ports=8999
    ## 上報的URL(openfalcon服務端1988端口)
    agent.posturl=http://47.96.72.151:10102/v1/push
    ## openfalcon中顯示的當前監控Tomcat的名稱
    hostname=hutianyao.tomcat.test
  7. 啓動jmxmon服務

    cd /tomcat/jmxmon-v0.0.2
    sh control start
  8. 查看jmxmon日誌

    cd /tomcat/jmxmon-v0.0.2
    cat var/app.log

Tomcat監控指標

指標名稱 指標說明
parnew.gc.avg.time 一分鐘內,每次YoungGC(parnew)的平均耗時
concurrentmarksweep.gc.avg.time 一分鐘內,每次CMSGC的平均耗時
parnew.gc.count 一分鐘內,YoungGC(parnew)的總次數
concurrentmarksweep.gc.count 一分鐘內,CMSGC的總次數
gc.throughput GC的總吞吐率(應用運行時間/進程總運行時間)
new.gen.promotion 一分鐘內,新生代的內存晉升總大小
new.gen.avg.promotion 一分鐘內,平均每次YoungGC的新生代內存晉升大小
old.gen.mem.used 老年代的內存使用量
old.gen.mem.ratio 老年代的內存使用率
thread.active.count 當前活躍線程數
thread.peak.count 峯值線程數

Q&A

Endpoint視角、Counter視角和組合視角有什麼區別?

Endpoint視角:按指標展現數據,不一樣監控機得相同指標,在一個圖表中展現。

圖表爲指標,線爲機器。

Counter視角:按監控機展現數據,一個監控機的全部數據(選擇的指標)展現在一個圖表中。

圖表是機器,線是指標。

組合視角:全部的數據,展現在一個圖表中。

一個圖表,線是一個機器的一個指標。

open-falcon監控項的上報數據格式是怎麼樣的?

{
    // 監控項名稱
    metric: cpu.busy,
    // 目標服務器的主機名
    endpoint: open-falcon-host,
    // tag標籤,做用是聚合和歸類,在配報警策略時會比較方便。
    tags: srv=falcon,group=az1,
    // 監控項數值
    value: 10,
    // 採集時間
    timestamp: `date +%s`,
    //  監控項類型。
    counterType: GAUGE,
    // 採集間隔(秒)。
    step: 60
}

open-falcon監控項的類型有哪些?

  1. GAUGE:實測值,直接使用採集的原始數值,好比氣溫;
  2. COUNTER:記錄連續增加的數據,只增不減。好比汽車行駛里程,網卡流出流量,cpu_idle等;
  3. DERIVE:變化率,相似COUNTER ,可是可增可減。

open-facon的報警函數有哪些?

  • all(#3): 最新的3個點都知足閾值條件則報警
  • max(#3): 對於最新的3個點,其最大值知足閾值條件則報警
  • min(#3): 對於最新的3個點,其最小值知足閾值條件則報警
  • sum(#3): 對於最新的3個點,其和知足閾值條件則報警
  • avg(#3): 對於最新的3個點,其平均值知足閾值條件則報警
  • diff(#3): 拿最新push上來的點(被減數),與歷史最新的3個點(3個減數)相減,獲得3個差,只要有一個差知足閾值條件則報警
  • pdiff(#3): 拿最新push上來的點,與歷史最新的3個點相減,獲得3個差,再將3個差值分別除以減數,獲得3個商值,只要有一個商值知足閾值則報警
相關文章
相關標籤/搜索