Centos6.10下Open-falcon的分佈式安裝(虛擬機僞分佈式)和前端界面安裝

官方文檔地址,還在開發階段,文檔部分有點亂

https://book.open-falcon.org/zh_0_2/distributed_install/

僞分佈式安裝,只有一臺虛擬機,重在學習每個組件

1 環境準備

1.1 配置epel源

必備操作,很多軟件官方源沒有

sudo yum install -y epel-release

1.2 Redis安裝與啓動

sudo yum install -y redis

現在來創建一份自己的配置,官方的配置放在/etc/redis.conf,複製到自己喜歡的目錄

sudo mkdir /etc/redis
sudo cp /etc/redis.conf /etc/redis/6379.conf

修改/etc/init.d/redis文件,把配置的目錄REDIS_CONFIG這一項換成自己的配置文件,然後啓動

sudo /etc/init.d/redis start

查看一下日誌,默認目錄在/var/log/redis/redis.log,看到下面的信息就算成功 

1.3 Mysql安裝與啓動

我們用的是MariaDB,需要先卸載Mysql相關,再按照官網的安裝方法,在下面的頁面選擇自己的操作系統,然後新建/etc/yum.repos.d/MariaDB.repo文件,把庫信息填寫完畢保存

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos6-x86--centos6&version=10.0

MariaDB我沒有安裝最新版,10.3版在裝dashboard的時候,會裝不上mysql-python這個模塊,提示‘MYSQL’ has no member named ‘reconnect’錯誤,所以我裝了個10.0版

sudo yum remove -y mysql*
sudo vim /etc/yum.repos.d/MariaDB.repo
#填寫下面的文字
#[mariadb]
#name = MariaDB
#baseurl = http://yum.mariadb.org/10.0/centos6-x86
#gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
#gpgcheck=1

sudo yum -y install MariaDB-server MariaDB-devel
sudo service mysql start  #啓動

mysql默認的root用戶沒有密碼,修改一下

sudo mysqladmin -u root password "這裏寫你的密碼"

1.4 Go安裝

cd ~
wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.11.linux-amd64.tar.gz 
echo "PATH=$PATH:/usr/local/go/bin" >> .bashrc
source .bashrc
go  //測試,看到幫助信息輸出就算安裝成功
rm go1.11.linux-amd64.tar.gz 

#設置一下GOROOT和GOPATH
vim ~/.bashrc
#添加
export GOROOT=/usr/local/go  #go默認安裝在這個目錄
export GOPATH=/home/tuan/mygo  #這個可以隨便你喜好設置,go的工作目錄
source .bashrc

1.5 Git安裝

新機器啥都沒有

sudo yum install -y git

1.6 GCC安裝

sudo yum install -y gcc

2 Open-falcon編譯

一共需要編譯三個個模塊,主模塊(對應falcon-plus,包括agent、judge、graph、transfer等大部分模塊)、task模塊(貌似可選)和agent-updater(管理agent版本的組件,可選)

2.1 falcon-plus編譯

我用了go get工具,第一次接觸go語言項目的時候還不理解爲什麼要用這種src/github.com/open-falcon的目錄結構,原來是爲了go get

go get github.com/open-falcon/falcon-plus  #會在$GOPATH/src目錄下創建相應的目錄
cd $GOPATH/src/github.com/open-falcon/falcon-plus
make all
make pack
mkdir ~/open-falcon  //創建工作目錄
tar -xzf open-falcon-v0.2.1.tar.gz -C ~/open-falcon  //解壓到工作目錄,你要部署到哪裏就把這個包解壓到哪裏

順便初始化一個Mysql表結構,每次都會讓你輸入root用戶的密碼

cd 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

2.2 task編譯

編輯好之後的壓縮包就可以拿去部署了

go get https://github.com/open-falcon/task
go get https://github.com/open-falcon/common

