支持 Mysql

This commit is contained in:
SanJin 2019-09-03 10:53:22 +08:00
parent aeda8b8743
commit 9bf9d10758
15 changed files with 347 additions and 566 deletions

BIN
HFish Executable file

Binary file not shown.

View File

@ -465,42 +465,42 @@
for (var item in d.mysql) { for (var item in d.mysql) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
mysqlData[index] = d.mysql[item]; mysqlData[index] = parseInt(d.mysql[item]);
} }
for (var item in d.redis) { for (var item in d.redis) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
redisData[index] = d.redis[item]; redisData[index] = parseInt(d.redis[item]);
} }
for (var item in d.ssh) { for (var item in d.ssh) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
sshData[index] = d.ssh[item]; sshData[index] = parseInt(d.ssh[item]);
} }
for (var item in d.web) { for (var item in d.web) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
webData[index] = d.web[item]; webData[index] = parseInt(d.web[item]);
} }
for (var item in d.deep) { for (var item in d.deep) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
deepData[index] = d.deep[item]; deepData[index] = parseInt(d.deep[item]);
} }
for (var item in d.ftp) { for (var item in d.ftp) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
ftpData[index] = d.ftp[item]; ftpData[index] = parseInt(d.ftp[item]);
} }
for (var item in d.telnet) { for (var item in d.telnet) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
telnetData[index] = d.telnet[item]; telnetData[index] = parseInt(d.telnet[item]);
} }
for (var item in d.memCache) { for (var item in d.memCache) {
var index = xdata.indexOf(item); var index = xdata.indexOf(item);
memCacheData[index] = d.memCache[item]; memCacheData[index] = parseInt(d.memCache[item]);
} }

View File

