單機部署open-falcon 0.2

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

爲何要選擇open-falcon?前端


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

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

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

* 組件支持水平拓展c++

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


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


1、環境準備:golang

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

mysql 5.5及如下

go *>=1.6

git *>=1.7.5


一、安裝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


二、安裝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


三、安裝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
}


四、安裝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

   


五、設置環境變量GOROOT和GOPATH


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


六、從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


七、初始化數據庫

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修改爲本身的密碼


八、編譯源碼安裝並打包

進入本地源碼路徑

[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

九、官方提供的安裝包


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


2、部署後端

一、建立後端目錄

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

二、解壓二進制包:

[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


三、修改配置文件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

四、啓動後端模塊:

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


3、部署前端:

一、建立前端目錄:

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


二、在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


三、安裝須要的依賴包:

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


四、修改配置


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


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


五、假如開啓firewalld開放8081端口便可:

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

六、啓動control:

[root@cml_ali_sz_120 dashboard]# bash control start


七、以開發者模式啓動:

[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

相關文章
相關標籤/搜索