002.Open-Falcon Server部署及Agent監控

来源:https://www.cnblogs.com/itzgr/archive/2018/12/24/10168703.html
-Advertisement-
Play Games

一 前期準備 節點 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 ...


一 前期準備

節點 IP 備註
falcon 私網:172.24.10.95 臨時公網:120.132.23.107 Open-Falcon服務端
node01 172.24.10.216 被監控端
安裝git等依賴:yum -y install git telnet NTP配置; SELinux及防火牆關閉。 提示:對於任何時序性要求高的服務,都建議部署NTP服務。 Open-Falcon,為前後端分離的架構,包含backend 和 frontend兩部分:
  • 安裝後端
  • 安裝前端

二 基礎環境

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

各模塊配置文件路徑如下:
模塊 配置文件所在路徑 備註
aggregator   /data/falcon/aggregator/config/cfg.json  
graph /data/falcon/graph/config/cfg.json  
hbs /data/falcon/hbs/config/cfg.json  
nodata /data/falcon/nodata/config/cfg.json  
api /data/falcon/api/config/cfg.json  
alarm /data/falcon/alarm/config/cfg.json  
  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 04

五 dashboard管理

5.1 註冊賬號

05 dashbord沒有預設創建任何賬號包括管理賬號,需要通過頁面進行註冊賬號。 想擁有管理全局的超級管理員賬號,需要手動註冊用戶名為root的賬號(第一個帳號名稱為root的用戶會被自動設置為超級管理員)。 超級管理員可以給普通用戶分配許可權管理。

5.2 登錄測試

使用5.1所註冊賬號進行登錄。

06
提示:註冊賬號能夠被任何打開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

七 確認驗證

7.1 確認添加

瀏覽器訪問Falcon服務端:http://120.132.23.107:8081 07

7.2 查看監控項

隨機查看load.1 min的監控數據,確保所有監控正常。 08   參考文檔:https://www.cnblogs.com/straycats/p/7199209.html https://blog.csdn.net/qq_27384769/article/details/79569776

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一 Docker Compose概述 Compose是一個用於定義和運行多容器Docker應用程式的工具。使用Compose,您可以使用YAML文件來配置應用程式的服務。然後,使用單個命令,您可以從配置中創建並啟動所有服務。 Compose適用於所有環境:生產,登臺,開發,測試以及CI工作流程。 使 ...
  • Linux seq_printf輸出內容不完整的問題 寫在前面的話:這是多年前在項目中遇到的問題,作為博客的開篇之作,有不足之處,請各位大俠斧正!謝謝! seq_file介面介紹 有許多種方法能夠實現設備驅動(或其它內核組件)提供信息給用戶或系統管理員。一個有用的技術是在debugfs,/proc或 ...
  • 當你初次創建新的 Centos 伺服器的時候, Centos 預設的配置安全性和可用性上會存在一點缺陷(運維人員往往會有初始化的腳本)。為了增強伺服器的安全性和可用性,有些配置你應該儘快地完成。 這篇文章大致從這方面去講 - 賬號安全 - ssh 安全 - 防火牆 - 交換區文件(swap file... ...
  • 本文由雲+社區發表 TCP是一個複雜的協議,每個機制在帶來優勢的同時也會引入其他的問題。 Nagel演算法和delay ack機制是減少發送端和接收端包量的兩個機制, 可以有效減少網路包量,避免擁塞。但是,在特定場景下, Nagel演算法要求網路中只有一個未確認的包, 而delay ack機制需要等待更 ...
  • cat----文本輸出命令 格式:cat [選項] [文件] 主要三大功能:1.一次性顯示整個文件# cat 文件 cat /路徑/文件名2.從鍵盤創建一個文件# cat > 文件3.將幾個文件合併成一個文件# cat 文件1 文件2 >文件3 主要參數:-n 從1開始對所有輸出行進行行數編號-b ... ...
  • 原創作品,轉載請在文章明顯位置註明出處:https://www.cnblogs.com/sunshine5683/p/10170009.html 使用命令關閉和重啟系統: 一、條件:只有root用戶才可以執行關機和重啟操作 二、常用關機重啟的命令: 1、立即關機: shutdown -h now 2 ...
  • 1、node.js 守護進程組件 forever 安裝 npm install forever -g 安裝完成後截圖: 2、安裝完成後在控制台輸入 forever 出現 -bash: forever: command not found 3、添加環境變數 執行命令 vim /etc/profile ...
  • 我是 Centos 最小化安裝的,安裝網後 Centos 竟然無法上網。。。有點奇葩, 應該是網卡沒有激活的問題了,下麵是解決的過程 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...