部署urlooker企業級監控工具

urlooker

最近搞了一個url監控項目,分享一下,監控web服務可用性及訪問質量,三個組件都支持水平擴展,一臺普通機器可以監控 5000+個 url網址,下面是一些介紹。

urlooker

監控web服務可用性及訪問質量,採用go語言編寫,易於安裝和二次開發。它能提供返回狀態碼檢測,頁面訪問時間檢測,agent多機房部署(這個最爲安逸,其效果可以類似監控寶、D盾和360雲監控的多節點監控url),指定機房訪問,同時支持短信與郵件告警。

GIthub官方鏈接:https://github.com/URLooker

Feature

  • 返回狀態碼檢測
  • 頁面響應時間檢測
  • 頁面關鍵詞匹配檢測
  • 帶cookie訪問
  • agent多機房部署,指定機房訪問
  • 檢測結果支持向open-falcon推送

Architecture

此處輸入圖片的描述

ScreenShot

看圖

此處輸入圖片的描述

添加監控項

Install

源碼安裝

安裝依賴

yum install -y redis
yum install -y mysql-server

導入數據庫

wget https://raw.githubusercontent.com/URLooker/web/master/schema.sql
mysql -h 127.0.0.1 -u root -p < schema.sql

安裝組件

一.安裝環境依賴

(1)安裝mysql數據庫,並且導入sql文件

apt-get install mysql-server
設置用戶與密碼
wget http://x2know.qiniudn.com/schema.sql
進入數據庫,創建urlooker庫
set names utf8
source /root/schema.sql   ##sql文件路徑

(2)安裝redis數據庫

apt-get install Redis-server
 

二. 安裝編譯環境go 1.6 或者更高版本


(1) 下載安裝包

sudo apt-get update
sudo apt-get -y upgrade
sudo curl -O https://storage.googleapis.com/golang/go1.6.linux-amd64.tar.gz
sudo tar -xvf go1.6.linux-amd64.tar.gz
sudo mv go /usr/local

(2)設置go路徑

sudo vim ~/.profile
export PATH=$PATH:/usr/local/go/bin
export GOROOT=usr/local/go
export PATH=$PATH:$GOROOT/bin

source ~/.profile    ##刷新環境變量

運行 go version 能顯示go版本信息,代表安裝成功。

三. 二進制安裝urlooker

wget http://x2know.qiniudn.com/urlooker.tar.gz
tar xzvf urlooker.tar.gz
cd urlooker

(1)urlooker web 組件安裝 
web組件主要是用來添加監控項,告警組人員管理,查看url訪問質量繪圖

export GOPATH=/url/local  ##設置GOPATH環境變量
mkdir -p $GOPATH/src/github.com/urlooker
cd $GOPATH/src/github.com/urlooker
git clone https://github.com/URLooker/web.git
cd web
./control build ##如果build過程中出錯提示找不到go命令,可以修改control文件,將go命令添加爲絕對路徑
./control start

修改web/cfg.json文件

"debug": true,
    "salt": "have fun!",
    "past": 30, #查看最近幾分鐘內的報警歷史和繪圖,默認爲30分鐘
    "http": {
        "listen": "0.0.0.0:1984",
        "secret": "secret"
    },
    "rpc": {
        "listen": "0.0.0.0:1985"
    },
    "mysql": {
        "addr": "root:123456@tcp(127.0.0.1:3306)/urlooker?charset=utf8&&loc=Asia%2FShanghai",   #與數據庫交互的有關信息
        "idle": 10,
        "max": 20
    },
    "alarm":{
        "enable": true,
        "batch": 200,
        "replicas": 500,
        "connTimeout": 1000,
        "callTimeout": 5000,
        "maxConns": 32,
        "maxIdle": 32,
        "sleepTime":30,
        "cluster":{
            "node-1":"127.0.0.1:1986"
        }
    },
    "monitorMap": { #配置哪些url由哪個機房的agent去監控,默認均由default列表中的agent去監控
        "default":["hostname.1"], #監控指標多了之後agent地址可以填多個,可以通過多個agent去監控
        "idc1":["hostname.2"]
    },
    "falcon":{
        "enable": false, # 爲true表示向falcon推送數據
        "addr":"http://falcon.transfer.addr/api/push",
        "interval": 60
    },
    "internalDns":{ #通過公司內部接口獲取url對應ip所在機房
        "enable": false,
        "addr":""
    }

(2)urlooker agent組件安裝

   agent組件可以定時從web組件獲取帶監控url列表,發起模擬訪問,然後將訪問結果回報給web組件
1
設置GOPATH環境變量
mkdir -p $GOPATH/src/github.com/urlooker
cd $GOPATH/src/github.com/urlooker
git clone https://github.com/URLooker/agent.git
cd agent
go get ./...     ##安裝該組件時,儘量使用root用戶,否則可能因爲權限問題而出錯
./control build
./control start

修改 agent/cfg.json 文件

{
    "debug": false,
    "hostname": "hostname.1", #hostname.1 和 web組件配置文件中monitorMap的值對應
    "worker": 1000, # 同時訪問url的併發數
    "web": {
        "addrs": ["127.0.0.1:1985"],   ##如果需要多機房訪問,可以將將此地址修改爲具體的ip地址
        "interval": 60,
        "timeout": 1000
    }
}

(3)urlooker alarm組件 
alarm 組件是用於判斷是否觸發報警條件的組件,alarm會定期從web端獲取策略列表,接收到web端發送的檢測數據後,對數據進行判斷,若觸發則產生event數據,將events數據存到redis中

# set $GOPATH and $GOROOT   ##設置環境變量
mkdir -p $GOPATH/src/github.com/urlooker
cd $GOPATH/src/github.com/urlooker
git clone https://github.com/URLooker/alarm.git
cd alarm
./control build
./control start

修改alarm/cfg.json

{
    "debug": false,
    "remain":10,  #配置策略中支持的最大連續次數
    "rpc":{
        "listen":"0.0.0.0:1986"
    },
    "web": {
        "addrs": ["127.0.0.1:1985"], #可以填多個web地址
        "timeout": 300,
        "interval": 60
    },
    "alarm": {
        "enabled": true,
        "minInterval": 180,
        "queuePattern": "event",
        "redis": {
            "dsn": "127.0.0.1:6379",
            "maxIdle": 5,
            "connTimeout": 20000,
            "readTimeout": 20000,
            "writeTimeout": 20000
        }
    },
    "queue": {
        "sms": "/sms",
        "mail": "/mail"
    },
    "worker": {
        "sms": 10,
        "mail": 50
    },
    "sms": "",
    "smtp": {
        "addr": "mail.addr:25",
        "username": "[email protected]",
        "password": "",
        "from": "[email protected]"
    }
}
至此urlooker已經部署完成

web/control start
alarm/control start
agent/control start

初始賬號密碼:admin/Password  同時也可以註冊管理員賬號進行登陸管理操作。

打開瀏覽器訪問 http://127.0.0.1:1984 即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章