一 前期準備 節點 IP 備註 falcon 私網:172.24.10.95 臨時公網:120.132.23.107 Open-Falcon服務端 node01 172.24.10.216 被監控端 節點 IP 備註 falcon 私網:172.24.10.95 臨時公網:120.132.23.10 ...
一 前期準備
- 安裝後端
- 安裝前端
二 基礎環境
2.1 安裝redis
1 [root@falcon ~]# yum install -y redis
2.2 安裝資料庫
1 [root@falcon ~]# yum -y install mariadb mariadb-server
2.3 啟動相關服務
1 [root@falcon ~]# systemctl start redis 2 [root@falcon ~]# systemctl enable redis 3 [root@falcon ~]# systemctl start mariadb 4 [root@falcon ~]# systemctl enable mariadb
2.4 設置資料庫安全性
1 [root@falcon ~]# mysql_secure_installation #設置安全性,並設置資料庫root密碼
2.5 安裝go語言
1 [root@falcon ~]# mkdir /gohome 2 [root@falcon ~]# yum install -y epel-release 3 [root@falcon ~]# yum install -y golang提示:若yum無法安裝可通過以下方式採用二進位安裝形式:
1 [root@falcon ~]# wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz 2 [root@falcon ~]# tar -C /usr/local/ -zxvf go1.11.2.linux-amd64.tar.gz 3 [root@falcon ~]# echo 'export GOROOT=/usr/local/go' >> /etc/profile.d/go.sh 4 [root@falcon ~]# echo 'export GOBIN=$GOROOT/bin' >> /etc/profile.d/go.sh 5 [root@falcon ~]# echo 'export GOPKG=$GOROOT/pkg/tool/linux_amd64' >> /etc/profile.d/go.sh 6 [root@falcon ~]# echo 'export GOARCH=amd64' >> /etc/profile.d/go.sh 7 [root@falcon ~]# echo 'export GOOS=linux' >> /etc/profile.d/go.sh 8 [root@falcon ~]# echo 'export GOPATH=/gohome' >> /etc/profile.d/go.sh 9 [root@falcon ~]# echo 'export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin' >> /etc/profile.d/go.sh 10 [root@falcon ~]# go version 11 go version go1.11.2 linux/amd64
2.6 創建Falcon工作目錄
1 [root@falcon ~]# mkdir -p $GOPATH/src/github.com/open-falcon
2.7 下載Falcon源碼
1 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon 2 [root@falcon open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git
2.8 初始化資料庫
1 [root@falcon tmp]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/scripts/mysql/db_schema 2 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 1_uic-db-schema.sql 3 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 2_portal-db-schema.sql 4 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 3_dashboard-db-schema.sql 5 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 4_graph-db-schema.sql 6 [root@falcon db_schema]# mysql -h 127.0.0.1 -u root -p123456 < 5_alarms-db-schema.sql
2.9 獲取rrdtool工具包
1 [root@falcon db_schema]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/ 2 [root@falcon falcon-plus]# go get github.com/open-falcon/rrdlite
2.10 編譯及打包
1 [root@falcon falcon-plus]# make all 2 [root@falcon falcon-plus]# make pack提示:編譯打包完成後會生產一個open-falcon-v0.2.1.tar.gz的壓縮包,表示已經編譯和打包完成; 若編譯異常也可以使用官方提供的已編譯完成的包:https://github.com/open-falcon/falcon-plus/releases/download/v0.2.1/open-falcon-v0.2.1.tar.gz
三 部署後端
3.1 創建工作目錄
1 [root@falcon ~]# export FALCON_HOME=/data/falcon 2 [root@falcon ~]# export WORKSPACE=$FALCON_HOME/open-falcon 3 [root@falcon ~]# mkdir -p $WORKSPACE
3.2 解壓二進位包
1 [root@falcon ~]# cd $GOPATH/src/github.com/open-falcon/falcon-plus/ 2 [root@falcon falcon-plus]# tar -xzvf open-falcon-v0.2.1.tar.gz -C $WORKSPACE
3.2 修改配置文件
各模塊配置文件路徑如下:1 [root@falcon ~]# cd $WORKSPACE 2 [root@falcon open-falcon]# grep -Ilr 3306 ./ | xargs -n1 -- sed -i 's/root:/root:123456/g' 3 [root@falcon open-falcon]# grep -Ir 3306 ./ #確認修改提示:由於預設所有配置文件的資料庫配置均為空,因此需要將所有配置文件中關於db的用戶名和密碼進行修改。
3.3 啟動後端模塊
1 [root@falcon ~]# cd $WORKSPACE 2 [root@falcon open-falcon]# ./open-falcon start #啟動所有後端模塊 3 [root@falcon open-falcon]# ./open-falcon check #檢查啟動情況提示:更多命令使用方法:
1 # ./open-falcon [start|stop|restart|check|monitor|reload] module 2 # ./open-falcon start agent 3 [root@falcon open-falcon]# ./open-falcon check 4 falcon-graph UP 17148 5 falcon-hbs UP 17165 6 falcon-judge UP 17178 7 falcon-transfer UP 17187 8 falcon-nodata UP 17199 9 falcon-aggregator UP 17209 10 falcon-agent UP 17220 11 falcon-gateway UP 17232 12 falcon-api UP 17243 13 falcon-alarm UP 17259相關排查log見:$WorkDir/$moduleName/log/logs/xxx.log
四 部署前端
4.1 創建工作目錄
見3.1。4.2 下載前端源碼
1 [root@falcon ~]# cd $WORKSPACE 2 [root@falcon open-falcon]# git clone https://github.com/open-falcon/dashboard.git
4.3 安裝依賴
1 [root@falcon ~]# yum install -y python-virtualenv 2 [root@falcon ~]# yum install -y python-devel 3 [root@falcon ~]# yum install -y openldap-devel 4 [root@falcon ~]# yum install -y mariadb-devel 5 [root@falcon ~]# yum groupinstall "Development tools" -y 6 [root@falcon ~]# cd $WORKSPACE/dashboard/ 7 [root@falcon dashboard]# virtualenv ./env 8 [root@falcon dashboard]# ./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
4.4 初始化資料庫
參考:2.8。 提示:由於前後端部署在同一節點,部署後端過程中已初始化資料庫,4.4步驟可跳過。4.5 修改前端dashboard配置
1 [root@falcon ~]# vi /data/falcon/open-falcon/dashboard/rrd/config.py 2 # portal database 3 # TODO: read from api instead of db 4 PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1") 5 PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306)) 6 PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root") 7 PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456") #修改資料庫密碼 8 PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal") 9 10 # alarm database 11 # TODO: read from api instead of db 12 ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1") 13 ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306)) 14 ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root") 15 ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456") #修改資料庫密碼 16 ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")提示:config.py配置文件解析: API_ADDR:表示後端api組件的地址,前後端部署在同一臺時不需要修改。
4.6 放通防火牆
1 [root@falcon ~]# firewall-cmd --add-port=8081/tcp --permanent 2 [root@falcon ~]# firewall-cmd --reload提示:若已關閉防火牆,則跳過此步驟。
4.7 啟動dashboard
1 [root@falcon ~]# cd /data/falcon/open-falcon/dashboard/ 2 [root@falcon dashboard]# bash control start #以生產模式啟動 3 [root@falcon dashboard]# bash control tail #查看相關log
4.8 測試訪問
瀏覽器訪問Falcon服務端:http://120.132.23.107:8081五 dashboard管理
5.1 註冊賬號
dashbord沒有預設創建任何賬號包括管理賬號,需要通過頁面進行註冊賬號。 想擁有管理全局的超級管理員賬號,需要手動註冊用戶名為root的賬號(第一個帳號名稱為root的用戶會被自動設置為超級管理員)。 超級管理員可以給普通用戶分配許可權管理。5.2 登錄測試
使用5.1所註冊賬號進行登錄。
提示:註冊賬號能夠被任何打開dashboard頁面的人註冊,所以當給相關的人註冊完賬號後,需要去關閉註冊賬號功能。只需要去修改api組件的配置文件cfg.json,將signup_disable配置項修改為true,重啟api即可。當需要給人開賬號的時候,再將配置選項改回去,用完再關掉即可。
六 Agent獨立安裝
6.1 Agent簡介
agent用於採集機器負載監控指標,比如cpu.idle、load.1min、disk.io.util等等,每隔60秒push給Transfer。agent與Transfer建立了長連接,數據發送速度比較快,agent提供了一個http介面/v1/push用於接收用戶手工push的一些數據,然後通過長連接迅速轉發給Transfer。6.2 複製agent包
將Falcon服務端的Agent包複製至被監控端node01。1 [root@node01 ~]# mkdir -p /data/falcon/open-falcon/ #node01節點創建工作目錄 2 [root@falcon ~]# cd /data/falcon/open-falcon/ 3 [root@falcon open-falcon]# scp -r agent/ [email protected]:/data/falcon/open-falcon/ 4 [root@falcon open-falcon]# scp -r open-falcon [email protected]:/data/falcon/open-falcon/
6.3 修改agent配置
1 [root@node01 ~]# vi /data/falcon/open-falcon/agent/config/cfg.json 2 { 3 "debug": true, # 控制一些debug信息的輸出,生產環境通常設置為false 4 "hostname": "", # agent採集了數據發給transfer,endpoint就設置為了hostname,預設通過`hostname`獲取,如果配置中配置了hostname,就用配置中的 5 "ip": "", # agent與hbs心跳的時候會把自己的ip地址發給hbs,agent會自動探測本機ip,如果不想讓agent自動探測,可以手工修改該配置 6 "plugin": { 7 "enabled": false, # 預設不開啟插件機制 8 "dir": "./plugin", # 把放置插件腳本的git repo clone到這個目錄 9 "git": "https://github.com/open-falcon/plugin.git", # 放置插件腳本的git repo地址 10 "logs": "./logs" # 插件執行的log,如果插件執行有問題,可以去這個目錄看log 11 }, 12 "heartbeat": { 13 "enabled": true, # 此處enabled要設置為true 14 "addr": "172.24.10.95:6030", # hbs的地址,埠是hbs的rpc埠 15 "interval": 60, # 心跳周期,單位是秒 16 "timeout": 1000 # 連接hbs的超時時間,單位是毫秒 17 }, 18 "transfer": { 19 "enabled": true, 20 "addrs": [ 21 "172.24.10.95:18433" 22 ], # transfer的地址,埠是transfer的rpc埠, 可以支持寫多個transfer的地址,agent會保證HA 23 "interval": 60, # 採集周期,單位是秒,即agent一分鐘採集一次數據發給transfer 24 "timeout": 1000 # 連接transfer的超時時間,單位是毫秒 25 }, 26 "http": { 27 "enabled": true, # 是否要監聽http埠 28 "listen": ":1988", 29 "backdoor": false 30 }, 31 "collector": { 32 "ifacePrefix": ["eth", "em"], # 預設配置只會採集網卡名稱首碼是eth、em的網卡流量,配置為空就會採集所有的,lo的也會採集。可以從/proc/net/dev看到各個網卡的流量信息 33 "mountPoint": [] 34 }, 35 "default_tags": { 36 }, 37 "ignore": { # 預設採集了200多個metric,可以通過ignore設置為不採集 38 "cpu.busy": true, 39 "df.bytes.free": true, 40 "df.bytes.total": true, 41 "df.bytes.used": true, 42 "df.bytes.used.percent": true, 43 "df.inodes.total": true, 44 "df.inodes.free": true, 45 "df.inodes.used": true, 46 "df.inodes.used.percent": true, 47 "mem.memtotal": true, 48 "mem.memused": true, 49 "mem.memused.percent": true, 50 "mem.memfree": true, 51 "mem.swaptotal": true, 52 "mem.swapused": true, 53 "mem.swapfree": true 54 } 55 }
6.4 啟動Agent
1 [root@node01 ~]# cd /data/falcon/open-falcon/ 2 [root@node01 open-falcon]# ./open-falcon start agent 3 [root@node01 open-falcon]# ./open-falcon monitor agent #查看運行日誌
6.5 檢查Agent
1 [root@node01 ~]# cd /data/falcon/open-falcon/agent/bin 2 [root@node01 bin]# ./falcon-agent --check 3 disk.io ... ok 4 memory ... ok 5 netstat ... ok 6 ss -s ... ok 7 kernel ... ok 8 net.if ... ok 9 loadavg ... ok 10 cpustat ... ok 11 du -bs ... ok 12 df.bytes ... ok 13 ss -tln ... ok 14 ps aux ... ok