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的帳號會被認為是超級管理員,超級管理員可以設置其他用戶為管理員。