@ -230,8 +230,7 @@
success: function (e) { success: function (e) {
if (e.code == 200) { if (e.code == 200) {
var data = e.data; var data = e.data;
var str = data[0].info.replace(/&&/g, "<br>"); var str = data.info.replace(/&&/g, "<br>");
console.log(str);
$(".pre").html(str); $(".pre").html(str);
} else { } else {
} }

View File

@ -63,6 +63,7 @@
<script src="/static/libs/switchery/switchery.min.js"></script> <script src="/static/libs/switchery/switchery.min.js"></script>
<script src="/static/libs/waypoints/lib/jquery.waypoints.js"></script> <script src="/static/libs/waypoints/lib/jquery.waypoints.js"></script>
<script src="/static/libs/counterup/jquery.counterup.min.js"></script> <script src="/static/libs/counterup/jquery.counterup.min.js"></script>
<script src="/static/libs/moment/moment.min.js"></script>
<!-- App js --> <!-- App js -->
<script src="/static/js/jquery.core.js"></script> <script src="/static/js/jquery.core.js"></script>

View File

@ -1,19 +1,19 @@
[rpc] [rpc]
status = 0 # 模式 0关闭 1服务端 2客户端 status = 1 # 模式 0关闭 1服务端 2客户端
addr = 127.0.0.1:7879 # RPC 服务端地址 or 客户端地址 addr = 0.0.0.0:7879 # RPC 服务端地址 or 客户端地址
name = Server # 状态1 服务端 名称 状态2 客户端 名称 name = Server # 状态1 服务端 名称 状态2 客户端 名称
[admin] # RPC 状态为2 集群客户端的时候 admin 可以删掉 [admin] # RPC 状态为2 集群客户端的时候 admin 可以删掉
addr = 127.0.0.1:9001 # 管理后台启动地址 addr = 0.0.0.0:9001 # 管理后台启动地址
account = admin # 登录账号 account = admin # 登录账号
password = admin # 登录密码 password = admin # 登录密码
db_type = mysql # 1 sqlite 2 mysql db_type = sqlite # 1 sqlite 2 mysql
db_max_open = 5 # 最大连接池0 表示无限制 db_max_open = 5 # 最大连接池0 表示无限制
# sqlite or mysql 连接字符串 # sqlite or mysql 连接字符串
# sqlite : ./db/hfish.db?cache=shared&mode=rwc # sqlite : ./db/hfish.db?cache=shared&mode=rwc
# mysql : 账号:密码@tcp(地址:端口)/数据库名?charset=utf8&parseTime=true # mysql : 账号:密码@tcp(地址:端口)/数据库名?charset=utf8&parseTime=true&loc=Local
db_str = xxxx db_str = ./db/hfish.db?cache=shared&mode=rwc #hfish:hfish123@tcp(5a8.org:3306)/hfish_db?charset=utf8&parseTime=true&loc=Local
[api] [api]

View File

@ -1,193 +0,0 @@
package dbUtil
import (
"database/sql"
_ "github.com/mattn/go-sqlite3"
"HFish/error"
"HFish/utils/try"
"HFish/utils/log"
)
// 连接数据库
func conn() *sql.DB {
db, err := sql.Open("sqlite3", "./db/hfish.db?cache=shared&mode=rwc")
error.Check(err, "连接数据库失败")
return db
}
// 插入数据
func Insert(sql string, args ...interface{}) int64 {
/*
参数说明:
sql insert 语句
args insert value 参数
使用案例:
sql := `
INSERT INTO coot_tasks (
task_name,
task_explain,
task_id,
task_time_type,
task_time,
last_exec_time,
is_plug_script,
script_type,
script_path,
alert_type,
create_time
)
VALUES
(?,?,?,?,?,?,?,?,?,?,?);
`
dbUtil.Insert(sql, "插入任务测试", "测试说明", "", 1, "2", "", "1", "shell", "/scripts/myscript/test.sh", "1", "2019-07-10 16:12")
*/
var id int64
id = 0
try.Try(func() {
db := conn()
stmt, _ := db.Prepare(sql)
res, _ := stmt.Exec(args...)
//if err != nil {
// log.Pr("HFish", "127.0.0.1", "插入数据失败", err)
//}
defer stmt.Close()
id, _ = res.LastInsertId()
defer db.Close()
}).Catch(func() {})
return id
}
// 更新数据
func Update(sql string, args ...interface{}) {
/*
参数说明:
sql update 语句
args update 参数
使用案例:
sql := `
UPDATE coot_tasks
SET task_name = ?
WHERE
id = ?;
`
dbUtil.Update(sql, "任务更新测试", 1)
*/
try.Try(func() {
db := conn()
stmt, _ := db.Prepare(sql)
_, err := stmt.Exec(args...)
if err != nil {
log.Pr("HFish", "127.0.0.1", "更新数据失败", err)
}
defer stmt.Close()
defer db.Close()
}).Catch(func() {})
}
// 查询数据
func Query(sql string, args ...interface{}) []map[string]interface{} {
/*
参数说明:
sql select 语句
args select 参数
使用案例:
sql := `select * from coot_tasks where id=?;`
result := dbUtil.Query(sql, 1)
*/
db := conn()
rows, err := db.Query(sql, args ...)
if err != nil {
log.Pr("HFish", "127.0.0.1", "查询数据失败", err)
}
defer rows.Close()
columns, err := rows.Columns()
if err != nil {
log.Pr("HFish", "127.0.0.1", "查询表名失败", err)
}
count := len(columns)
tableData := make([]map[string]interface{}, 0)
values := make([]interface{}, count)
valuePtrs := make([]interface{}, count)
for rows.Next() {
for i := 0; i < count; i++ {
valuePtrs[i] = &values[i]
}
rows.Scan(valuePtrs...)
entry := make(map[string]interface{})
for i, col := range columns {
var v interface{}
val := values[i]
b, ok := val.([]byte)
if ok {
v = string(b)
} else {
v = val
}
entry[col] = v
}
tableData = append(tableData, entry)
}
defer db.Close()
return tableData
}
// 删除数据
func Delete(sql string, args ...interface{}) {
/*
参数说明:
sql delete 语句
args delete 参数
使用案例:
sql := `delete from coot_tasks where id=?;`
dbUtil.Delete(sql, 2)
*/
try.Try(func() {
db := conn()
stmt, _ := db.Prepare(sql)
_, err := stmt.Exec(args...)
if err != nil {
log.Pr("HFish", "127.0.0.1", "删除数据失败", err)
}
defer stmt.Close()
defer db.Close()
}).Catch(func() {})
}

View File

@ -4,8 +4,8 @@ import (
"github.com/gohouse/gorose" "github.com/gohouse/gorose"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
"fmt"
"HFish/utils/conf" "HFish/utils/conf"
"HFish/utils/log"
) )
var engin *gorose.Engin var engin *gorose.Engin
@ -21,13 +21,13 @@ func init() {
engin, err = gorose.Open(&gorose.Config{Driver: "sqlite3", Dsn: dbStr, SetMaxOpenConns: dbMaxOpen}) engin, err = gorose.Open(&gorose.Config{Driver: "sqlite3", Dsn: dbStr, SetMaxOpenConns: dbMaxOpen})
if err != nil { if err != nil {
fmt.Println(err) log.Pr("HFish", "127.0.0.1", "连接 Sqlite 数据库失败", err)
} }
} else if dbType == "mysql" { } else if dbType == "mysql" {
engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: dbStr, SetMaxOpenConns: dbMaxOpen}) engin, err = gorose.Open(&gorose.Config{Driver: "mysql", Dsn: dbStr, SetMaxOpenConns: dbMaxOpen})
if err != nil { if err != nil {
fmt.Println(err) log.Pr("HFish", "127.0.0.1", "连接 Mysql 数据库失败", err)
} }
} }
} }

View File

