單機部署open-falcon 0.2

如果對falcon不瞭解,建議先對下這篇文章《open-falcon介紹》(http://book.open-falcon.org/zh/intro/index.html)

爲什麼要選擇open-falcon?


* 靈活的數據採集,支持自定義數據上報

* 支持策略模板、模板繼承和覆蓋

* 高效的告警判別,支持告警暫停、維護週期設置

* 組件支持水平拓展

* 大部分用golang編寫,部署相對簡單


open-falcon是採用了前後端分離的架構,這裏演示前後端部署在同一主機上。整個部署劃分爲三大步驟:一、環境準備,二、後端部署,三、前端部署


一、環境準備:

需要注意一下三個版本的限制:

mysql 5.5及以下

go *>=1.6

git *>=1.7.5


1、安裝git

[root@cml_ali_sz_120 etc]# yum install -y git

安裝完成後查看版本信息是否符合以上要求:

[root@cml_ali_sz_120 etc]# git version
git version 1.8.3.1


2、安裝go語言環境(因爲官方yum和阿里yum都沒有go的安裝包,故只能通過fedora的epel倉庫來安裝)


[root@cml_ali_sz_120 etc]# yum install -y epel-release
[root@cml_ali_sz_120 etc]# yum install golang -y

同樣的需要檢查下go的版本是否符合上面要求:

[root@cml_ali_sz_120 etc]# go version
go version go1.9.4 linux/amd64


3、安裝redis:(這裏我選擇使用源碼安裝,而且爲了方便使用的是shell腳本一鍵安裝的,所以下面貼出安裝redis的命令部分)

redis () {
    cd /root/src
    tar xzvf redis-4.0.8.tar.gz
    mv redis-4.0.8 /usr/local/redis
    cd /usr/local/redis
    make
    rm -f /usr/local/bin/redis-cli
    ln -s /usr/local/redis/src/redis-cli /usr/local/bin
}


4、安裝mysql(一樣使用腳本安裝)

# Mysql
yum install -y cmake ncurses-devel gcc gcc-c++ libstdc++-devel libtool-ltdl libtool-ltdl-devel \
bison-devel libaio libaio-devel libtool mysql-devel gcc python-devel
Mysql () {
groupadd mysql
useradd -r -s /bin/false -g mysql mysql
cd /root/src
rm -rf mysql-5.7.21
tar xzvf mysql-boost-5.7.21.tar.gz
cd mysql-5.7.21
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc/ \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=bundled \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=boost
if make;then
    make install
else
    exit 1
fi
/bin/cp support-files/mysql.server /etc/init.d/mysql
chmod a+x /etc/init.d/mysql
cd /usr/local/mysql
rm -rf /etc/my.cnf
cp -f support-files/my-default.cnf /etc/my.cnf
chown -R mysql .
chgrp -R mysql .
bin/mysqld --initialize
chown -R root .
chown -R mysql data
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
rm -f /usr/local/bin/mysql
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/
chkconfig --add mysql
chkconfig mysql on
}


當然爲了方便也是可以使用yum安裝redis於mysql服務的

yum安裝redis:

yum install redis -y

啓動redis

systemctl start redis

設置redis開機啓動 

systemctl enable redis

可以用下面的語句查看redis是否開啓

systemctl status redis


yum安裝mysql:

yum install mysql-server -y

啓動mysql

systemctl start mysql

可以用下面的語句查看mysql是否開啓

systemctl status mysql

   


5、設置環境變量GOROOT和GOPATH


[root@cml_ali_sz_120 etc]# export GOROOT=/usr/lib/golang
[root@cml_ali_sz_120 etc]# export GOPATH=/home


6、從github上下載open-falcon源碼:


創建本地路徑

[root@cml_ali_sz_120 ~]# mkdir -p $GOPATH/src/github.com/open-falcon
[root@cml_ali_sz_120 ~]# cd $GOPATH/src/github.com/open-falcon


git clone github上的源碼

[root@cml_ali_sz_120 open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git


7、初始化數據庫

cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema/
mysql -h 127.0.0.1 -u root -ppasswd < 1_uic-db-schema.sql
mysql -h 127.0.0.1 -u root -ppasswd < 2_portal-db-schema.sql
mysql -h 127.0.0.1 -u root -ppasswd < 3_dashboard-db-schema.sql
mysql -h 127.0.0.1 -u root -ppasswd < 4_graph-db-schema.sql
mysql -h 127.0.0.1 -u root -ppasswd < 5_alarms-db-schema.sql

將passwd修改成自己的密碼


8、編譯源碼安裝並打包

進入本地源碼路徑

[root@cml_ali_sz_120 open-falcon]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/


使用go get獲取rrdtool工具包(make過程卡殼的一個點,這一步是官方教程沒有提到的內容,如果不獲取該工具包make的時候會報錯。) 

[root@cml_ali_sz_120 falcon-plus]# go get github.com/open-falcon/rrdlite


編譯所有模塊

[root@cml_ali_sz_120 falcon-plus]# make all


然後打包

[root@cml_ali_sz_120 falcon-plus]# make pack

image.png

9、官方提供的安裝包


https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供編譯包,如果編譯過程不順利可以直接下載編譯包。


二、部署後端

1、創建後端目錄

[root@cml_ali_sz_120 ~]# export WORKSPACE=/home/work
[root@cml_ali_sz_120 ~]# mkdir -p $WORKSPACE

2、解壓二進制包:

[root@cml_ali_sz_120 falcon-plus]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/
[root@cml_ali_sz_120 falcon-plus]# tar -zxvf open-falcon-v0.2.1.tar.gz -c $WORKSPACE


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


(mysql的root密碼爲空,則去掉“password”,若不爲空,則用root密碼替換“password”。)

1)修改aggregator的配置文件


vim /home/work/aggregator/config/cfg.json

image.png

2)修改graph的配置文件