cd $GOPATH/src/github.com/open-falcon/task
./control build
./control pack
mkdir ~/open-falcon/task  //建立工作目錄
tar -xzf falcon-task-0.0.10.tar.gz -C ~/open-falcon/task  //解壓到工作目錄

3 部署

cd ~/open-falcon

3.1 Agent

agent用於採集機器負載監控指標,隔60秒push給Transfer,每個組件的啓動、查詢指令都很類似

另外安裝了Agent的機器要開放1988端口,用於web頁面監控使用

#開放1988端口
sudo vi /etc/sysconfig/iptables
#在開放22端口的下一行添加如下規則
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 1988 -j ACCEPT
sudo service iptables restart 

./open-falcon start agent  #啓動agent
./open-falcon monitor agent #查看日誌
./falcon-agent --check  #查看agent狀態

這個時候日誌是會報錯的,因爲hbs這個組件還沒啓動,連接不上

3.2 Transfer

transfer負責數據轉發,把agent上報的數據按照哈希規則進行分片,然後push給graph和judge等組件

./open-falcon start transfer

3.3 Graph

負責存儲繪圖數據,也處理api組件的查詢請求,返回繪圖數據

顯然他是要配置一下數據庫密碼的

./open-falcon start graph

3.4 API

提供統一的restAPI操作接口,也要修改配置文件配置數據庫密碼

./open-falcon start api

3.5 Heartbeat Server

所有agent每分鐘向該服務器發送一次心跳信息,同時上報hostname、ip、agent version、plugin等數據,HBS負責更新host表

HBS還從數據庫獲取所有報警策略,存在內存裏,Judge組件再從HBS獲取所有報警策略,這樣可以減少Judge組件對數據庫的訪問,減少數據庫壓力

這裏要修改一下配置文件,配置一下數據庫的東西

#這一項的root和password改成數據庫的用戶名和密碼
"database": "root:password@tcp(127.0.0.1:3306)/falcon_portal?loc=Local&parseTime=true", # Portal的數據庫地址
./open-falcon start hbs

 3.6 Judge

告警預判,Transfer傳遞的數據通過一致性哈希分片,傳給不同judge,每個judge的壓力不會過大

./open-falcon start judge

3.7 Alarm

處理報警event,judge產生的報警event寫入redis,alarm從redis讀取處理

已經發送的告警信息會寫入MySQL保存,所以alram當然也是需要配置數據庫密碼的

因爲alarm對優先級低的報警進行了報警合併,所以alarm是個單點

./open-falcon start alarm

3.8 Nodata

檢測監控數據的上報異常,輔助judge工作,要配置數據庫密碼

./open-falcon start nodata

3.9 Aggregator

集羣聚合

這個也需要修改配置文件裏面的數據庫信息

./open-falcon start aggregator

3.10 DashBoard

這一步要求python2.7,然而Centos6.10自帶python2.6,同時yum還是依賴python2.6的

首先把python2.6的備份爲python_yum,然後打開yum腳本,讓其使用python2.6的解釋器

在我的系統上,/usr/bin下有python2.6的目錄,/usr/bin/python連接到這個目錄上

直接打開yum腳本,修改第一行爲python_yum

sudo vim /usr/bin/yum
#修改第一行爲#!/usr/bin/python-yum
sudo cp /usr/bin/python2.6 /usr/bin/python-yum

現在開始安裝python2.7,用的這篇博客裏的源碼編譯安裝https://blog.csdn.net/LoveCarpenter/article/details/74011641

#安裝依賴
sudo yum install -y zlib* openssl openssl-devel sqlite-devel

cd ~
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
mkdir python
tar -vxzf Python-2.7.15.tgz
cd Python-2.7.15
./configure
vim ./Modules/Setup
#找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz這一行,去掉註釋
make
sudo make install
python  #測試是否打開了python2.7.15
sudo rm /usr/bin/python
sudo ln -s /usr/local/bin/python /usr/bin/python  #創建鏈接