@ -9,6 +9,7 @@ import (
"HFish/utils/try" "HFish/utils/try"
"strings" "strings"
"HFish/core/alert" "HFish/core/alert"
"HFish/utils/conf"
) )
type HFishInfo struct { type HFishInfo struct {
@ -129,11 +130,29 @@ func insertInfo(typex string, projectName string, agent string, ipx string, coun
// 通用的更新 // 通用的更新
func updateInfo(id string, info string) { func updateInfo(id string, info string) {
_, err := dbUtil.DB().
Table("hfish_info"). var sql string
Data(map[string]interface{}{"info": "CONCAT(info," + info + ")"}).
Where("id", id). // 此处为了兼容 Mysql + Sqlite
Update() dbType := conf.Get("admin", "db_type")
if dbType == "sqlite" {
sql = `
UPDATE hfish_info
SET info = info||?
WHERE
id = ?;
`
} else if dbType == "mysql" {
sql = `
UPDATE hfish_info
SET info = CONCAT(info, ?)
WHERE
id = ?;
`
}
_, err := dbUtil.DB().Execute(sql, info, id)
if err != nil { if err != nil {
log.Pr("HFish", "127.0.0.1", "更新上钩信息失败", err) log.Pr("HFish", "127.0.0.1", "更新上钩信息失败", err)

Binary file not shown.

View File

@ -1,180 +1,30 @@
[HFish] 127.0.0.1 - [2019-09-02 20:12:59] "GET / HTTP/1.1 200 644.247098ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:46] "GET /fish HTTP/1.1 200 3.358066ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:12:59 | 200 | 644.382607ms | 127.0.0.1 | GET / [GIN] 2019/09/03 - 10:49:46 | 200 | 3.477709ms | ::1 | GET /fish
[HFish] 127.0.0.1 - [2019-09-02 20:12:59] "GET /get/dashboard/data HTTP/1.1 200 119.072µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:46] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 2.723128ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:12:59 | 200 | 181.691µs | 127.0.0.1 | GET /get/dashboard/data [GIN] 2019/09/03 - 10:49:46 | 200 | 2.771296ms | ::1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:12:59] "GET /get/dashboard/pie_data HTTP/1.1 200 155.326073ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:46] "GET /get/fish/typeList HTTP/1.1 200 28.657786ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:12:59 | 200 | 155.437992ms | 127.0.0.1 | GET /get/dashboard/pie_data [GIN] 2019/09/03 - 10:49:46 | 200 | 28.783846ms | ::1 | GET /get/fish/typeList
[HFish] 127.0.0.1 - [2019-09-02 20:13:03] "GET /dashboard HTTP/1.1 200 630.464755ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:46] "GET /static/favicon.ico HTTP/1.1 200 4.233759ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:03 | 200 | 630.544572ms | 127.0.0.1 | GET /dashboard [GIN] 2019/09/03 - 10:49:46 | 200 | 4.282521ms | ::1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:13:03] "GET /get/dashboard/data HTTP/1.1 200 52.208µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:47] "GET /fish HTTP/1.1 200 2.446317ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:03 | 200 | 111.831µs | 127.0.0.1 | GET /get/dashboard/data [GIN] 2019/09/03 - 10:49:47 | 200 | 2.504566ms | ::1 | GET /fish
[HFish] 127.0.0.1 - [2019-09-02 20:13:03] "GET /get/dashboard/pie_data HTTP/1.1 200 156.81618ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:47] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 2.273591ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:03 | 200 | 157.018731ms | 127.0.0.1 | GET /get/dashboard/pie_data [GIN] 2019/09/03 - 10:49:47 | 200 | 2.309481ms | ::1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:05] "GET /fish HTTP/1.1 200 1.903276ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:47] "GET /get/fish/typeList HTTP/1.1 200 23.12843ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:05 | 200 | 1.951403ms | 127.0.0.1 | GET /fish [GIN] 2019/09/03 - 10:49:47 | 200 | 23.167081ms | ::1 | GET /get/fish/typeList
[HFish] 127.0.0.1 - [2019-09-02 20:13:06] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 157.397916ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:47] "GET /static/favicon.ico HTTP/1.1 200 267.378µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:06 | 200 | 157.628539ms | 127.0.0.1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= [GIN] 2019/09/03 - 10:49:47 | 200 | 317.132µs | ::1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:13:06] "GET /get/fish/typeList HTTP/1.1 200 162.030908ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:48] "GET /get/fish/list?page=3&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 924.82µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:06 | 200 | 162.075483ms | 127.0.0.1 | GET /get/fish/typeList [GIN] 2019/09/03 - 10:49:48 | 200 | 967.506µs | ::1 | GET /get/fish/list?page=3&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:07] "GET /colony HTTP/1.1 200 1.920111ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:48] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 1.023622ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:07 | 200 | 1.974307ms | 127.0.0.1 | GET /colony [GIN] 2019/09/03 - 10:49:48 | 200 | 1.057424ms | ::1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:07] "GET /get/colony/list HTTP/1.1 200 80.834056ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:53] "GET /fish HTTP/1.1 200 2.391603ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:07 | 200 | 80.929436ms | 127.0.0.1 | GET /get/colony/list [GIN] 2019/09/03 - 10:49:53 | 200 | 2.437625ms | ::1 | GET /fish
[HFish] 127.0.0.1 - [2019-09-02 20:13:09] "GET /mail HTTP/1.1 200 1.5119ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:53] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 1.933701ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:09 | 200 | 1.557469ms | 127.0.0.1 | GET /mail [GIN] 2019/09/03 - 10:49:53 | 200 | 1.977871ms | ::1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:10] "GET /setting HTTP/1.1 200 87.25991ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:54] "GET /get/fish/typeList HTTP/1.1 200 22.201086ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:10 | 200 | 87.359887ms | 127.0.0.1 | GET /setting [GIN] 2019/09/03 - 10:49:54 | 200 | 22.259613ms | ::1 | GET /get/fish/typeList
[HFish] 127.0.0.1 - [2019-09-02 20:13:12] "GET /get/setting/info?id=4 HTTP/1.1 200 85.527786ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:49:54] "GET /static/favicon.ico HTTP/1.1 200 178.621µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:12 | 200 | 85.811629ms | 127.0.0.1 | GET /get/setting/info?id=4 [GIN] 2019/09/03 - 10:49:54 | 200 | 216.666µs | ::1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:13:14] "GET /mail HTTP/1.1 200 1.443847ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" " [HFish] ::1 - [2019-09-03 10:51:43] "GET /get/fish/list?page=2&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 1.304252ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:14 | 200 | 1.478159ms | 127.0.0.1 | GET /mail [GIN] 2019/09/03 - 10:51:43 | 200 | 1.363809ms | ::1 | GET /get/fish/list?page=2&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:15] "GET /colony HTTP/1.1 200 1.752479ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:15 | 200 | 1.794938ms | 127.0.0.1 | GET /colony
[HFish] 127.0.0.1 - [2019-09-02 20:13:15] "GET /get/colony/list HTTP/1.1 200 68.874171ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:15 | 200 | 68.949005ms | 127.0.0.1 | GET /get/colony/list
[HFish] 127.0.0.1 - [2019-09-02 20:13:15] "GET /fish HTTP/1.1 200 3.291716ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:15 | 200 | 19.239568ms | 127.0.0.1 | GET /fish
[HFish] 127.0.0.1 - [2019-09-02 20:13:16] "GET /get/fish/typeList HTTP/1.1 200 163.224835ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:16 | 200 | 163.412966ms | 127.0.0.1 | GET /get/fish/typeList
[HFish] 127.0.0.1 - [2019-09-02 20:13:16] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 167.199799ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:16 | 200 | 167.449324ms | 127.0.0.1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:17] "GET /dashboard HTTP/1.1 200 634.497908ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:17 | 200 | 634.552407ms | 127.0.0.1 | GET /dashboard
[HFish] 127.0.0.1 - [2019-09-02 20:13:17] "GET /get/dashboard/data HTTP/1.1 200 52.072µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:17 | 200 | 102.664µs | 127.0.0.1 | GET /get/dashboard/data
[HFish] 127.0.0.1 - [2019-09-02 20:13:17] "GET /get/dashboard/pie_data HTTP/1.1 200 152.924416ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:17 | 200 | 153.126976ms | 127.0.0.1 | GET /get/dashboard/pie_data
[HFish] 127.0.0.1 - [2019-09-02 20:13:19] "GET /fish HTTP/1.1 200 1.87829ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:19 | 200 | 1.931785ms | 127.0.0.1 | GET /fish
[HFish] 127.0.0.1 - [2019-09-02 20:13:19] "GET /get/fish/typeList HTTP/1.1 200 163.774635ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:19 | 200 | 164.01876ms | 127.0.0.1 | GET /get/fish/typeList
[HFish] 127.0.0.1 - [2019-09-02 20:13:19] "GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text= HTTP/1.1 200 168.484694ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:19 | 200 | 168.534863ms | 127.0.0.1 | GET /get/fish/list?page=1&pageSize=10&type=all&colony=all&so_text=
[HFish] 127.0.0.1 - [2019-09-02 20:13:20] "GET /colony HTTP/1.1 200 1.855059ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:20 | 200 | 1.904681ms | 127.0.0.1 | GET /colony
[HFish] 127.0.0.1 - [2019-09-02 20:13:20] "GET /get/colony/list HTTP/1.1 200 79.622074ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:20 | 200 | 79.732005ms | 127.0.0.1 | GET /get/colony/list
[HFish] 127.0.0.1 - [2019-09-02 20:13:21] "GET /mail HTTP/1.1 200 1.354647ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:21 | 200 | 1.390378ms | 127.0.0.1 | GET /mail
[HFish] 127.0.0.1 - [2019-09-02 20:13:21] "GET /setting HTTP/1.1 200 77.446272ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:21 | 200 | 77.500598ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:13:35] "GET /static/js/jquery.min.map HTTP/1.1 404 82.99µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:35 | 404 | 143.984µs | 127.0.0.1 | GET /static/js/jquery.min.map
[HFish] 127.0.0.1 - [2019-09-02 20:13:35] "GET /static/css/style.css.map HTTP/1.1 200 4.991254ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:35 | 200 | 5.049558ms | 127.0.0.1 | GET /static/css/style.css.map
[HFish] 127.0.0.1 - [2019-09-02 20:13:40] "GET /get/setting/info?id=3 HTTP/1.1 200 88.746433ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:13:40 | 200 | 88.861048ms | 127.0.0.1 | GET /get/setting/info?id=3
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /setting HTTP/1.1 200 95.386649ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 95.443784ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /static/libs/bootstrap-sweetalert/sweet-alert.css HTTP/1.1 200 249.283µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 321.171µs | 127.0.0.1 | GET /static/libs/bootstrap-sweetalert/sweet-alert.css
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /static/css/style.css HTTP/1.1 200 861.081µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 894.81µs | 127.0.0.1 | GET /static/css/style.css
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /static/libs/switchery/switchery.min.css HTTP/1.1 200 164.909µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 215.948µs | 127.0.0.1 | GET /static/libs/switchery/switchery.min.css
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /static/images/avatar.png HTTP/1.1 200 196.085µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 245.074µs | 127.0.0.1 | GET /static/images/avatar.png
[HFish] 127.0.0.1 - [2019-09-02 20:14:53] "GET /static/js/jquery.min.js HTTP/1.1 200 267.028µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:53 | 200 | 338.797µs | 127.0.0.1 | GET /static/js/jquery.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/js/tether.min.js HTTP/1.1 200 231.715µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 266.18µs | 127.0.0.1 | GET /static/js/tether.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/js/bootstrap.min.js HTTP/1.1 200 278.646µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 311.858µs | 127.0.0.1 | GET /static/js/bootstrap.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/libs/bootstrap-sweetalert/sweet-alert.min.js HTTP/1.1 200 173.523µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 210.304µs | 127.0.0.1 | GET /static/libs/bootstrap-sweetalert/sweet-alert.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/libs/switchery/switchery.min.js HTTP/1.1 200 195.891µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 235.793µs | 127.0.0.1 | GET /static/libs/switchery/switchery.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/libs/waypoints/lib/jquery.waypoints.js HTTP/1.1 200 202.431µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 237.082µs | 127.0.0.1 | GET /static/libs/waypoints/lib/jquery.waypoints.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/libs/counterup/jquery.counterup.min.js HTTP/1.1 200 120.231µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 149.587µs | 127.0.0.1 | GET /static/libs/counterup/jquery.counterup.min.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/js/jquery.core.js HTTP/1.1 200 188.2µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/js/jquery.app.js HTTP/1.1 200 133.803µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 176.626µs | 127.0.0.1 | GET /static/js/jquery.app.js
[GIN] 2019/09/02 - 20:14:54 | 200 | 219.565µs | 127.0.0.1 | GET /static/js/jquery.core.js
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/js/jquery.min.map HTTP/1.1 404 54.981µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 404 | 138.376µs | 127.0.0.1 | GET /static/js/jquery.min.map
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/fonts/Material-Design-Iconic-Font.woff2?v=2.2.0 HTTP/1.1 200 168.273µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 195.688µs | 127.0.0.1 | GET /static/fonts/Material-Design-Iconic-Font.woff2?v=2.2.0
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/fonts/fontawesome-webfont.woff2?v=4.6.2 HTTP/1.1 200 215.981µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 242.467µs | 127.0.0.1 | GET /static/fonts/fontawesome-webfont.woff2?v=4.6.2
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/css/style.css.map HTTP/1.1 200 500.675µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 570.903µs | 127.0.0.1 | GET /static/css/style.css.map
[HFish] 127.0.0.1 - [2019-09-02 20:14:54] "GET /static/favicon.ico HTTP/1.1 200 211.588µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:54 | 200 | 250.409µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:14:56] "GET /get/setting/info?id=3 HTTP/1.1 200 83.323989ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:56 | 200 | 83.380177ms | 127.0.0.1 | GET /get/setting/info?id=3
[HFish] 127.0.0.1 - [2019-09-02 20:14:59] "POST /post/setting/updateWebHook HTTP/1.1 200 84.781954ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:14:59 | 200 | 84.85987ms | 127.0.0.1 | POST /post/setting/updateWebHook
[HFish] 127.0.0.1 - [2019-09-02 20:15:00] "POST /post/setting/checkSetting HTTP/1.1 200 170.381821ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:00 | 200 | 170.422487ms | 127.0.0.1 | POST /post/setting/checkSetting
[HFish] 127.0.0.1 - [2019-09-02 20:15:01] "GET /setting HTTP/1.1 200 77.882673ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:01 | 200 | 77.927124ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:01] "GET /static/favicon.ico HTTP/1.1 200 225.977µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:01 | 200 | 290.85µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:03] "GET /get/setting/info?id=3 HTTP/1.1 200 79.640805ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:03 | 200 | 79.692208ms | 127.0.0.1 | GET /get/setting/info?id=3
[HFish] 127.0.0.1 - [2019-09-02 20:15:05] "POST /post/setting/checkSetting HTTP/1.1 200 182.46045ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:05 | 200 | 182.610857ms | 127.0.0.1 | POST /post/setting/checkSetting
[HFish] 127.0.0.1 - [2019-09-02 20:15:05] "GET /setting HTTP/1.1 200 84.447435ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:05 | 200 | 84.500982ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:05] "GET /static/favicon.ico HTTP/1.1 200 568.583µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:05 | 200 | 736.482µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:06] "GET /get/setting/info?id=3 HTTP/1.1 200 86.753068ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:06 | 200 | 86.80909ms | 127.0.0.1 | GET /get/setting/info?id=3
[HFish] 127.0.0.1 - [2019-09-02 20:15:08] "GET /get/setting/info?id=4 HTTP/1.1 200 87.671268ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:08 | 200 | 87.742543ms | 127.0.0.1 | GET /get/setting/info?id=4
[HFish] 127.0.0.1 - [2019-09-02 20:15:11] "POST /post/setting/updateWhiteIp HTTP/1.1 200 86.102201ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:11 | 200 | 86.212765ms | 127.0.0.1 | POST /post/setting/updateWhiteIp
[HFish] 127.0.0.1 - [2019-09-02 20:15:11] "GET /setting HTTP/1.1 200 69.078813ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:11 | 200 | 69.120741ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:12] "GET /static/favicon.ico HTTP/1.1 200 270.224µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:12 | 200 | 327.102µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:12] "POST /post/setting/checkSetting HTTP/1.1 200 148.520854ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:12 | 200 | 148.586099ms | 127.0.0.1 | POST /post/setting/checkSetting
[HFish] 127.0.0.1 - [2019-09-02 20:15:13] "GET /setting HTTP/1.1 200 86.679542ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:13 | 200 | 86.855425ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:13] "GET /static/favicon.ico HTTP/1.1 200 622.206µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:13 | 200 | 787.303µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:13] "GET /setting HTTP/1.1 200 91.961911ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:13 | 200 | 92.020072ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:13] "GET /static/favicon.ico HTTP/1.1 200 143.452µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:13 | 200 | 175.328µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:15] "POST /post/setting/checkSetting HTTP/1.1 200 168.922691ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:15 | 200 | 169.03564ms | 127.0.0.1 | POST /post/setting/checkSetting
[HFish] 127.0.0.1 - [2019-09-02 20:15:15] "GET /get/setting/info?id=1 HTTP/1.1 200 82.77373ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:15 | 200 | 82.820749ms | 127.0.0.1 | GET /get/setting/info?id=1
[HFish] 127.0.0.1 - [2019-09-02 20:15:17] "GET /setting HTTP/1.1 200 89.525113ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:17 | 200 | 89.712283ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:17] "GET /static/favicon.ico HTTP/1.1 200 181.56µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:17 | 200 | 236.5µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:18] "POST /post/setting/checkSetting HTTP/1.1 200 166.238617ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:18 | 200 | 176.030488ms | 127.0.0.1 | POST /post/setting/checkSetting
[HFish] 127.0.0.1 - [2019-09-02 20:15:18] "GET /setting HTTP/1.1 200 87.376755ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:18 | 200 | 87.494505ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:19] "GET /static/favicon.ico HTTP/1.1 200 208.372µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:19 | 200 | 253.792µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:19] "GET /setting HTTP/1.1 200 84.31936ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:19 | 200 | 84.373924ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:19] "GET /static/favicon.ico HTTP/1.1 200 267.28µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:19 | 200 | 317.122µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:19] "GET /setting HTTP/1.1 200 89.62937ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:19 | 200 | 89.70859ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:19] "GET /static/favicon.ico HTTP/1.1 200 152.08µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:19 | 200 | 188.669µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:20] "GET /setting HTTP/1.1 200 73.840862ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:20 | 200 | 73.880331ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:20] "GET /static/favicon.ico HTTP/1.1 200 354.193µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:20 | 200 | 515.903µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:20] "GET /get/setting/info?id=1 HTTP/1.1 200 81.770515ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:20 | 200 | 81.818054ms | 127.0.0.1 | GET /get/setting/info?id=1
[HFish] 127.0.0.1 - [2019-09-02 20:15:22] "GET /get/setting/info?id=2 HTTP/1.1 200 82.385744ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:22 | 200 | 82.437334ms | 127.0.0.1 | GET /get/setting/info?id=2
[HFish] 127.0.0.1 - [2019-09-02 20:15:23] "GET /setting HTTP/1.1 200 86.468883ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:23 | 200 | 86.53202ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:23] "GET /static/favicon.ico HTTP/1.1 200 208.542µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:23 | 200 | 255.105µs | 127.0.0.1 | GET /static/favicon.ico
[HFish] 127.0.0.1 - [2019-09-02 20:15:23] "GET /setting HTTP/1.1 200 84.279451ms "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:23 | 200 | 84.33658ms | 127.0.0.1 | GET /setting
[HFish] 127.0.0.1 - [2019-09-02 20:15:24] "GET /static/favicon.ico HTTP/1.1 200 158.711µs "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" "
[GIN] 2019/09/02 - 20:15:24 | 200 | 218.091µs | 127.0.0.1 | GET /static/favicon.ico

