雖然open-falcon是採用了先後端分離的架構,可是爲了方便部署,服務端的後端與前端均部署在同一個虛擬機內,本記錄是從centos剛剛裝完後的初始環境開始部署,安裝全程選擇的用戶爲root。html
1、環境準備前端
操做系統:centos7(minimal,www.centos.org下載的包是CentOS-7-x86_64-Minimal-1611.iso)python
1.1 更換阿里yum(我的習慣)mysql
步驟:git
1)下載wget github
yum install -y wget
2)備份默認的yumgolang
mv /etc/yum.repos.d /etc/yum.repos.d.backup
3)設置新的yum目錄redis
mkdir /etc/yum.repos.d
4)下載阿里yum配置到該目錄中sql
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5)重建緩存數據庫
yum clean all
yum makecache
6)升級全部包(改變軟件設置和系統設置,系統版本內核都升級,故須要幾分鐘耐心等待)
yum update -y
1.2 安裝vim(我的習慣)
yum install -y vim
1.3 安裝git
yum install -y git
安裝結束後安全起見,確認是否知足官方要求的Git >= 1.7.5
git version
1.4 安裝go語言環境(由於官方yum和阿里yum都沒有go的安裝包,故只能經過fedora的epel倉庫來安裝)
yum install -y epel-release
yum install golang -y
安裝結束後安全起見,確認是否知足官方要求的Go >= 1.6
go version
1.5 安裝redis
因爲部署go時已經安裝了epel,故直接執行下面的安裝命令(若是沒有裝epel,會提示No package redis available,也就是沒有安裝包可用,由於官方yum和阿里yum都沒有redis,故只能經過fedora的epel倉庫來安裝)
yum install redis -y
啓動redis
systemctl start redis
設置redis開機啓動
systemctl enable redis
能夠用下面的語句查看redis是否開啓
systemctl status redis
1.6 安裝mysql
步驟:
1)下載repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2)安裝該rpm包(安裝這個包後,會得到兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo)
rpm -ivh mysql-community-release-el7-5.noarch.rpm
3)安裝mysql
yum install mysql-server -y
4)啓動mysql
systemctl start mysql
能夠用下面的語句查看mysql是否開啓
systemctl status mysql
1.7 設置環境變量GOROOT和GOPATH
export GOROOT=/usr/lib/golang
export GOPATH=/home
1.8 將open-falcon的源碼從github上get下來
步驟:
1)建立GOPATH下的一個本地的路徑
mkdir -p $GOPATH/src/github.com/open-falcon
2)進入該路徑
cd $GOPATH/src/github.com/open-falcon
3)將源碼get到本地
git clone https://github.com/open-falcon/falcon-plus.git
1.9 初始化數據庫
cd $GOPATH/src/github.com/open-falcon/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
再運行「mysql -h..................」時會提示「Enter password」,若是mysql的root沒有設置密碼,回車便可。
1.10 編譯源碼並打包
步驟:
1)進入本地源碼路徑下
cd $GOPATH/src/github.com/open-falcon/falcon-plus/
2)使用go get獲取rrdtool工具包(make過程卡殼的一個點)
go get github.com/open-falcon/rrdlite
這一步是官方教程沒有提到的內容,若是不獲取該工具包make的時候會報錯。
3)編譯全部模塊
make all
4)打包
make pack
在$GOPATH/src/github.com/open-falcon/falcon-plus/目錄下就多了剛纔的壓縮包「open-falcon-v0.2.0.tar.gz」。
1.11 官方提供的安裝包
https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供編譯包,若是編譯過程不順利能夠直接下載編譯包。
2、部署後端
2.1 建立工做目錄
export WORKSPACE=/home/work
mkdir -p $WORKSPACE
2.2 解壓二進制包(包名根據實際進行修改)
因爲我是根據本教程編譯源碼得到的壓縮包,故須要切換到「$GOPATH/src/github.com/open-falcon/falcon-plus/」路徑下。
包名因爲make pack的時候就是open-falcon-v0.2.0.tar.gz,具體根據實際狀況(17/12/6再部署時發現官方已有0.2.1)。
cd $GOPATH/src/github.com/open-falcon/falcon-plus/
tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE
2.3 修改配置文件cfg.json
猜想部分模塊依賴鏈接數據庫,由於若是不修改配置文件,aggregator模塊會出現沒法啓動,graph、hbs、nodata、api、alarm模塊會出現開啓不報錯可是狀態爲開啓失敗的狀況。(我的認爲這塊的設計值得做爲open-falcon優化的一個點,鏈接本機mysql若是失敗是能夠收到錯誤提示的,第一時間有報錯提示總比什麼都不顯示或顯示開啓但實際開啓失敗強,若是別人服務都不知道怎麼開起來,系統功能再強大有多少人硬着頭皮部署下去而不是選擇換個系統試試呢)
若是須要每一個模塊都能正常啓動,須要將上面模塊的cfg.json的數據庫信息進行修改。根據本教程的配置,須要修改配置文件所在的目錄:
模塊 | 配置文件所在路徑 |
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 |
1)修改aggregator的配置文件
vim /home/work/aggregator/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
2)修改graph的配置文件
vim /home/work/graph/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
3)修改hbs的配置文件
vim /home/work/hbs/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
4)修改nodata的配置文件
vim /home/work/nodata/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
5)修改api的配置文件
vim /home/work/api/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
6)修改alarm的配置文件
vim /home/work/alarm/config/cfg.json
mysql的root密碼爲空,則去掉「password」,若不爲空,則用root密碼替換「password」。
2.4 啓動後端模塊
cd $WORKSPACE
./open-falcon start
能夠用下面的命令檢查各個模塊的啓動狀況
./open-falcon check
更多命令的用法(命令的例子是啓動agent模塊)
./open-falcon start agent# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon check
falcon-graph UP 53007
falcon-hbs UP 53014 falcon-judge UP 53020 falcon-transfer UP 53026 falcon-nodata UP 53032 falcon-aggregator UP 53038 falcon-agent UP 53044 falcon-gateway UP 53050 falcon-api UP 53056 falcon-alarm UP 53063 For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
3、部署前端
3.1 建立工做目錄
export FRONTSPACE=/home/front/open-falcon
mkdir -p $FRONTSPACE
3.2 獲取前端代碼
cd $FRONTSPACE
git clone https://github.com/open-falcon/dashboard.git
3.3 安裝依賴包
yum install -y python-virtualenv
yum install -y python-devel
yum install -y openldap-devel
yum install -y mysql-devel
yum groupinstall "Development tools" -y
cd $FRONTSPACE/dashboard/
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt
3.4 修改配置
根據本次記錄的配置,dashboard的配置文件在/home/front/open-falcon/dashboard/rrd/config.py,須要根據實際狀況對內部配置進行修改。
因爲前端後臺搭在一臺虛擬機裏,且暫時不接入LDAP,且數據庫root的密碼爲空,故先不修改配置文件。
3.5 開啓8081端口
1)防火牆添加8081端口永久開放
firewall-cmd --add-port=8081/tcp --permanent
2)從新載入防火牆配置
firewall-cmd --reload
3.6 在生產環境啓動
bash control start
因爲虛擬機ip配置爲192.168.3.1,故在瀏覽器中輸入192.168.3.1:8081後跳轉。
3.7 以開發者模式啓動
./env/bin/python wsgi.py原文地址(參考借鑑):https://www.cnblogs.com/straycats/p/7199209.html官方地址(GitHub):http://book.open-falcon.org/zh_0_2/quick_install/prepare.html