Giter VIP home page Giter VIP logo

urlooker's Introduction

enterprise-level websites monitoring system
English|中文

Feature

  • status code
  • respose time
  • page keyword
  • customize header
  • customize post body
  • support get post put method
  • send to nightingale、open-falcon、statsd、prometheus

Architecture

Architecture

ScreenShot

stra

FAQ

  • wiki
  • FAQ
  • default user/password:admin/password

Install

install by docker
git clone https://github.com/710leo/urlooker.git
cd urlooker
docker build .
docker volume create urlooker-vol
docker run -p 1984:1984 -d --name urlooker --mount source=urlooker-vol,target=/var/lib/mysql --restart=always [CONTAINER ID]
install by code
# install dependence
yum install -y mysql-server
wget https://raw.githubusercontent.com/710leo/urlooker/master/sql/schema.sql
mysql -h 127.0.0.1 -u root -p < schema.sql

curl https://raw.githubusercontent.com/710leo/urlooker/master/install.sh|bash
cd $GOPATH/src/github.com/710leo/urlooker

# change [mysql root password]to your mysql root password
sed -i 's/urlooker.pass/[mysql root password]/g' configs/web.yml

./control start all

open http://127.0.0.1:1984 in browser

Q&A

Gitter: urlooker

urlooker's People

Contributors

710leo avatar codezm avatar liuxiankun avatar originnets avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

urlooker's Issues

有一些疑问需要请教

1.关于域名解析
看代码中现在是在web端把解析好的IP下发到agnet上,agent对ip进行GET操作来判断是否ok。感觉这块是不是应该放到agent上来做? 因为对于做了cdn的域名来说, 我的agent可能是部署在各个地区的, 这样解析出来的ip应该是不一样的。

2.关于web端缓存策略
web配置文件中是可以配置多了机房的, 比如

 "monitorMap": {
        "default":["A", "B"],
},

看到代码中有一段是

func Getkey(idc string) string {
    keys := g.Config.MonitorMap[idc]
    count := len(keys)
    now := int(time.Now().Unix())
    return keys[now%count]
}

这样的效果是有一批策略是A机器来处理,另一批策略是B来处理.
想知道这样的设计是基于什么样的考虑呢?

谢谢

建议增加 指定IP访问域名的功能

所谓的指定IP访问域名的类似实现方式我知道的只有
1、host文件
2、通过 curl -H ‘Host:baidu.com ’ http://10.12.20.21

使用场景就是 在CDN下,检查域名回源的情况。

建议就是 这个IP 是个检测可选项,如果不填写的话那就是从过agent获取的IP 来做测试,如果填写的话就是通过填写的IP 来做测试!

反馈

您好,初学者想看看你的代码学习学习,但是提供的http://x2know.qiniudn.com/urlooker.tar.gz地址已经无法下载,并且直接clone源码包里面有很多依赖已经不能使用,导致项目无法运行起来,麻烦你能重新提供一份完整的源码吗?

一些反馈

简单反馈一下
各种说明写的实在是太简略了,对高手可能没问题,对新入门的菜鸟,好头大啊
现在已经跑起来了,有这么几个问题
1 用户这部分好歹加个限制或者配置文件里来个开关,不然谁都能注册,实在是个头疼的事情,用户管理如何做
2 现在添加了几个网站有一个网站图表上有ip地址和响应时间的曲线,但是下面部分完全没有显示,状态,url,ip地址,全部为空的,这是什么个情况啊
3 首页能不能有个dashboard之类的,好歹显示当前x个网站正常,x个不正常
4 https是否支持了

web端rpc连alarm不释放 conn

web/backend/rpc.go

SingleConnRpcClient Call 代码有个问题,即然是短连接最后 conn 要closed,否则连接数会一直暴涨


    select {
    case <-time.After(timeout):
        log.Infof("[WARN] rpc call timeout %v => %v", this.rpcClient, this.RpcServer)
        this.close()
    // case err := <-done:
    //  if err != nil {
    //      this.close()
    //      return err
    //  }
    case err := <-done:
        this.close()
        return err
    }

改成无论 err 是否为 nil 都 close就好了。

其实将 rpc client做个对象池也不错

建议可以把数据推送到statsd

建议可以把数据推送到statsd。现在statsd有非常的多的公司在用。statsd还可以配置更多的后端用来展示和分析数据

strconv.ParseInt: parsing "admin": invalid syntax

recovery.go:37: [team.go:97] 2020-03-07 23:44:27 [Error:]strconv.ParseInt: parsing "admin": invalid syntax

在第一次使用admin账号进入urlooker之后,在没有监控任何API的情况下,设置告警用户组,显示如上报错。并且在sign up其他账号之后,创建用户组时,依然显示以上错误。

配置LDAP

支持配置LDAPS吗端口是636。现在报错显示Error:]ldap search fail: unable to read LDAP response packet: read tcp

agent的log里有个报错,即使设置相同了还在报错