View File

@ -57,178 +57,275 @@ func Html(c *gin.Context) {
}) })
} }
func getData(sql string) map[string]interface{} {
var result []map[string]interface{}
err := dbUtil.DB().Table(&result).Query(sql)
if err != nil {
log.Pr("HFish", "127.0.0.1", "查询SQL失败", err)
}
resultMap := make(map[string]interface{})
for k := range result {
resultMap[result[k]["hour"].(string)] = result[k]["sum"]
}
return resultMap
}
// 仪表盘折线图 统计 // 仪表盘折线图 统计
func GetFishData(c *gin.Context) { func GetFishData(c *gin.Context) {
//// 统计 web var sqlWeb string
//sqlWeb := ` var sqlSsh string
//SELECT var sqlRedis string
// strftime("%H", create_time) AS hour, var sqlMysql string
// sum(1) AS sum var sqlDeep string
//FROM var sqlFtp string
// hfish_info var sqlTelnet string
//WHERE var sqlMemCache string
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
//AND type="WEB" // 此处为了兼容 Mysql + Sqlite
//GROUP BY dbType := conf.Get("admin", "db_type")
//hour;
//` if dbType == "sqlite" {
// // 统计 web
//resultWeb := dbUtil.Query(sqlWeb) sqlWeb = `
// SELECT
webMap := make(map[string]int64) strftime("%H", create_time) AS hour,
//for k := range resultWeb { sum(1) AS sum
// webMap[resultWeb[k]["hour"].(string)] = resultWeb[k]["sum"].(int64) FROM
//} hfish_info
// WHERE
//// 统计 ssh strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
//sqlSsh := ` AND type="WEB"
//SELECT GROUP BY
// strftime("%H", create_time) AS hour, hour;
// sum(1) AS sum `
//FROM
// hfish_info // 统计 ssh
//WHERE sqlSsh = `
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) SELECT
//AND type="SSH" strftime("%H", create_time) AS hour,
//GROUP BY sum(1) AS sum
//hour; FROM
//` hfish_info
// WHERE
//resultSSH := dbUtil.Query(sqlSsh) strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
// AND type="SSH"
sshMap := make(map[string]int64) GROUP BY
//for k := range resultSSH { hour;
// sshMap[resultSSH[k]["hour"].(string)] = resultSSH[k]["sum"].(int64) `
//}
// // 统计 redis
//// 统计 redis sqlRedis = `
//sqlRedis := ` SELECT
//SELECT strftime("%H", create_time) AS hour,
// strftime("%H", create_time) AS hour, sum(1) AS sum
// sum(1) AS sum FROM
//FROM hfish_info
// hfish_info WHERE
//WHERE strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) AND type="REDIS"
//AND type="REDIS" GROUP BY
//GROUP BY hour;
//hour; `
//`
// // 统计 mysql
//resultRedis := dbUtil.Query(sqlRedis) sqlMysql = `
// SELECT
redisMap := make(map[string]int64) strftime("%H", create_time) AS hour,
//for k := range resultRedis { sum(1) AS sum
// redisMap[resultRedis[k]["hour"].(string)] = resultRedis[k]["sum"].(int64) FROM
//} hfish_info
// WHERE
//// 统计 mysql strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
//sqlMysql := ` AND type="MYSQL"
//SELECT GROUP BY
// strftime("%H", create_time) AS hour, hour;
// sum(1) AS sum `
//FROM
// hfish_info // 统计 deep
//WHERE sqlDeep = `
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) SELECT
//AND type="MYSQL" strftime("%H", create_time) AS hour,
//GROUP BY sum(1) AS sum
//hour; FROM
//` hfish_info
// WHERE
//resultMysql := dbUtil.Query(sqlMysql) strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
// AND type="DEEP"
mysqlMap := make(map[string]int64) GROUP BY
//for k := range resultMysql { hour;
// mysqlMap[resultMysql[k]["hour"].(string)] = resultMysql[k]["sum"].(int64) `
//}
// // 统计 ftp
//// 统计 deep sqlFtp = `
//sqlDeep := ` SELECT
//SELECT strftime("%H", create_time) AS hour,
// strftime("%H", create_time) AS hour, sum(1) AS sum
// sum(1) AS sum FROM
//FROM hfish_info
// hfish_info WHERE
//WHERE strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) AND type="FTP"
//AND type="DEEP" GROUP BY
//GROUP BY hour;
//hour; `
//`
// // 统计 Telnet
//resultDeep := dbUtil.Query(sqlDeep) sqlTelnet = `
// SELECT
deepMap := make(map[string]int64) strftime("%H", create_time) AS hour,
//for k := range resultDeep { sum(1) AS sum
// deepMap[resultDeep[k]["hour"].(string)] = resultDeep[k]["sum"].(int64) FROM
//} hfish_info
// WHERE
//// 统计 ftp strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
//sqlFtp := ` AND type="TELNET"
//SELECT GROUP BY
// strftime("%H", create_time) AS hour, hour;
// sum(1) AS sum `
//FROM
// hfish_info // 统计 MemCache
//WHERE sqlMemCache = `
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) SELECT
//AND type="FTP" strftime("%H", create_time) AS hour,
//GROUP BY sum(1) AS sum
//hour; FROM
//` hfish_info
// WHERE
//resultFtp := dbUtil.Query(sqlFtp) strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600)
// AND type="MEMCACHE"
ftpMap := make(map[string]int64) GROUP BY
//for k := range resultFtp { hour;
// ftpMap[resultFtp[k]["hour"].(string)] = resultFtp[k]["sum"].(int64) `
//}
// } else if dbType == "mysql" {
//// 统计 Telnet // 统计 web
//sqlTelnet := ` sqlWeb = `
//SELECT SELECT
// strftime("%H", create_time) AS hour, DATE_FORMAT(create_time,"%H") AS hour,
// sum(1) AS sum sum(1) AS sum
//FROM FROM
// hfish_info hfish_info
//WHERE WHERE
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) create_time >= (NOW() - INTERVAL 24 HOUR)
//AND type="TELNET" AND type = "WEB"
//GROUP BY GROUP BY
//hour; hour;
//` `
//
//resultTelnet := dbUtil.Query(sqlTelnet) // 统计 ssh
// sqlSsh = `
telnetMap := make(map[string]int64) SELECT
//for k := range resultTelnet { DATE_FORMAT(create_time,"%H") AS hour,
// telnetMap[resultTelnet[k]["hour"].(string)] = resultTelnet[k]["sum"].(int64) sum(1) AS sum
//} FROM
// hfish_info
//// 统计 MemCache WHERE
//sqlMemCache := ` create_time >= (NOW() - INTERVAL 24 HOUR)
//SELECT AND type = "SSH"
// strftime("%H", create_time) AS hour, GROUP BY
// sum(1) AS sum hour;
//FROM `
// hfish_info
//WHERE // 统计 redis
// strftime('%s', datetime('now')) - strftime('%s', create_time) < (24 * 3600) sqlRedis = `
//AND type="MEMCACHE" SELECT
//GROUP BY DATE_FORMAT(create_time,"%H") AS hour,
//hour; sum(1) AS sum
//` FROM
// hfish_info
//resultMemCache := dbUtil.Query(sqlMemCache) WHERE
// create_time >= (NOW() - INTERVAL 24 HOUR)
memCacheMap := make(map[string]int64) AND type = "REDIS"
//for k := range resultMemCache { GROUP BY
// memCacheMap[resultMemCache[k]["hour"].(string)] = resultMemCache[k]["sum"].(int64) hour;
//} `
// 统计 mysql
sqlMysql = `
SELECT
DATE_FORMAT(create_time,"%H") AS hour,
sum(1) AS sum
FROM
hfish_info
WHERE
create_time >= (NOW() - INTERVAL 24 HOUR)
AND type = "MYSQL"
GROUP BY
hour;
`
// 统计 deep
sqlDeep = `
SELECT
DATE_FORMAT(create_time,"%H") AS hour,
sum(1) AS sum
FROM
hfish_info
WHERE
create_time >= (NOW() - INTERVAL 24 HOUR)
AND type = "DEEP"
GROUP BY
hour;
`
// 统计 ftp
sqlFtp = `
SELECT
DATE_FORMAT(create_time,"%H") AS hour,
sum(1) AS sum
FROM
hfish_info
WHERE
create_time >= (NOW() - INTERVAL 24 HOUR)
AND type = "FTP"
GROUP BY
hour;
`
// 统计 Telnet
sqlTelnet = `
SELECT
DATE_FORMAT(create_time,"%H") AS hour,
sum(1) AS sum
FROM
hfish_info
WHERE
create_time >= (NOW() - INTERVAL 24 HOUR)
AND type = "TELNET"
GROUP BY
hour;
`
// 统计 MemCache
sqlMemCache = `
SELECT
DATE_FORMAT(create_time,"%H") AS hour,
sum(1) AS sum
FROM
hfish_info
WHERE
create_time >= (NOW() - INTERVAL 24 HOUR)
AND type = "MEMCACHE"
GROUP BY
hour;
`
}
webMap := getData(sqlWeb)
sshMap := getData(sqlSsh)
redisMap := getData(sqlRedis)
mysqlMap := getData(sqlMysql)
deepMap := getData(sqlDeep)
ftpMap := getData(sqlFtp)
telnetMap := getData(sqlTelnet)
memCacheMap := getData(sqlMemCache)
// 拼接 json // 拼接 json
data := map[string]map[string]int64{ data := map[string]interface{}{
"web": webMap, "web": webMap,
"ssh": sshMap, "ssh": sshMap,
"redis": redisMap, "redis": redisMap,

View File

@ -9,6 +9,7 @@ import (
"strconv" "strconv"
"strings" "strings"
"HFish/utils/log" "HFish/utils/log"
"fmt"
) )
// 蜜罐 页面 // 蜜罐 页面
@ -55,7 +56,10 @@ func GetFishList(c *gin.Context) {
pageSizeInt, _ := strconv.Atoi(pageSize) pageSizeInt, _ := strconv.Atoi(pageSize)
pageStart := page.Start(pInt, pageSizeInt) pageStart := page.Start(pInt, pageSizeInt)
result, err := db.OrderBy("id desc").Limit(pageStart).Offset(pageSizeInt).Get() result, err := db.OrderBy("id desc").Limit(pageSizeInt).Offset(pageStart).Get()
fmt.Println(db.LastSql())
fmt.Println(result)
if err != nil { if err != nil {
log.Pr("HFish", "127.0.0.1", "查询上钩信息列表失败", err) log.Pr("HFish", "127.0.0.1", "查询上钩信息列表失败", err)

View File

@ -37,6 +37,8 @@ func Login(c *gin.Context) {
"code": error.ErrSuccessCode, "code": error.ErrSuccessCode,
"msg": error.ErrSuccessMsg, "msg": error.ErrSuccessMsg,
}) })
return
} }
} }

View File

@ -166,6 +166,8 @@ func UpdateStatusSetting(c *gin.Context) {
"code": error.ErrFailConfigCode, "code": error.ErrFailConfigCode,
"msg": error.ErrFailConfigMsg, "msg": error.ErrFailConfigMsg,
}) })
return
} }
_, err := dbUtil.DB(). _, err := dbUtil.DB().