小米監控系統open-falcon安裝

一、介紹

Open-Falcon 是小米的一款開源的互聯網企業級監控系統解決方案。

a.特點

①數據採集免配置:agent自發現、支持Plugin、主動推送模式

②容量水平擴展:生產環境每秒50萬次數據收集、告警、存儲、繪圖,可持續水平擴展。

③告警策略自發現:Web界面、支持策略模板、模板繼承和覆蓋、多種告警方式、支持回調動作。

④告警設置人性化:支持最大告警次數、告警級別設置、告警恢復通知、告警暫停、不同時段不同閾

值、支持維護週期,支持告警合併。

⑤歷史數據高效查詢:秒級返回上百個指標一年的歷史數據。

⑥Dashboard人性化:多維度的數據展示,用戶自定義Dashboard等功能。

⑦架構設計高可用:整個系統無核心單點,易運維,易部署。


b.安裝

Open-Falcon,整體可以分爲兩部分,即繪圖組件、告警組件。其中:

①安裝繪圖組件:負責數據的採集、收集、存儲、歸檔、採樣、查詢、展示(Dashboard/Screen)等功能,可以單獨工作,作爲time-series data的一種存儲展示方案。

②安裝告警組件:負責告警策略配置(portal)、告警判定(judge)、告警處理(alarm/sender)、用戶組管理(uic)等,可以單獨工作。


注:以下安裝操作皆來自於open-falcon book:http://book.open-falcon.org/zh/intro/index.html,可直接前往查看(環境所限並未演示告警部分)。


二、安裝(二進制快速安裝)

a.環境準備


①安裝redis

# yum install -y redis


②安裝MariaDB

# yum install -y mariadb*


③創建並進入工作目錄

# mkdir open-falcon
# cd open-falcon


④初始化MariaDB表結構

# yum install -y git
# git clone https://github.com/open-falcon/scripts.git
# cd scripts/
# mysql -h localhost -u root --password="" < db_schema/graph-db-schema.sql
# mysql -h localhost -u root --password="" < db_schema/dashboard-db-schema.sql
# mysql -h localhost -u root --password="" < db_schema/portal-db-schema.sql
# mysql -h localhost -u root --password="" < db_schema/links-db-schema.sql
# mysql -h localhost -u root --password="" < db_schema/uic-db-schema.sql


⑤下載並解壓編譯好的二進制組件(只能跑64位Linux)

# DOWNLOAD="https://github.com/open-falcon/of-release/releases/download/v0.1.0/open-falcon-v0.1.0.tar.gz"
# cd open-falcon
# mkdir tmp
# wget $DOWNLOAD -O open-falcon-latest.tar.gz
# tar -zxf open-falcon-latest.tar.gz -C tmp/
# for x in `find ./tmp/ -name "*.tar.gz"`;do \    
      app=`echo $x|cut -d '-' -f2`; \    
      mkdir -p $app; \    
      tar -zxf $x -C $app; \
done


b.安裝繪圖組件


①安裝Transfer

transfer默認監聽在:8433端口上,agent會通過jsonrpc的方式來push數據上來。

# cd open-falcon
# cd transfer/
# mv cfg.example.json cfg.json  ##默認下(所有組件都在同一臺服務器上),保持cfg.json不變即可
# ./control start                  ##啓動transfer
falcon-transfer started..., pid=7447
# curl -s "http://127.0.0.1:7447/health"        ##檢驗服務
# ./control tail                   ##查看日誌 
# ./control stop                   ##停止transfer
falcon-transfer stoped...


②安裝Agent

每臺機器上,都需要部署agent,agent會自動採集預先定義的各種採集項,每隔60秒,push到transfer。

# cd open-falcon/agent/
# mv cfg.example.json cfg.json
# cat cfg.json | sed -n 17,22p
    "transfer": {
        "enabled": true,         ##true,表示開啓向transfer發送數據的功能,默認開啓
        "addrs": [                 ##改地址爲transfer組件的監聽地址, 爲列表形式
            "127.0.0.1:8433",
            "127.0.0.1:8433"
        ],         ### 默認情況下(所有組件都在同一臺服務器上),保持cfg.json不變即可
# ./control start             ##啓動agent
falcon-agent started..., pid=9067
# ./control tail               ##查看日誌


③安裝Graph

graph組件是存儲繪圖數據、歷史數據的組件。transfer會把接收到的數據,轉發給graph。

# cd open-falcon/graph/
# mv cfg.example.json cfg.json  ##默認情況下(所有組件都在同一臺服務器上),保持配置不變即可
# ./control start                ##啓動graph
start ok, pid=9089
# ./control tail                ##查看日誌
# curl -s "http://127.0.0.1:9089/health"      ##檢驗服務



④安裝Query

query組件,繪圖數據的查詢接口,query組件收到用戶的查詢請求後,會從後端的多個graph,查詢相應的數據,聚合後,再返回給用戶。

# cd open-falcon/query/
# mv cfg.example.json cfg.json  ##默認情況下(所有組件都在同一臺服務器上),保持配置不變即可
# ./control start                 ##啓動query
start ok, pid=9146
# ./control tail                 ##查看日誌




⑤安裝Dashboard

dashboard是面向用戶的查詢界面,在這裏,用戶可以看到push到graph中的所有數據,並查看其趨勢圖。

# yum install -y python-virtualenv mariadb-devel gcc
# cd open-falcon/dashboard/
# virtualenv ./env
New python executable in ./env/bin/python
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
# ./env/bin/pip install -r pip_requirements.txt
# cat rrd/config.py            ##默認情況下(所有組件都在同一臺服務器上),保持默認配置即可
#-*-coding:utf8-*-
import os
#-- dashboard db config --               ### dashboard的數據庫配置
DASHBOARD_DB_HOST = "127.0.0.1"
DASHBOARD_DB_PORT = 3306
DASHBOARD_DB_USER = "root"
DASHBOARD_DB_PASSWD = ""
DASHBOARD_DB_NAME = "dashboard"
#-- graph db config --                  ### graph的數據庫配置
GRAPH_DB_HOST = "127.0.0.1"
GRAPH_DB_PORT = 3306
GRAPH_DB_USER = "root"
GRAPH_DB_PASSWD = ""
GRAPH_DB_NAME = "graph"
#-- app config --                    ## dashboard的配置
DEBUG = True
SECRET_KEY = "secret-key"
SESSION_COOKIE_NAME = "open-falcon"
PERMANENT_SESSION_LIFETIME = 3600 * 24 * 30
SITE_COOKIE = "open-falcon-ck"
#-- query config --                   ### query服務的地址
QUERY_ADDR = "http://127.0.0.1:9966"
BASE_DIR = "/home/work/open-falcon/dashboard/"
LOG_PATH = os.path.join(BASE_DIR,"log/")
try:
    from rrd.local_config import *
except:
    pass
# ./control start            ##啓動dashboard
falcon-dashboard started..., pid=11835
# ./control tail             ##查看日誌
# ./control stop             ##停止dashboard


這時候就可以通過http://localhost:8081訪問dashboard主頁了;

在dashboard首頁的endpoint字段中,搜索機器名並點擊“刷新counter列表”就可以看到數據了。

wKiom1eQc6nx1fGaAADYDB9JF6U803.png




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章