#清理現場
cd ~
sudo rm -r Python-2.7.15
rm Python-2.7.15.tgz

安裝一下pip

cd ~
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py
rm get-pip.py

然後開始安裝前端

cd ~
git clone https://github.com/open-falcon/dashboard.git

#安裝各種依賴
sudo yum install -y openldap-devel
sudo yum groupinstall "Development tools"

#virtualenv官方使用yum安裝,但是yum安裝的是python2.6的版本,導致python2.7不能用,乾脆用了pip安裝

#安裝python依賴
sudo /usr/local/bin/pip install virtualenv
cd dashboard
virtualenv env
env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple  #注意這一步的pip用的是env的pip

修改rrd/config.py,主要修改數據庫的密碼那兩項,分別是PORTAL_DB和ALARM_DB,然後終於可以啓動,需要暴露8081端口,修改一下防火牆設置

#開放8081端口
sudo vi /etc/sysconfig/iptables
#在開放22端口的下一行添加如下規則
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 8081 -j ACCEPT
sudo service iptables restart 

#開啓前端服務,以下兩種啓動方法
.env/bin/python wsgi.py
bash control start  #生產模式

然後開心地打開瀏覽器,輸入https://ip:8081,結果

看一下輸出信息

查了一下,https://stackoverflow.com/questions/7929460/django-400-bad-request-syntax-what-does-this-message-mean

換成了http://ip:8081就可以打開頁面

註冊,第一個註冊名爲root的人就是管理員……進去一看UI,這個UI爲何如此簡潔

我嘗試了QQ瀏覽器、火狐瀏覽器和IE瀏覽器,除了火狐瀏覽器其他渲染出來的畫面都是這麼極簡主義

火狐的倒是蠻好看的

 

3.11 Task

定時任務,負責index更新(圖表索引的全量更新和垃圾索引清理,暫時不理解)、falcon組件狀態數據採集和falcon自檢

cd ~/task
cp cfg.example.json cfg.json  #配置文件必須名爲cfg.json
vim cfg.json  #修改數據庫的密碼
bash control start  #啓動服務

#開啓一下防火牆的8002端口
sudo vi /etc/sysconfig/iptables
#在開放22端口的下一行添加如下規則
#-A INPUT -p tcp -m state --state NEW -m tcp --dport 8002 -j ACCEPT
sudo service iptables restart 

可以用瀏覽器訪問一下http://ip地址:8002/health,可以看到下面這種簡潔大氣的界面

3.12 Agent-updater

管理客戶端的版本

go get github.com/open-falcon/ops-updater

4 啓停

#!/bin/bash
#啓動redis
sudo /etc/init.d/redis start

#啓動mysql
sudo /etc/init.d/mysql start  #如果用的是mysql,啓動mysqld

#啓動open-falcon
cd ~/open-falcon
./open-falcon start agent
./open-falcon start transfer
./open-falcon start graph
./open-falcon start api
./open-falcon start hbs
./open-falcon start judge
./open-falcon start alarm
./open-falcon start nodata
./open-falcon start aggregator

#啓動task
cd ~/task
bash control start

#啓動dashboard
cd ~/dashboard
bash control start

5 簡單主機監控

http://IP地址:8081,打開後可以看到一個登陸界面,先註冊一個名爲root的root賬戶,然後登陸

登陸後點擊HostGroups,開始添加主機組,點擊右邊那個“+”號添加,名字隨便起

 然後點擊operation那裏的hosts,開始添加主機,輸入IP地址,點擊Add Host即可

 添加完成點擊Back返回,直接點擊hostname,就可以跳轉到主機監控頁面

6 後續

請參考本人其他關於Open-falcon的博文

Centos6.10下Open-falcon微信、郵件告警安裝、配置及使用

Centos6.10下Open-falcon學習記錄(零)——主機監控、Nodata組件、集羣監控

Centos6.10下Open-falcon學習記錄(一)——自定義數據採集、歷史查詢、進程監控

 

 

 

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