教你如何在CentOS 6.5下部署Open-Falcon監控系統
注:本次安裝為測試環境,使用CentOS 6.5的系統,所裝軟體均為直接yum,如果線上部署,請使用公司提供的軟體版本。
1、介紹
監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,事後提供翔實的資料用於追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛建立的初期,選擇一款開源的監控系統,是一個省時省力,效率最高的方案。之後,隨著業務規模的持續快速增長,監控的物件也越來越多,越來越複雜,監控系統的使用物件也從最初少數的幾個SRE,擴大為更多的DEVS,SRE。這時候,監控系統的容量和使用者的“使用效率”成了最為突出的問題。
亮點和功能
強大靈活的資料採集:自動發現,支援falcon-agent、snmp、支援使用者主動push、使用者自定義外掛支援、opentsdb data model like(timestamp、endpoint、metric、key-value tags)
水平擴充套件能力:支援每個週期上億次的資料採集、告警判定、歷史資料儲存和查詢
高效率的告警策略管理:高效的portal、支援策略模板、模板繼承和覆蓋、多種告警方式、支援callback呼叫
人性化的告警設定:最大告警次數、告警級別、告警恢復通知、告警暫停、不同時段不同閾值、支援維護週期
高效率的graph元件:單機支撐200萬metric的上報、歸檔、儲存(週期為1分鐘)
高效的歷史資料query元件:採用rrdtool的資料歸檔策略,秒級返回上百個metric一年的歷史資料
dashboard:多維度的資料展示,使用者自定義Screen
高可用:整個系統無核心單點,易運維,易部署,可水平擴充套件
開發語言: 整個系統的後端,全部golang編寫,portal和dashboard使用Python編寫
2、部署
Open-Falcon採用server-agent方式來實現監控。下面是具體的部署情況:
2.1、一體化部署後端
本次測試環境,進行單機部署,所有模組都放在一臺主機上,如果有需要分散式部署,請參考官方文件https://book.open-falcon.org/zh_0_2/distributed_install/,分散式只需要將模組遷移到其它伺服器,修改配置檔案即可,十分簡單。
2.1.1、環境準備
open-falcon的後端元件都是使用Go語言編寫的,所以我們需要先安裝Go語言開發環境
yum install golang -y ##需要epel源 export GOROOT=/usr/lib/golang export GOPATH=/home
安裝redis
yum install -y redis1
安裝mysql並啟動
yum install -y mysql-server /etc/init.d/mysqld start
##測試機是centos6的,其餘系統自行更改啟動命令
初始化MySQL表結構
cd /tmp/ && git clone https://github.com/open-falcon/falcon-plus.git cd /tmp/falcon-plus/scripts/mysql/db_schema/ mysql -h 127.0.0.1 -u root -p < 1_uic-db-schema.sql mysql -h 127.0.0.1 -u root -p < 2_portal-db-schema.sql mysql -h 127.0.0.1 -u root -p < 3_dashboard-db-schema.sql mysql -h 127.0.0.1 -u root -p < 4_graph-db-schema.sql mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql rm -rf /tmp/falcon-plus/
2.1.2、安裝
建立工作目錄
export FALCON_HOME=/home/work export WORKSPACE=$FALCON_HOME/open-falcon mkdir -p $WORKSPACE
下載編譯好的二進位制包並解壓
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
2.1.3、配置檔案
在啟動之前,需要修改各模組的配置檔案,保證資料庫的使用者名稱和密碼正確。下面是各個模組的配置檔案路徑。
aggregator /home/work/aggregator/config/cfg.json graph /home/work/graph/config/cfg.json hbs /home/work/hbs/config/cfg.json nodata /home/work/nodata/config/cfg.json api /home/work/api/config/cfg.json alarm /home/work/alarm/config/cfg.json
2.1.4、啟動
cd $WORKSPACE ./open-falcon start
# 檢查所有模組的啟動狀況
./open-falcon check falcon-graph UP 3020 falcon-hbs UP 3030 falcon-judge UP 3039 falcon-transfer UP 3045 falcon-nodata UP 3051 falcon-aggregator UP 3058 falcon-agent UP 3067 falcon-gateway UP 3073 falcon-api UP 3079 falcon-alarm UP 3092
2.2、部署前端
克隆前端元件程式碼
cd $WORKSPACE git clone https://github.com/open-falcon/dashboard.git12
安裝依賴包
yum install -y python-virtualenv yum install -y python-devel yum install -y openldap-devel yum install -y mysql-devel yum groupinstall "Development tools"
安裝python依賴環境
#下載ez_setup.py
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py python ez_setup.py --insecure
#下載pip
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz
#解壓並安裝
tar xf pip-9.0.1.tar.gz cd pip-9.0.1 python setup.py install
#測試,檢視版本
pip -V
#pip安裝軟體
cd /home/work/open-falcon/dashboard pip install -r pip_requirements.txt
修改dashboard配置檔案,修改資料庫的使用者名稱和密碼,保證dashboard能連線資料庫。
vim /home/work/open-falcon/dashboard/rrd/config.py
啟動
bash control start
訪問網站 http://IP:8081 ,剛登陸需要註冊使用者,註冊的第一個使用者名稱為root的帳號會被認為是超級管理員,超級管理員可以設定其他使用者為管理員。