Open-Falcon部署分為前端(客戶端)/后端(服務(wù)端)? 和監(jiān)控機(jī)器(agent部署)的安裝
注:機(jī)器量很小(<100量級(jí))時(shí),前后端可以裝在一臺(tái)機(jī)器上
參考官方文檔:https://book.open-falcon.org/zh_0_2/distributed_install/agent.html
一 后端(服務(wù)端)部署
1隧期、系統(tǒng)環(huán)境
[root@open-falcon-server ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
2飒责、軟件環(huán)境準(zhǔn)備
2.1 安裝 redis
#安裝
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm????
rpm -ivh epel-release-latest-7.noarch.rpm
yum?install?redis -y
#redis常用命令
????redis-server???? redis 服務(wù)端
????redis-cli redis 命令行客戶端
????redis-benchmark? redis 性能測(cè)試工具
????redis-check-aof AOF文件修復(fù)工具
????redis-check-dump? RDB文件修復(fù)工具
????redis-sentinel ? Sentinel 服務(wù)端
#啟動(dòng)redis
[root@open-falcon-server ~]# redis-server
2.2 安裝mysql
#安裝mysql
[root@open-falcon-server ~]#wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm??
[root@open-falcon-server ~]# ll
[root@open-falcon-server ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm?
[root@open-falcon-server ~]# cd /etc/yum.repos.d/
[root@open-falcon-server ~]#yum install -y mysql-server
#啟動(dòng)mysql并設(shè)置開(kāi)機(jī)自啟動(dòng)
[root@open-falcon-server ~]# systemctl start mysqld.service
[root@open-falcon-server ~]# systemctl enable mysqld.service
[root@open-falcon-server ~]# mysql -uroot -p
(沒(méi)有密碼)
mysql> exit?
#檢查服務(wù)
netstat -lntup
? ???顯示tcp6 0 0 :::3306 :::* LISTEN 12813/mysqld
#初始化MySQL表結(jié)構(gòu)(備注:導(dǎo)入表結(jié)構(gòu)后赘娄,注意檢查)
cd?/tmp/?&& git clone https://github.com/open-falcon/falcon-plus.git
cd?/tmp/falcon-plus/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
rm?-rf /tmp/falcon-plus/
#設(shè)置數(shù)據(jù)庫(kù)密碼?(備注:用戶名:root ,密碼: password )
[root@open-falcon-server open-falcon]# mysqladmin -uroot password "password"
#檢查導(dǎo)入的數(shù)據(jù)庫(kù)表
[root@open-falcon-server open-falcon]# mysql -uroot -p
mysql> show databases;
information_schema || alarms || dashboard || falcon_portal || graph || mysql || performance_schema || uicmysql> exit
2.3配置Go語(yǔ)言開(kāi)發(fā)環(huán)境
#安裝go語(yǔ)言開(kāi)發(fā)包(備注:安裝需要epel源)
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
ll
rpm -ivh epel-release-latest-7.noarch.rpmyum?install?golang -y
#檢查版本
[root@open-falcon-server ~]# go version
#查看go的安裝路徑
[root@open-falcon-server ~]# find / -name go
/etc/alternatives/go
/var/lib/alternatives/go
/usr/bin/go
/usr/lib/golang/src/cmd/go?#需要的是這個(gè)路徑
/usr/lib/golang/src/go
/usr/lib/golang/bin/go
/usr/lib/golang/pkg/linux_amd64/go
#設(shè)置環(huán)境變量GOROOT和GOPATH
vi /etc/profile
????export?GOROOT=/usr/lib/golang
????export?GOPATH=/home
source /etc/profile
3.下載編譯好的二進(jìn)制版本
直接下載官方編譯好的二進(jìn)制版本(x86 64位平臺(tái))。
https://github.com/open-falcon/falcon-plus/releases
#開(kāi)始安裝open-falcon
[root@open-falcon-server ~]# export FALCON_HOME=/home/work
[root@open-falcon-server ~]# export WORKSPACE=$FALCON_HOME/open-falcon
[root@open-falcon-server ~]# mkdir -p $WORKSPACE
#上傳軟件
[root@open-falcon-server ~]# ll
???
?-rw-r--r--. 1 root root 40031472 Oct 29 2017?open-falcon-v0.2.1.tar.gz
#解壓
[root@open-falcon-server ~]# tar -xf open-falcon-v0.3.tar.gz -C $WORKSPACE
[root@open-falcon-server ~]# cd $WORKSPACE
#查看解壓結(jié)果
[root@open-falcon-server?open-falcon]# ll
????total 3896
????drwxrwxr-x. 7 501 501????? 67 Aug 15 19:16 agent
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 aggregator
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 alarm
????drwxrwxr-x. 6 501 501????? 51 Aug 15 19:16 api
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 gateway
????drwxrwxr-x. 6 501 501????? 51 Aug 15 19:16 graph
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 hbs
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 judge
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 nodata
????-rwxrwxr-x. 1 501 501 3987469 Aug 15 19:16?open-falcon
????lrwxrwxrwx. 1 501 501????? 16 Aug 15 19:16 plugins -> ./agent/plugins/
????lrwxrwxrwx. 1 501 501????? 15 Aug 15 19:16 public -> ./agent/public/
????drwxrwxr-x. 5 501 501????? 40 Aug 15 19:16 transfer
4.修改配置文件cfg.json
部分模塊依賴連接數(shù)據(jù)庫(kù)宏蛉,因?yàn)槿绻恍薷呐渲梦募簿剩琣ggregator模塊會(huì)出現(xiàn)無(wú)法啟動(dòng),graph拾并、hbs揍堰、nodata、api嗅义、alarm模塊會(huì)出現(xiàn)開(kāi)啟不報(bào)錯(cuò)但是狀態(tài)為開(kāi)啟失敗的情況屏歹。
如果需要每個(gè)模塊都能正常啟動(dòng),需要將上面模塊的cfg.json的數(shù)據(jù)庫(kù)信息進(jìn)行修改芥喇。需要修改配置文件所在的目錄:?
1)修改aggregator的配置文件
vim /home/work/aggregator/config/cfg.json
2)修改graph的配置文件
vim /home/work/graph/config/cfg.json
3)修改hbs的配置文件
vim /home/work/hbs/config/cfg.json
4)修改nodata的配置文件
vim /home/work/nodata/config/cfg.json
5)修改api的配置文件
vim /home/work/api/config/cfg.json
6)修改alarm的配置文件
vim /home/work/alarm/config/cfg.json
5.啟動(dòng)后端模塊
[root@open-falcon-server?open-falcon]# cd /home/work/open-falcon
#啟動(dòng)服務(wù)
[root@open-falcon-server?open-falcon]# ./open-falcon start
#檢查服務(wù)啟動(dòng)狀態(tài)
[root@open-falcon-server?open-falcon]# ./open-falcon check
#更多的命令行工具用法
# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon?start agent
#For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log
6.其它用法
#重載配置(備注:修改vi cfg.json配置文件后胖眷,可以用下面命令重載配置)
curl 127.0.0.1:1988/config/reload
二? 前端部署
注:機(jī)器量很小(<100量級(jí))時(shí)武通,前后端可以裝在一臺(tái)機(jī)器上
1、創(chuàng)建工作目錄
export?HOME=/home/work
export?WORKSPACE=$HOME/open-falcon
mkdir?-p $WORKSPACE
cd?$WORKSPACE
2珊搀、克隆前端組件代碼
git clone https://github.com/open-falcon/dashboard.git
3冶忱、安裝依賴包
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 $WORKSPACE/dashboard/?
virtualenv ./env
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple?
#配置說(shuō)明:
????dashboard的配置文件為: 'rrd/config.py',請(qǐng)根據(jù)實(shí)際情況修改
## API_ADDR 表示后端api組件的地址
????API_ADDR = "http://127.0.0.1:8080/api/v1"
## 根據(jù)實(shí)際情況境析,修改PORTAL_DB_*, 默認(rèn)用戶名為root囚枪,默認(rèn)密碼為""
## 根據(jù)實(shí)際情況,修改ALARM_DB_*, 默認(rèn)用戶名為root劳淆,默認(rèn)密碼為""
#修改方法
[root@Open-Falcon-client]#cd /home/work/open-falcon/dashboard/rrd
[root@Open-Falcon-client rrd]# cp config.py config.py.bak
(env)[root@Open-Falcon-client rrd]# vi config.py
#-*-coding:utf8-*-
# Copyright 2017 Xiaomi, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# app config
import?os
LOG_LEVEL = os.environ.get("LOG_LEVEL",'DEBUG')
SECRET_KEY = os.environ.get("SECRET_KEY","secret-key")
PERMANENT_SESSION_LIFETIME = os.environ.get("PERMANENT_SESSION_LIFETIME",3600 * 24 * 30)
SITE_COOKIE = os.environ.get("SITE_COOKIE","open-falcon-ck")
# Falcon+ API
API_ADDR = os.environ.get("API_ADDR","http://192.168.1.180:8080/api/v1")
# portal database
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","192.168.1.180")
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","password")
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","192.168.1.180")
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","password")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
# ldap config
LDAP_ENABLED = os.environ.get("LDAP_ENABLED",False)
LDAP_SERVER = os.environ.get("LDAP_SERVER","ldap.forumsys.com:389")
LDAP_BASE_DN = os.environ.get("LDAP_BASE_DN","dc=example,dc=com")
LDAP_BINDDN_FMT = os.environ.get("LDAP_BINDDN_FMT","uid=%s,dc=example,dc=com")
LDAP_SEARCH_FMT = os.environ.get("LDAP_SEARCH_FMT","uid=%s")
LDAP_ATTRS = ["cn","mail","telephoneNumber"]
LDAP_TLS_START_TLS = False
LDAP_TLS_CACERTDIR = ""
LDAP_TLS_CACERTFILE = "/etc/openldap/certs/ca.crt"
LDAP_TLS_CERTFILE = ""
LDAP_TLS_KEYFILE = ""
LDAP_TLS_REQUIRE_CERT = True
LDAP_TLS_CIPHER_SUITE = ""
# i18n
BABEL_DEFAULT_LOCALE = 'zh_CN'
BABEL_DEFAULT_TIMEZONE = 'Asia/Shanghai'
# aviliable translations
LANGUAGES = {
'en': 'English',
'zh_CN': 'Chinese-Simplified',
}
# portal site config
MAINTAINERS = ['root']
CONTACT = 'root@open-falcon.org'
try:
from rrd.local_config import?*
except:
print "[warning] no local config file"
#啟動(dòng)服務(wù)
有兩種方法:
法一:
(env)[root@Open-Falcon-client dashboard]# bash control start
falcon-dashboard started..., pid=40853
法二:
(env)[root@Open-Falcon-client dashboard]# ./control start
falcon-dashboard started..., pid=40853
#查看日志
(env)[root@Open-Falcon-client dashboard]# ./control tail
#退出env環(huán)境
(env)[root@Open-Falcon-client dashboard]# deactivate
[root@Open-Falcon-client dashboard]#
#訪問(wèn)網(wǎng)站链沼,在本地瀏覽器中訪問(wèn)
http://192.168.1.181:8081
三 agent部署
agent用于采集機(jī)器負(fù)載監(jiān)控指標(biāo),比如cpu.idle沛鸵、load.1min括勺、disk.io.util等等,每隔60秒push給Transfer曲掰。agent與Transfer建立了長(zhǎng)連接疾捍,數(shù)據(jù)發(fā)送速度比較快,agent提供了一個(gè)http接口/v1/push用于接收用戶手工push的一些數(shù)據(jù)栏妖,然后通過(guò)長(zhǎng)連接迅速轉(zhuǎn)發(fā)給Transfer乱豆。
1.創(chuàng)建工作目錄
cd home
mkdir work
cd work
mkdir open-falcon
2.下載二進(jìn)制安裝包
直接下載官方編譯好的二進(jìn)制版本(x86 64位平臺(tái))。
https://github.com/open-falcon/falcon-plus/releases
將下載的文件放到work目錄下
3.解壓:
[root@open-falcon-server ~]# tar -xf open-falcon-v0.3.tar.gz
[root@open-falcon-server ~]# ll
4.賦予文件夾權(quán)限
chmod -R 777 /home/work/open-falcon
5.修改配置文件
cd /home/test/open-falcon/agent/config/
vim?cfg.json
"hostname":中,IP配置成目標(biāo)機(jī)器IP? (e.g., "hostname": "10.4.65.97"),?
"heartbeat":中 "addr": "10.4.65.112:6030",
"transfer": 中"addrs":? "10.4.65.112:18433"?
6.啟動(dòng)和檢查
./open-falcon start agent 啟動(dòng)進(jìn)程
./open-falcon stop agent 停止進(jìn)程
./open-falcon monitor agent 查看日志
看var目錄下的log是否正常吊趾,或者瀏覽器訪問(wèn)其1988端口宛裕。另外agent提供了一個(gè)--check參數(shù)房官,可以檢查agent是否可以正常跑在當(dāng)前機(jī)器上
./falcon-agent --check
7.查看單個(gè)agent負(fù)載
在瀏覽器的URL欄中輸入?[目標(biāo)機(jī)器IP]:1988
可以查看目標(biāo)機(jī)器的數(shù)據(jù)情況