1. 程式人生 > >centos 7 部署 open-falcon 0.2.0

centos 7 部署 open-falcon 0.2.0

body 3.2 1.7 前端 agen logs usr reg graph

===============================================

2017/12/06_第2次修改 ccb_warlock

更新說明:

2017/12/06: 由於open-falcon已有0.2.1,增加文字說明,避免命令一路執行下來出現問題(例如“2.2 解壓二進制包”)。

===============================================

我也是因為工作需要剛剛接觸linux,有些內容也是一知半解無法描述清楚,只能日後再進行補充。

官方和github上都有教程,但是對於我來說有的部署內容較為陌生,有點錯誤官方也未在教程中說明,故在此記錄方便以後快速部署,本文部署的時間是2017/7/18。

雖然open-falcon是采用了前後端分離的架構,但是為了方便部署,服務端的後端與前端均部署在同一個虛擬機內,本記錄是從centos剛剛裝完後的初始環境開始部署,安裝全程選擇的用戶為root。


一、環境準備

操作系統:centos7(minimal,www.centos.org下載的包是CentOS-7-x86_64-Minimal-1611.iso)

1.1 更換阿裏yum(個人習慣)

步驟:

1)下載wget

yum install -y wget

2)備份默認的yum

mv /etc/yum.repos.d /etc/yum.repos.d.backup

3)設置新的yum目錄

mkdir /etc/yum.repos.d

4)下載阿裏yum配置到該目錄中

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.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|stop|restart|check|monitor|reload] module
./open-falcon start agent

./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.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

centos 7 部署 open-falcon 0.2.0