001-open-falcon的單機版安裝

open-falcon

每臺服務器,都有安裝falcon-agent,falcon-agent是一個golang開發的daemon程序,用於自發現的採集單機的各類數據和指標前端

單機安裝

redisnode

mkdir /home/redis && cd /home/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
cat >>/home/redis/redis4.0.9/redis.conf<<EOF
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis_6379.pid
logfile "/home/redis/redis4.0.9/logs/redis.log"
EOF
redis-server /home/redis/redis4.0.9/redis.conf
#鏈接測試
redis-cli -h 127.0.0.1 -p 6379

mysqlpython

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
chown mysql:mysql -R /var/lib/mysql
mysqld --initialize
systemctl start mysqld
mysqladmin -u root password "new_password";
mysql -u root -p

導入數據mysql

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/

提示:若是是從v0.1.0升級到當前版本v0.2.0,則git

mysql -h 127.0.0.1 -u root -p < 5_alarms-db-schema.sql

Go版本安裝

yum install golang 或者官網下編譯好的 wget https://github.com/open-falcon/falcon-plus/releases/download/v0.2.0/open-falcon-v0.2.0.tar.gzgithub

啓動後端

export FALCON_HOME=/home/work
export WORKSPACE=$FALCON_HOME/open-falcon
mkdir -p $WORKSPACE
tar -xzvf open-falcon-v0.2.0.tar.gz -C $WORKSPACE

首先確認配置文件中數據庫帳號密碼與實際相同,不然須要修改配置文件golang

cd $WORKSPACE
grep -Ilr 3306  ./ | xargs -n1 -- sed -i 's/root:/root:123456/g'

啓動檢查redis

./open-falcon start
# 檢查全部模塊的啓動情況
./open-falcon check

更多命令行操做sql

# ./open-falcon [start|stop|restart|check|monitor|reload] module
./open-falcon start agent

[root@jenkins open-falcon]# ./open-falcon check
        falcon-graph         UP           91373 
          falcon-hbs         UP           91383 
        falcon-judge         UP           91393 
     falcon-transfer         UP           91400 
       falcon-nodata         UP           91407 
   falcon-aggregator         UP           91414 
        falcon-agent         UP           91423 
      falcon-gateway         UP           91432 
          falcon-api         UP           91439 
        falcon-alarm         UP           91452 

For debugging , You can check $WorkDir/$moduleName/log/logs/xxx.log

安裝前端

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
./env/bin/pip install -r pip_requirements.txt -i https://pypi.douban.com/simple
安裝過程缺乏包,則安裝好
wget https://files.pythonhosted.org/packages/24/6b/dd9031c446e05600b740086274a9939799f26401b8b96e124ccf71e6a9b2/Flask-Babel-0.9.tar.gz
pip install 包名

提示:pip安裝 yum install python-pip -ydocker

修改配置

dashboard的配置文件爲: 'rrd/config.py',請根據實際狀況修改
vim rrd/config.py
## API_ADDR 表示後端api組件的地址
API_ADDR = "http://127.0.0.1:8080/api/v1" 

## 根據實際狀況,修改PORTAL_DB_*, 默認用戶名爲root,默認密碼爲""
## 根據實際狀況,修改ALARM_DB_*, 默認用戶名爲root,默認密碼爲""
# portal database
# 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")

開發者模式啓動

./env/bin/python wsgi.py
open http://127.0.0.1:8081 in your browser.

生產中啓動

bash control start

查看日誌 bash control tail

開通8081端口,若是開了本機防火牆

dashbord沒有默認建立任何帳號包括管理帳號,須要你經過頁面進行註冊帳號。 想擁有管理全局的超級管理員帳號,須要手動註冊用戶名爲root的帳號(第一個賬號名稱爲root的用戶會被自動設置爲超級管理員)。 超級管理員能夠給普通用戶分配權限管理。

提示:註冊帳號可以被任何打開dashboard頁面的人註冊,因此當給相關的人註冊完帳號後,須要去關閉註冊帳號功能。只須要去修改api組件的配置文件cfg.json,將signup_disable配置項修改成true,重啓api便可。當須要給人開帳號的時候,再將配置選項改回去,用完再關掉便可。

agent安裝

#將agent目錄及啓動命令拷貝至客戶端上
#編輯agent配置文件,修改hostname、transfer、heaetbeat配置項
vim agent/config/cfg.json
#啓動agent,查看agent狀態
nohup ./falco#重載配置文件
n-agent -c ../config/cfg.json >/tmp/falcon-agent.log 2>&1 &
curl 127.0.0.1:1988/config/reload

cfg.json文件樣例

{
    "debug": true,
    "hostname": "40",
    "ip": "",
    "plugin": {
        "enabled": false,
        "dir": "./plugin",
        "git": "https://github.com/open-falcon/plugin.git",
        "logs": "./logs"
    },
    "heartbeat": {
        "enabled": true,
        "addr": "192.168.83.70:6030",
        "interval": 60,
        "timeout": 1000
    },
    "transfer": {
        "enabled": true,
        "addrs": [
            "192.168.83.70:8433"
        ],
        "interval": 60,
        "timeout": 1000
    },
    "http": {
        "enabled": true,
        "listen": ":1988",
        "backdoor": false
    },
    "collector": {
        "ifacePrefix": ["eth", "em", "ens", "docker"],
        "mountPoint": []
    },
    "default_tags": {
    },
    "ignore": {
        "cpu.busy": true,
        "df.bytes.free": true,
        "df.bytes.total": true,
        "df.bytes.used": true,
        "df.bytes.used.percent": true,
        "df.inodes.total": true,
        "df.inodes.free": true,
        "df.inodes.used": true,
        "df.inodes.used.percent": true,
        "mem.memtotal": true,
        "mem.memused": true,
        "mem.memused.percent": true,
        "mem.memfree": true,
        "mem.swaptotal": true,
        "mem.swapused": true,
        "mem.swapfree": true
    }
}
ignore 能夠自定義

自動安裝agent思路

初始化腳本中輸入主機名
curl -fsSL http://xxx.sh | sudo bash -s $host_name
腳本中引用安裝小米監控模塊
wget -P /usr/local/src http://xxx.tar.gz
替換對應的配置文件
替換主機名
HN1="$1"
HN="\"$1\","
h1="\"hostname\": "
h2="$h1$HN"
sed -i "/debug/ i$h2" cfg.json 
使用方法: bash xxx.sh [主機名]
後臺啓動
nohup ./bin/falcon-agent -c ./config/cfg.json >/tmp/falcon-agent.log 2>&1 
curl -H 'Content-Type: application/x-www-form-urlencoded' -XPOST  -d "endpoint=hostname&falcon_api=127.0.0.1:8080&hg_id=1" 192.168.83.59:8081/xxxx

訪問

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

相關文章
相關標籤/搜索