監控軟件之open-falcon安裝、配置篇


2019-07-10

一、open-falcon簡介

  open-falcon是由小米運維團隊,從互聯網公司角度為出發點,開發出來的一套面向互聯網行業的企業級的開源監控系統,截至2019年7月,open-falcon最新穩定版本為v0.2

二、open-falcon特性

  • 數據采集方式多樣靈活:支持agent、snmp、用戶主動push、自定義插件等多種方式進行數據采集
  • 高效率報警策略管理
  • 人性化的告警設置
  • dashboard多維度數據展示
  • 模板支持繼承的同時支持覆蓋策略項
  • server端無需做配置,只需要在client端按照agent則可以自動監控
  • 引入tag概念,通過tag多維度對數據進行查詢展示

三、open-falcon系統架構

四、open-falcon組件功能

  • falcon-agent:負責采集監控目標的數據,agent本身有一個http接口,用戶可以通過http接口將數據主動push到agent。agent和transfer保持長連接,將采集到的數據上報給transfer。
  • transfer:會將數據分別轉發給judge和graph,judge和graph使用一致性hash進行數據的分片。
  • judge:從heartbeat中獲取報警策略,進行策略報警判斷,並將判斷是否告警的事件放進redis隊列。
  • alerm:從redis中取出事件,根據配置做告警處理,如發送郵件通知等。
  • graph:負責數據的存儲和歸檔以及數據查詢功能。
  • heartbeat:統計agent上報信息,下發報警策略。
  • dashboard: 數據展示,用戶配置。

五、open-falcon單機版安裝

5.1安裝redis

#創建redis工作目錄
mkdir
/home/redis && cd /home/redis #下載redis程序包: wget http://download.redis.io/releases/redis-4.0.9.tar.gz #編譯安裝 tar -zxvf redis-4.0.9.tar.gz mv redis-4.0.9 redis4.0.9 && cd redis4.0.9 mkdir logs make && make install #修改配置文件 vim redis.conf bind 0.0.0.0 daemonize yes pidfile /var/run/redis_6379.pid logfile "/home/redis/redis4.0.9/logs/redis.log" #啟動redis redis-server /home/redis/redis4.0.9/redis.conf #連接測試 redis-cli -h 127.0.0.1 -p 6379

 

5.2安裝mysql

#安裝yum-utils
yum -y install yum-utils
#mysql官網上下載mysql的yum源安裝包
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
#添加yum源
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
#開啟5.7安裝,關閉8.0安裝源
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
#yum安裝mysql
yum -y install mysql-community-server
#修改mysql配置文件,關閉復雜密碼策略
echo "validate-password=OFF" >> /etc/my.cnf
#啟動mysql 並加入開機啟動項             
systemctl start mysqld.service
systemctl status mysqld.service
systemctl enable mysqld.service
#查看默認root密碼
grep 'temporary password' /var/log/mysqld.log
#登陸mysql后修改root密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#root用戶授權
GRANT ALL  ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456';
GRANT ALL  ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
flush privileges;

 

5.3初始化表結構

#clone項目至本地
git clone https://github.com/open-falcon/falcon-plus.git
#導入表結構 cd ./falcon-plus/scripts/mysql/db_schema/ mysql -uroot -p123456 < 1_uic-db-schema.sql mysql -uroot -p123456 < 2_portal-db-schema.sql mysql -uroot -p123456 < 3_dashboard-db-schema.sql mysql -uroot -p123456 < 4_graph-db-schema.sql mysql -uroot -p123456 < 5_alarms-db-schema.sql
#刪除目錄
rm -rf falcon-plus/

 

5.4安裝golang

#下載go安裝包
https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
#解壓至/home目錄下
tar -zxvf go1.12.7.linux-amd64.tar.gz -C /home
#聲明PATH
echo "export PATH=$PATH:/home/go/bin" >> /etc/profile
source  /etc/profile
#查看go版本
go version

 

5.5創建工作目錄

export FALCON_HOME=/home
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE

 

5.6下載安裝包

#下載安裝包
wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.0/open-falcon-v0.2.0.tar.gz
#解壓
cd /home/open-falcon
tar  -zxvf open-falcon-v0.2.0.tar.gz

 

5.7后端啟動

#修改配置文件為自己設置的mysql用戶和密碼
grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/real_user:real_password/g'
#啟動服務
/home/open-falcon/open-falcon start
/home/open-falcon/open-falcon check
#顯示如下則全部啟動成功

  falcon-graph UP 27685
  falcon-hbs UP 27697
  falcon-judge UP 27707
  falcon-transfer UP 27716
  falcon-nodata UP 27724
  falcon-aggregator UP 27732
  falcon-agent UP 27743
  falcon-gateway UP 27753
  falcon-api UP 27761
  falcon-alarm UP 28201

 

 

5.8前端啟動

#下載dashboard項目至本地
cd $WORKSPACE
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"
#創建獨立的虛擬環境
cd $WORKSPACE/dashboard/
virtualenv ./env
#pip安裝依賴
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
#修改配置文件
vim rrd/config
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1")
PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306))
PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root")
PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","123456")
PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal")

# alarm database
# TODO: read from api instead of db
ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1")
ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306))
ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root")
ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","123456")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
#啟動
bash control start
bash control status
#查看日志
bash control tail

 

5.9安裝agent

#將agent目錄及啟動命令拷貝至客戶端上
scp -r agent/ root@192.168.1.66:/home/open-falcon/
scp open-falcon root@192.168.1.66:/home/open-falcon/
#編輯agent配置文件,修改hostname、transfer、heaetbeat配置項
vim agent/config/cfg.json
#啟動agent,查看agent狀態
./open-falcon start agent
./open-falcon check agent
tailf agent/logs/agent.log
#重載配置文件
curl 127.0.0.1:1988/config/reload

 

5.10訪問測試

agent訪問地址:
http://ip:1988/
dashboard訪問地址:
http://ip:8081/

 

 

六、open-falcon相關資料

中文手冊:http://book.open-falcon.com/zh_0_2/
項目地址:https://github.com/open-falcon/falcon-plus

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM