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