vim /home/work/graph/config/cfg.json

image.png

3)修改hbs的配置文件


vim /home/work/hbs/config/cfg.json

image.png

4)修改nodata的配置文件


vim /home/work/nodata/config/cfg.json

image.png

5)修改api的配置文件


vim /home/work/api/config/cfg.json

image.png

6)修改alarm的配置文件


vim /home/work/alarm/config/cfg.json

image.png

4、啓動後端模塊:

[root@cml_ali_sz_120 work]# cd $WORKSPACE
[root@cml_ali_sz_120 work]# ./open-falcon start


檢查下各個模塊的啓動情況:

[root@cml_ali_sz_120 work]# ./open-falcon check
        falcon-graph         UP            1722
          falcon-hbs         UP            1730
        falcon-judge         UP            1735
     falcon-transfer         UP            1743
       falcon-nodata         UP            1749
   falcon-aggregator         UP            1756
        falcon-agent         UP            1764
      falcon-gateway         UP            1771
          falcon-api         UP            1777
        falcon-alarm         UP            1789

不會使用命令可以-h查看:

[root@cml_ali_sz_120 work]# ./open-falcon -h

Usage:

  open-falcon [flags]

  open-falcon [command]


Available Commands:

  check       Check the status of Open-Falcon modules

  help        Help about any command

  monitor     Display an Open-Falcon module's log

  reload      Reload an Open-Falcon module's configuration file

  restart     Restart Open-Falcon modules

  start       Start Open-Falcon modules

  stop        Stop Open-Falcon modules


Flags:

  -v, --version   show version


Use "open-falcon [command] --help" for more information about a command.


三、部署前端:

1、創建前端目錄:

[root@cml_ali_sz_120 ~]# export FRONTSPACE=/home/front/open-falcon
[root@cml_ali_sz_120 ~]# mkdir -p $FRONTSPACE


2、在github上下載前端代碼:

[root@cml_ali_sz_120 open-falcon]# cd $FRONTSPACE
[root@cml_ali_sz_120 open-falcon]# git clone https://github.com/open-falcon/dashboard.git


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


4、修改配置


根據本次記錄的配置,dashboard的配置文件在/home/front/open-falcon/dashboard/rrd/config.py,需要根據實際情況對內部配置進行修改。


由於前端後臺搭在一臺虛擬機裏,且暫時不接入LDAP,且數據庫root的密碼爲空,故先不修改配置文件。


5、假如開啓firewalld開放8081端口即可:

firewall-cmd --add-port=8081/tcp --permanent
firewall-cmd --reload

6、啓動control:

[root@cml_ali_sz_120 dashboard]# bash control start


7、以開發者模式啓動:

[root@cml_ali_sz_120 dashboard]# ./env/bin/python wsgi.py


然後直接訪問open-falcon:http://localhost:8081

image.png

然後進去後因爲沒有賬號所以先要註冊一個管理員賬號:

點擊右上角的sign up註冊

image.png

然後就可以監控主機信息:

image.png

image.pngimage.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章