Open-Falcon監(jiān)控系統(tǒng)部署文檔
注:本次安裝為測(cè)試環(huán)境,使用CentOS 6.5的系統(tǒng),所裝軟件均為直接yum,如果線上部署,請(qǐng)使用公司提供的軟件版本
1、介紹
監(jiān)控系統(tǒng)是整個(gè)運(yùn)維環(huán)節(jié),乃至整個(gè)產(chǎn)品生命周期中最重要的一環(huán),事前及時(shí)預(yù)警發(fā)現(xiàn)故障,事后提供翔實(shí)的數(shù)據(jù)用于追查定位問(wèn)題。監(jiān)控系統(tǒng)作為一個(gè)成熟的運(yùn)維產(chǎn)品,業(yè)界有很多開(kāi)源的實(shí)現(xiàn)可供選擇。當(dāng)公司剛剛起步,業(yè)務(wù)規(guī)模較小,運(yùn)維團(tuán)隊(duì)也剛剛建立的初期,選擇一款開(kāi)源的監(jiān)控系統(tǒng),是一個(gè)省時(shí)省力,效率最高的方案。之后,隨著業(yè)務(wù)規(guī)模的持續(xù)快速增長(zhǎng),監(jiān)控的對(duì)象也越來(lái)越多,越來(lái)越復(fù)雜,監(jiān)控系統(tǒng)的使用對(duì)象也從最初少數(shù)的幾個(gè)SRE,擴(kuò)大為更多的DEVS,SRE。這時(shí)候,監(jiān)控系統(tǒng)的容量和用戶的“使用效率”成了最為突出的問(wèn)題。
亮點(diǎn)和功能
- 強(qiáng)大靈活的數(shù)據(jù)采集:自動(dòng)發(fā)現(xiàn),支持falcon-agent、snmp、支持用戶主動(dòng)push、用戶自定義插件支持、opentsdb data model like(timestamp、endpoint、metric、key-value tags)
- 水平擴(kuò)展能力:支持每個(gè)周期上億次的數(shù)據(jù)采集、告警判定、歷史數(shù)據(jù)存儲(chǔ)和查詢
- 高效率的告警策略管理:高效的portal、支持策略模板、模板繼承和覆蓋、多種告警方式、支持callback調(diào)用
- 人性化的告警設(shè)置:最大告警次數(shù)、告警級(jí)別、告警恢復(fù)通知、告警暫停、不同時(shí)段不同閾值、支持維護(hù)周期
- 高效率的graph組件:?jiǎn)螜C(jī)支撐200萬(wàn)metric的上報(bào)、歸檔、存儲(chǔ)(周期為1分鐘)
- 高效的歷史數(shù)據(jù)query組件:采用rrdtool的數(shù)據(jù)歸檔策略,秒級(jí)返回上百個(gè)metric一年的歷史數(shù)據(jù)
- dashboard:多維度的數(shù)據(jù)展示,用戶自定義Screen
- 高可用:整個(gè)系統(tǒng)無(wú)核心單點(diǎn),易運(yùn)維,易部署,可水平擴(kuò)展
- 開(kāi)發(fā)語(yǔ)言: 整個(gè)系統(tǒng)的后端,全部golang編寫(xiě),portal和dashboard使用Python編寫(xiě)
2、部署
Open-Falcon采用server-agent方式來(lái)實(shí)現(xiàn)監(jiān)控。下面是具體的部署情況:
2.1、一體化部署后端
本次測(cè)試環(huán)境,進(jìn)行單機(jī)部署,所有模塊都放在一臺(tái)主機(jī)上,如果有需要分布式部署,請(qǐng)參考官方文檔https://book.open-falcon.org/zh_0_2/distributed_install/,分布式只需要將模塊遷移到其它服務(wù)器,修改配置文件即可,十分簡(jiǎn)單。
2.1.1、環(huán)境準(zhǔn)備
open-falcon的后端組件都是使用Go語(yǔ)言編寫(xiě)的,所以我們需要先安裝Go語(yǔ)言開(kāi)發(fā)環(huán)境
yum install golang -y ##需要epel源
export GOROOT=/usr/lib/golang
export GOPATH=/home
安裝redis
yum install -y redis1
安裝mysql并啟動(dòng)
yum install -y mysql-server
/etc/init.d/mysqld start
##測(cè)試機(jī)是centos6的,其余系統(tǒng)自行更改啟動(dòng)命令
初始化MySQL表結(jié)構(gòu)
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、安裝
創(chuàng)建工作目錄
export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE
下載編譯好的二進(jìn)制包并解壓
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、配置文件
在啟動(dòng)之前,需要修改各模塊的配置文件,保證數(shù)據(jù)庫(kù)的用戶名和密碼正確。下面是各個(gè)模塊的配置文件路徑。
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、啟動(dòng)
cd $WORKSPACE
./open-falcon start
# 檢查所有模塊的啟動(dòng)狀況
./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依賴環(huán)境
#下載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
#測(cè)試,查看版本
pip -V
#pip安裝軟件
cd /home/work/open-falcon/dashboard
pip install -r pip_requirements.txt
修改dashboard配置文件,修改數(shù)據(jù)庫(kù)的用戶名和密碼,保證dashboard能連接數(shù)據(jù)庫(kù)。
vim /home/work/open-falcon/dashboard/rrd/config.py
啟動(dòng)
bash control start
訪問(wèn)網(wǎng)站 http://IP:8081 ,剛登陸需要注冊(cè)用戶,注冊(cè)的第一個(gè)用戶名為root的帳號(hào)會(huì)被認(rèn)為是超級(jí)管理員,超級(jí)管理員可以設(shè)置其他用戶為管理員。