configContent:
debug: false
hostname: "localhost"
worker: 1000
web:
addrs: ["127.0.0.1:1985"]
interval: 60
timeout: 10002020/02/14 16:38:04 config.go:64: &{false localhost 1000 0xc0000fa630}
2020/02/14 16:38:04 config.go:65: load configuration file configs/agent.yml successfully
g.Config.Web.Addrs: &{false localhost 1000 0xc0000fa630}
2020/02/14 16:38:04 check.go:36: no found item assigned to localhost

这里,我在web.yml中也设置的是localhost,但是依然报错。

而且,图表也一直都是空的。

短信报警问题

请问uelooker 支持短信报警吗??我在alarm.yml中没有看到短信api的配置?

n9e能看到监控数据但不能触发告警

@URLooker添加域名并正确传到了n9e,设置了触发告警的条件,按照实际情况应该要触发告警,但是当前未触发告警,告警邮件通道是正常工作的。可以帮忙瞧一瞧这个问题吗?@710leo

BRMR$XL1X67LTJ%U% {%5T](https://user-images.githubusercontent.com/12181410/91056813-06df5980-e659-11ea-90fe-caaf300e8d55.png) ![WWJC}YQD@I``}OX5F0 865

我的需求描述:
不通过urlooker-alarm组件发出告警(需要在urlooker维护组织关系,n9e已经有了。且不支持多告警通道),希望在n9e控制端看到urlooker的监控数据,同时能从n9e发出告警消息。

已处置措施,未能解决:
1.停止urlooker-alarm服务;
[root@aliyun urlooker]# systemctl status urlooker-alarm
● urlooker-alarm.service - urlooker-alarm for Nightingale
Loaded: loaded (/usr/lib/systemd/system/urlooker-alarm.service; disabled; vendor preset: disabled)
Active: inactive (dead)

2.在configs/web.yml配置文件中关闭alarm组件配置,设置为false
具体信息如下:
alarm: #告警判断组件,为true表示使用alarm组件
enable: false
batch: 200
replicas: 500
connTimeout: 1000
callTimeout: 5000
maxConns: 32
maxIdle: 32
sleepTime: 30
cluster:
node-1: "127.0.0.1:1986"

falcon: #为 true 表示要向 falcon 或者 nightingale 推送数据
enable: true
#addr: "http://transfer.addr/api/push"
addr: "http://127.0.0.1:2058/api/collector/push"
interval: 60

statsd:
enable: false
addr: "ip:port"

prom:
enable: false
addr: "ip:port"

带签名url的监控

Hi

请教一个问题,对于带签名,带token的API接口监控,urlooker支持的怎么样?或者urlooker设计理念里怎么考虑这种类型的监控(需要|不需要|有更好替代方式)?

how to configure redis with password

alarm:
enabled: true
minInterval: 180
queuePattern: "event"
redis:
dsn: "127.0.0.1:6379"
maxIdle: 5
connTimeout: 20000
readTimeout: 20000
writeTimeout: 20000

无法登陆

你好,启动成功后需要登陆的时候提示用户或密码错误,当手工添加一个用户后,总是提示"密码不正确" 咋回事,请帮忙解答,谢谢!!!

MariaDB搜索URL时候SQL错误

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY id)' at line 1

你好 关于 http code “0”

你好 有这样的场景 比如应用服务端口down 不在监听状态,这时 http code 为 “0” 目前 数据库里面显示为空! 建议修复下!

不能发送告警邮件

下面已经产生problem告警事件,但是没有发送告警邮件?应该从哪里查看信息,alarm组件都没有产生日志信息

check.go:36: no found item assigned to

[root@localhost urlooker]# cat logs/agent/stdout.log
configContent:
debug: false
hostname: "hostname1"
worker: 1000
web:
addrs: ["127.0.0.1:1985"]
interval: 60
timeout: 10002019/11/28 03:43:10 config.go:64: &{false hostname1 1000 0xc0000d4990}
2019/11/28 03:43:10 config.go:65: load configuration file configs/agent.yml successfully
g.Config.Web.Addrs: &{false hostname1 1000 0xc0000d4990}
2019/11/28 03:43:10 check.go:36: no found item assigned to hostname1

这里我已经将agent.yml的hostname与web.yml的monitorMap设置一致,如下:
agent.yml:
hostname: "hostname1"

web.yml:
monitorMap:
default: ["hostname1"]
idc1: ["hostname.2"]

[root@localhost urlooker]# cat logs/web/stdout.log
2019/11/28 03:43:10 config.go:113: &{false [admin] e84d0755dda7a538315ea7a95a8c36af true 30 12 0xc0000991c0 0xc000120780 0xc00015d420 0xc0000991e0 0xc0000aa550 0xc000099320 0xc000099340 map[default:[hostname1] idc1:[hostname.2]]}
2019/11/28 03:43:10 config.go:115: load configuration file configs/web.yml successfully
2019/11/28 03:43:10 mysql.go:18: &{false [admin] e84d0755dda7a538315ea7a95a8c36af true 30 12 0xc0000991c0 0xc000120780 0xc00015d420 0xc0000991e0 0xc0000aa550 0xc000099320 0xc000099340 map[default:[hostname1] idc1:[hostname.2]]}
[negroni] listening on 0.0.0.0:1984
2019/11/28 03:43:10 rpc.go:24: listening on 0.0.0.0:1985

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.