1.urlooker介绍

监控web服务可用性及访问质量,采用go语言编写。

  • 特点:
  • 返回状态码检测
  • 页面响应时间检测
  • 页面关键词匹配检测
  • 自定义Header
  • 带cookie访问
  • GET、POST、PUT访问
  • 检测结果支持推送 nightingale、open-falcon
  • agent多机房部署,指定机房访问
  • 支持短信、微信、邮件告警

原理图与组件说明:

#yyds干货盘点#urlooker监控的部署和简单使用_监控

  • web组件主要是用来添加监控项,告警组人员管理,查看url访问质量绘图(1984端口)。
  • agent组件可以定时从web组件获取带监控url列表,发起模拟访问,然后将访问结果回报给web组件(1985端口)。
  • alarm组件是用于判断是否触发报警条件的组件,alarm会定期从web端获取策略列表(1985端口),web端通过(1986端口)发送的检测数据后,alarm对数据进行判断,若触发则产生event事件数据,将events数据存到redis中。

2.urlooker基本部署

预先安装mysql和Redis服务

服务环境说明:centos7.7、mysql-5.7、redis-5.0.3、urlookerV1.1.0

2.1.编译安装

yum install  golang  -y
mkdir -p /data/soft/
cd /data/soft/ && git clone https://github.com/710leo/urlooker.git
export GO111MODULE="on"
cd urlooker && ./control build

2.2.导入数据库

# mysql -uroot -p数据密x码 < sql/schema.sql

2.3.配置数据库

# sed -i 's/urlooker.pass/数据密x码/g' configs/web.yml

2.4.启动

# ./control start all
web started
alarm started
agent started

2.5.登录

http://192.168.31.161:1984/默认账号密x码:admin/password

3.urlooker配置

  • web主键配置
cat > configs/web.yml <<EOF
admins: ["admin"] #用户名写到这里,会成为系统管理员
salt: "e84d0755dda7a538315ea7a95a8c36af"
register: true #如果不想其他人注册,可以设置为false
showDurationMin: 30 #web页面展示曲线的时间范围,单位为分钟
keepDurationHour: 24 #api探测结果在数据库保存的时间范围,单位为小时
idc:
- "default" #将探测目标分配给哪个机房,agent组件也有一个对应的配置
http:
listen: "0.0.0.0:1984" ##web登录监听地址
secret: "secret"
rpc:
listen: "0.0.0.0:1985" ##提供给agent主键和alarm主键连接传输数据
mysql:
addr: "root:数据库密x码@tcp(127.0.0.1:3306)/urlooker?charset=utf8&&loc=Asia%2FShanghai" ##配置数据库密x码
idle: 10
max: 20
ldap: ##暂时不用
enabled: false
addr: "ldap.example.com:389"
baseDN: "dc=example,dc=com"
bindDN: "cn=mananger,dc=example,dc=com"
bindPasswd: "12345678"
userField: "uid"
attributes: ["sn","mail","telephoneNumber"]
alarm: #告警判断组件,为true表示使用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" ##发送数据给alarm主键,可以配置多个
falcon: #暂时不用,为 true 表示要向 falcon 或者 nightingale 推送数据
enable: false
addr: "http://transfer.addr/api/push"
interval: 60
statsd:
enable: false
addr: "ip:port"
prom:
enable: false
addr: "ip:port"
EOF
  • agent主键
cat > configs/agent.yml << EOF
idc: "default"
worker: 1000 #同时支持访问url的并发数
web:
addrs: ["127.0.0.1:1985"] ##本机节点,如果需要多机房访问,可以将此地址修改为具体的ip地址
interval: 60 ##设置访问url的时间间隔,默认60s一次。
timeout: 1000
EOF
  • alarm主键
cat > configs/alarm.yml  << EOF
debug: false # 调试日志,true打开
smsEnabled: false ##关闭短信访问,暂时不用
rpc:
listen: "0.0.0.0:1986" ##提供给web主键连接
web:
addrs:
- "127.0.0.1:1985" ##alarm会定期从web端获取策略列表
timeout: 300
interval: 60 #每60s去获取一次策略列表
smtp: ##配置邮件通知服务
enabled: true
addr: "smtp.126.com:994"
username: "xxxxxxxx@126.com"
password: "xxxxxxxxaaaa" ##不是登录密x码,是POP3/SMTP服务的授权密x码
from: "xxxxxxxx@126.com"
tls: true #SSL端口发邮件需要添加
wechat: ##暂时不用
enabled: false
toparty: "@all" #需要发送指定人请使用"@all"
agentid: 1000008
corpid: ""
corpsecret: ""
worker:
sms: 10 #发送短信并发数
mail: 50 #发送邮件并发数
wechat: 50 #发送微信并发数
# remain: 30
EOF

4.urlooker使用

  • 启动关闭
cd /data/soft/urlooker
./control status all ##查看所有主键状态
./control start all ##启动所有主键
./control start web ##启动单个主键,可以是web agent alarm
  • 查看日志
logs/
agent alarm web ##对应各个主键的日志