open-falcon 小米開源監控
1.open-falcon介紹
監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,事後提供翔實的資料用於追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛建立的初期,選擇一款開源的監控系統,是一個省時省力,效率最高的方案。之後,隨著業務規模的持續快速增長,監控的物件也越來越多,越來越複雜,監控系統的使用物件也從最初少數的幾個SRE,擴大為更多的DEVS,SRE。這時候,監控系統的容量和使用者的“使用效率”成了最為突出的問題1.1特點
容量水平擴充套件:生產環境每秒50萬次資料收集、告警、儲存、繪圖,可持續水平擴充套件。
告警策略自發現:Web介面、支援策略模板、模板繼承和覆蓋、多種告警方式、支援回撥動作。
告警設定人性化:支援最大告警次數、告警級別設定、告警恢復通知、告警暫停、不同時段不同閾值、支援維護週期,支援告警合併。
歷史資料高效查詢:秒級返回上百個指標一年的歷史資料。
Dashboard人性化:多維度的資料展示,使用者自定義Dashboard等功能
1.2架構
每臺伺服器,都有安裝falcon-agent,falcon-agent是一個golang開發的daemon程式,用於自發現的採集單機的各種資料和指標,這些指標包括不限於以下幾個方面,共計200多項指標。
- CPU相關
- 磁碟相關
- IO
- Load
- 記憶體相關
- 網路相關
- 埠存活、程序存活
- ntp offset(外掛)
- 某個程序資源消耗(外掛)
- netstat、ss 等相關統計項採集
- 機器核心配置引數
只要安裝了falcon-agent的機器,就會自動開始採集各項指標,主動上報,不需要使用者在server做任何配置(這和zabbix有很大的不同),這樣做的好處,就是使用者維護方便,覆蓋率高。當然這樣做也會server端造成較大的壓力,不過open-falcon的服務端元件單機效能足夠高,同時都可以水平擴充套件,所以自動多采集足夠多的資料,反而是一件好事情,對於SRE和DEV來講,事後追查問題,不再是難題。
另外,falcon-agent提供了一個proxy-gateway,使用者可以方便的通過http介面,push資料到本機的gateway,gateway會幫忙高效率的轉發到server端
2.準備環境
2.1配置yum源
mv /etc/yum.repos.d /etc/yum.repos.d.backup
mkdir /etc/yum.repos.d
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum update -y
2.2安裝git
(要求Git >= 1.7.5)
[[email protected]~]# git version
gitversion 1.8.3.1
2.3安裝go語言環境(go>=1.6)
[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install golang -y
[[email protected] ~]# go version
go version go1.9.4 linux/amd64
2.4安裝redis
由於部署go時已經安裝了epel,故直接執行下面的安裝命令
[[email protected] ~]# yum install redis -y
[[email protected] ~]# systemctl start redis
[[email protected] ~]# systemctl enable redis
[[email protected] ~]# systemctl status redis
2.5安裝MySQL
2.5.1配置epel源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.5.2安裝rpm包
安裝這個包後,會獲得兩個mysql的yum repo源
/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo
[[email protected] ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
2.5.3安裝MySQL 並且檢視
[[email protected] ~]# yum install mysql-server -y
[[email protected] ~]# systemctl start mysql
[[email protected] ~]# systemctl status mysql
3.後端安裝
3.1環境準備
[[email protected] ~]# mkdir -p /home/src/github.com/open-falcon/
[[email protected] ~]# cd /home/src/github.com/open-falcon/
[[email protected] /home/src/github.com/open-falcon]# git clone https://github.com/open-falcon/falcon-plus.git
3.2初始化資料庫
[[email protected] /home/src/github.com/open-falcon]# cd 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
3.3編譯原始碼打包
[[email protected] /home/src/github.com/open-falcon]# cd falcon-plus
[[email protected] /home/src/github.com/open-falcon/falcon-plus]# go get github.com/open-falcon/rrdlite
[[email protected] /home/src/github.com/open-falcon/falcon-plus]# make all
[[email protected] /home/src/github.com/open-falcon/falcon-plus]# make pack
在/home/src/github.com/open-falcon/falcon-plus/目錄下就多了剛才的壓縮包“open-falcon-v0.2.0.tar.gz”
https://book.open-falcon.org/zh_0_2/quick_install/prepare.html中官方有提供編譯包,如果編譯過程不順利可以直接下載編譯包
4.部署後端
4.1環境準備
mkdir -p /home/work
cd /home/src/github.com/open-falcon/falcon-plus
tar -xzvf open-falcon-v0.2.0.tar.gz -C /home/work
4.2修改配置
因為如果不修改配置檔案,aggregator模組會出現無法啟動,graph、hbs、nodata、api、alarm模組會出現開啟不報錯但是狀態為開啟失敗的情況
4.3模組及配置檔案所在位置
模組 配置檔案所在路徑
aggregator /home/work/aggregator/config/cfg.json
graph /home/work/graph/config/cfg.json
hbs /home/work/hbs/config/cfg.json
nodata /home/work/nodata/config/cfg.json
api /home/work/api/config/cfg.json
alarm /home/work/alarm/config/cfg.json
4.4修改aggregator的配置檔案
[[email protected]/home/src/github.com/open-falcon]# vim /home/work/aggreg
mysql的root密碼為空,則去掉“password”,若不為空,則用root密碼替換“password”
其他幾個配置檔案與之相同
4.5啟動後端模組檢查
[[email protected] /home/src/github.com/open-falcon]# cd /home/work/
[[email protected] /home/src/github.com/open-falcon]# ./open-falcon start
[[email protected] /home/work]# ./open-falcon check
falcon-graph UP 3277
falcon-hbs UP 3280
falcon-judge UP 3285
falcon-transfer UP 3291
falcon-nodata UP 3305
falcon-aggregator UP 3308
falcon-agent UP 3315
falcon-gateway UP 3323
falcon-api UP 3334
falcon-alarm UP 3338
5 前端部署
5.1環境準備
mkdir-p /home/front/open-falcon
5.2 獲取前端的程式碼 安裝依賴
cd /home/front/open-falcon
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" -y
5.3安裝Dashboard
dashboard是面向使用者的查詢介面,在這裡,使用者可以看到push到graph中的所有資料,並檢視其趨勢圖
[[email protected] /home/front/open-falcon]# cd /home/front/open-falcon/dashboard/
[[email protected] /home/front/open-falcon/dashboard]# virtualenv ./env
[[email protected] /home/front/open-falcon/dashboard]# ./env/bin/pip install -r pip_requirements.txt
5.4注意
1. yum install -ypython-virtualenv 時可能報錯
2. error: command 'gcc' failed with exit status1
3.錯誤:python-develconflictswithpython-2.7.5-16.el7.x86_64
解決方案:
解決依賴關係
由於是提醒低版本導致錯誤,需要高版本,那我刪除掉低版本
[[email protected] /dev]# rpm -qa|greppython-2.7.5-34.el7.x86_64|xargs rpm -e --nodeps
[[email protected]/dev]# rpm -qa|grep python-2.7
python-2.7.5-68.el7.x86_64
5.5啟動open-falcon
[[email protected] /home/src/github.com]# cd /home/front/open-falcon/dashboard/
[[email protected] /home/front/open-falcon/dashboard]# bash control start
[[email protected] /home/front/open-falcon/dashboard]# bash control status
falcon-dashboard now is running, pid=11657
6web介面
6安裝open-falcon之agent
功能
採集資料,解析資料,上報資料至transfer
基本涵蓋了系統層面監控指標,直接將資料轉換為metricValue形式,上報至transfer
支援外掛採集,程式碼外掛可受git管理,放置在plugin目錄,從HBS中獲取執行週期,版本等
支援資料直接上報,提供HTTPAPI,將收到的資料轉換為mtricValue形式,上報到transfer
支援HTTP API對自身控制
配置檔案:
設定採集資料的指令碼更新地址
指定agent的上游模組的地址,包括heartbeat和transfer模組
agent開放的HTTP的埠
採集資料的過濾條件6.1搭建
通過scp命令把open-falcon server伺服器/home/work/目錄下的agent和open-falcon傳送到需要監控的伺服器上
6.2配置詳解
[[email protected] /home/work/agent/config]# vim cfg.json
{
"debug": true, # 控制一些debug資訊的輸出,生產環境通常設定為false
"hostname": "", # agent採集了資料發給transfer,endpoint就設定為了hostname,預設通過`hostname`獲取,如果配置中配置了hostname,就用配置中的
"ip": "", # agent與hbs心跳的時候會把自己的ip地址發給hbs,agent會自動探測本機ip,如果不想讓agent自動探測,可以手工修改該配置
"plugin": {
"enabled": false, # 預設不開啟外掛機制
"dir": "./plugin", # 把放置外掛指令碼的git repo clone到這個目錄
"git": "https://github.com/open-falcon/plugin.git", # 放置外掛指令碼的git repo地址
"logs": "./logs" # 外掛執行的log,如果外掛執行有問題,可以去這個目錄看log
},
"heartbeat": {
"enabled": true, # 此處enabled要設定為true
"addr": "127.0.0.1:6030", # hbs的地址,埠是hbs的rpc埠
"interval": 60, # 心跳週期,單位是秒
"timeout": 1000 # 連線hbs的超時時間,單位是毫秒
},
"transfer": {
"enabled": true,
"addrs": [
"127.0.0.1:18433"
], # transfer的地址,埠是transfer的rpc埠, 可以支援寫多個transfer的地址,agent會保證HA
"interval": 60, # 採集週期,單位是秒,即agent一分鐘採集一次資料發給transfer
"timeout": 1000 # 連線transfer的超時時間,單位是毫秒
},
"http": {
"enabled": true, # 是否要監聽http埠
"listen": ":1988",
"backdoor": false
},
"collector": {
"ifacePrefix": ["eth", "em"], # 預設配置只會採集網絡卡名稱字首是eth、em的網絡卡流量,配置為空就會採集所有的,lo的也會採集。可以從/proc/net/dev看到各個網絡卡的流量資訊
"mountPoint": []
},
"default_tags": {
},
"ignore": { # 預設採集了200多個metric,可以通過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
}
}
6.3啟動並檢視
[[email protected] /home/work]# ./open-falcon start agent #啟動
[falcon-agent] 2225
[[email protected] /home/work/agent/bin]# ./falcon-agent --check
netstat ... ok
ss -s ... ok
ps aux ... ok
df.bytes ... ok
net.if ... ok
disk.io ... ok
memory ... ok
ss -tln ... ok
du -bs ... ok
kernel ... ok
loadavg ... ok
cpustat ... ok
o語言環境(要求Go >= 1.6)
相關推薦
open-falcon 小米開源監控
1.open-falcon介紹監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,事後提供翔實的資料用於追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛建立的初期,選擇一款開
【小米開源監控系統】open-falcon
open-falcon1)優勢·強大靈活的數據采集:自動發現,支持falcon-agent、snmp、支持用戶主動push、用戶自定義插件支持、opentsdb data model like(timestamp、 endpoint、metric、key-value tags) ·水平擴展能力:支持每個周期上
小米開源監控系統Open-falcon部署筆記(下)
一.部署前端 1.建立工作目錄 #建立工作目錄 export HOME=/home/frontwork export HOME=/home/frontwork export WORKSPACE=$HOME/open-falcon mkdir -p $WORKSPACE
18_小米監控Open-Falcon:Rabbitmq監控
key tag type note rabbitmq.messages_ready name(Queue名字) GAUGE 佇列中處於等待被消費狀態訊息數 rabbitmq.messages_unacknowledged name(Queue名字) GAUGE 佇列中處於消費中狀態的訊息數 rabbitmq.
19_小米監控Open-Falcon:Nginx監控
小米監控Open-Falcon:Nginx監控 更多幹貨 一、 工作原理 ngx_metric是藉助lua-nginx-module的log_by_lua功能實現nginx請求的實時分析,然
16_小米監控Open-Falcon:Redis監控
#!/bin/env python #-*- coding:utf-8 -*- __author__ = 'iambocai' import json import time import socket import os import re import sys import commands impo
open-falcon小米監控安裝部署
一、部署前的準備 設定環境變數 export WORKSPACE=/home/work/open-falcon1 redis安裝 - yum安裝或原始碼安裝 yum安裝 yum install redis-cli redis-server2 原始碼安裝 tar zxvf r
Open-falcon運維監控系統——微信接口二次開發
con 重寫方法 接口 ack sets image parse urlopen data 1、Open-falcon運維監控系統簡介 OpenFalcon是一款由小米運維團隊從互聯網公司的需求出發, 根據多年的運維經驗,結合市面上使用的一些運維監控系統的使用經驗和反饋,
002.Open-Falcon部署及監控
一 前期準備 節點 IP 備註
open-falcon 具體實施監控
1.mysql1.1準備環境打包go env #檢視go的變數環境 mkdir -p $GOPATH/src/github.com/open-falcon cd $GOPATH/src/github.com/open-falcon git clone https://gi
小米open-falcon監控系統接入手冊
htm group mon 服務 gin -m 16px 微信 odata p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Helvetica; color: #000000 } span.s1 { } 一、新項目接
12_小米監控Open-Falcon郵件、簡訊、電話傳送介面
小米監控Open-Falcon 郵件、簡訊、電話傳送介面更多幹貨一、 介紹監控系統產生報警事件之後需要傳送報警郵件或者報警簡訊,各個公司可能有自己的郵件伺服器,有自己的郵件傳送方法;有自己的簡訊通道,有自己的簡訊傳送方法。falcon為了適配各個公司,在接入方案上做了一個規範
7_小米監控Open-Falcon安裝繪圖資料的元件- Graph
pen-Falcon:安裝繪圖資料的元件- Graph更多幹貨一、 介紹graph是儲存繪圖資料的元件。graph元件 接收transfer元件推送上來的監控資料,同時處理api元件的查詢請求、返回繪圖資料。二、 服務部署服務部署,包括配置修改、啟動服務、檢驗服務、停止服務等
6_小米監控Open-Falcon安裝資料轉發服務-Transfer
Open-Falcon安裝資料轉發服務-Transfer更多幹貨一、 簡介transfer是資料轉發服務。它接收agent上報的資料,然後按照雜湊規則進行資料分片、並將分片後的資料分別push給graph&judge等元件。二、 服務部署服務部署,包括配置修改、啟動服
10_小米監控Open-Falcon告警判斷-Judge
{ "debug": true, "debugHost": "nil", "remain": 11, "http": { "enabled": true, "listen": "0.0.0.0:6081" }, "rpc": {
8_小米監控Open-Falcon安裝查詢元件-API
Open-Falcon 安裝查詢元件-API更多幹貨一、 介紹api元件,提供統一的restAPI操作介面。比如:api元件接收查詢請求,根據一致性雜湊演算法去相應的graph例項查詢不同metric的資料,然後彙總拿到的資料,最後統一返回給使用者。二、 服務部署服務部署,包
4_小米監控Open-Falcon 前端安裝
Open-Falcon 前端安裝更多幹貨一、建立工作目錄這一步在建立後端服務的時候已經建立好,所以不需要再進行操作。 export HOME=/home/work export WORKSPACE=$HOME/open-falcon mkdir -p $WOR
2、小米監控_服務監控Open-Falcon環境準備
服務監控Open-Falcon環境準備更多幹貨一、安裝redis大家可以yum安裝,也可以下載原始碼安裝。yum install -y redis修改配置redis.confvi /etc/redis.conf啟動redis:redis-server &二、 安裝my
小米監控系統open-falcon搭建
一、基礎環境搭建1基本環境作業系統:CentOS6.5 Python版本: Python2.7.10 Redis版本:2.8.19 Mysql版本:5.5.572系統設定 vim /etc/selinux/config#SELINUX=enforcing #註釋掉
小米釋出的運維監控工具:open falcon
# Introduction 監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,事後提供翔實的資料用於追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。當公司剛剛起步,業務規模較小,運維團隊也剛剛建立的初期,選擇一款