找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

[全版本]ServerMonitor —— 轻量级的服务器监控日志

像素搬运菌 2024-8-9 15:21:30 管理 阅读 164 | Edg | Windows 10 来自 中国广西玉林
服务器插件
中文名称:
英文名称: ServerMonitor
插件来源: 转载
适用服务端: Spigot 
插件类型: 管理
语言支持: 中文 
适用版本: 全版本 
前置插件/mod:
下载地址: https://github.com/myunco/ServerMonitor
原贴地址: https://github.com/myunco/ServerMonitor

马上登录/注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x

插件介绍

你是否遇到过服务器突然冒出来有权限的熊孩子,却不易寻找其权限从何而来?
是否遇到过一觉醒来全服op、主城被毁、世界被删?
这款插件可以帮助你更方便的定位权限漏洞,查清熊孩子的权限从何而来。

功能介绍

可记录玩家聊天日志,并可设置为每个玩家单独记录
可记录玩家命令日志,并可设置为每个玩家单独记录(包括控制台执行的命令

由于命令方块也算控制台,如果服里有长时间、高频率执行的命令方块会导致日志文件过大
故在1.0.3版本中新增了是否记录命令方块执行的命令选项,禁用该选项可解决此问题。
如果想记录部分命令方块的执行怎么办?
解决方法也很简单,给想被记录的命令方块重命名即可

可记录玩家游戏模式变更日志,并可设置为每个玩家单独记录
可记录op变更记录,格式----时间 [XX]Opped/De-oppd : [XX]
可监测不在插件白名单内的OP玩家使用不在命令白名单内的命令并作出自定义的处理(详见配置文件)

处理方法(可多选):
0.什么也不做
1.发送全服公告
2.控制台执行命令
3.使该玩家执行命令
4.使该玩家发送消息
5.对该玩家发送消息
6.控制台显示警告信息
7.将警告信息保存至警告日志
以上内容可在配置文件内进行个性化配置
这个功能有什么意义?能防卡权限吗?
仅能防止非白名单op使用命令,此功能本意并不是防御,而是警报。
日志通常不会主动去看,是发生什么事情之后被动去找,往往不是那么及时。
大多数熊孩子利用漏洞直接获取到op,或获取到权限给自己op后,会给自己创造试试。
(熊孩子看了本帖就不一定了...)当熊孩子以op身份执行命令时,
默认会有游戏内公告提醒 后台警告 并生成warning.log存储警告信息,
当你及时发现之后,可以立即做出对应处理,避免进一步损失。
(注意:你可能需要某些插件使玩家以op身份执行命令,
为避免触发警报,建议把该命令加入白名单)

可记录玩家加入/退出服务器以及被踢出游戏
(需注意:如果开启了为每个玩家单独一个记录文件,则必须开启记录玩家加入/退出服务器)
支持语言文件,默认使用zh_cn简体中文(所有记录格式完全可自定义
日志文件每天一个,支持自动压缩旧日志、自动删除多少天前的日志

配置文件

#语言 默认为简体中文
language: 'zh_cn'

#日志中日期格式
dateFormat: 'yyyy/MM/dd HH:mm:ss'

#行分隔符 Auto=自动,手动指定则填写如:'\r\n'
lineSeparator: 'Auto'

#即时保存 true为启用 false为禁用
#若启用则每条日志信息即时保存到文件。当在线玩家非常多并且较为活跃时可能会频繁向硬盘写出数据,但性能影响微乎其微。
#禁用此项则每条日志信息会存入缓冲区,每隔半小时或缓冲区存满时向硬盘写出数据。若插件未正常卸载(例如服务器崩溃)则可能导致部分记录丢失。
realTimeSave: true

#自动压缩旧日志 true为启用 false为禁用
zipOldLog: false

#自动删除旧日志 填0为禁用 填正整数n 为删除n天前的日志(例如填 7 表示删除7天前的日志) 负数无效
delOldLog: 0

#检查更新 true为启用 false为禁用
checkUpdate: true

playerChat:
  #记录玩家聊天 true为启用 false为禁用
  enable: true
  #为每个玩家单独记录
  perPlayer: true

playerCommand:
  #记录玩家命令 true为启用 false为禁用
  enable: true
  #为每个玩家单独记录
  perPlayer: true
  #记录控制台命令 true为启用 false为禁用
  consoleCommand: true
  #记录命令方块执行的命令 true为启用 false为禁用
  #禁用后仍然会记录已改名的命令方块,如果只想记录某个命令方块的命令,可以禁用此项然后将想记录的命令方块改名后放置
  #此项仅在启用记录控制台命令的情况下生效 通常在服务器内有长时间、高频率执行的命令方块时禁用此项 以免日志文件过大
  commandBlockCommand: true
  #记录op变更 true为启用 false为禁用
  #此项在记录玩家命令和记录控制台命令都启用的情况下才能完整生效
  opChange: true

playerGameModeChange:
  #记录玩家游戏模式变更 true为启用 false为禁用
  enable: true
  #为每个玩家单独记录
  perPlayer: false

#记录玩家加入/离开/被踢出
joinAndLeave: true

commandAlert:
  #非白名单OP执行命令警报 true为启用 false为禁用
  enable: true

  #玩家白名单 按示例格式添加
  whitelist:
    - 玩家名1
    - 玩家名2

  #命令白名单 按示例格式添加
  commandWhiteList:
    - /help
    - /suicide

  #非白名单命令取消执行 true为取消 false为不取消
  cancel: true

  handleMethod:
    #处理方法 0=不处理 1=发送全服公告 2=控制台执行命令 4=使该玩家执行命令 8=使该玩家发送消息 16=对该玩家发送消息 32=控制台显示警告信息 64=将警告信息保存至警告日志
    #以上处理方式不冲突,选择多种处理方式相加即可。例如 既要发送全服公告又要控制台执行命令 则1+2=3 处理方法填3即可。
    #默认1+2+32+64=99
    method: 99
    #以下为各处理方法的详细设置,使用{player}表示该玩家的名字,{command}表示事件命令。

    #要发送的公告 支持多条 按格式添加
    broadcast:
      - '§e[§d公告§e]§4玩家§a{player}§4因利用bug获取OP权限而惨遭封禁!'
      - '§e[§d公告§e]§4玩家§a{player}§4因利用bug获取OP权限而惨遭封禁!'
      - '§e[§d公告§e]§4玩家§a{player}§4因利用bug获取OP权限而惨遭封禁!'

    #控制台执行的命令 支持多个 按格式添加 不用加"/"
    consoleCmd:
      - 'deop {player}'
      - 'ban {player}'

    #使该玩家执行的命令 支持多个 按格式添加
    #需注意本方法的优先级低于控制台执行命令,并且不能执行该玩家无权执行的命令。
    #(如果使用本方法,切记要把这里写的命令加入白名单或在上一步用控制台取消该玩家的OP,不然...)
    playerCmd:
      - '/suicide'

    #使该玩家发送消息 支持多条 按格式添加
    playerSendMsg:
      - '我卡bug了!我卡bug了!我卡bug了!'

    #对该玩家发送消息 支持多条 按格式添加
    sendMsgToPlayer:
      - '惊喜不惊喜?意外不意外?'

    #控制台显示警告信息 支持多条 按格式添加
    consoleWarning:
      - '§4§l------------------警告------------------'
      - '§4玩家§b{player}§4不在白名单并以OP身份执行命令:§6{command}'
      - '§e请立即查询该玩家指令记录并检查权限系统是否存在漏洞'
      - '§4§l------------------警告------------------'

    #将警告保存到警告日志 支持多行 按格式添加,但不建议多行
    warningLog:
      - '玩家{player}以管理员身份执行命令:{command} , 请立即查询该玩家命令记录并检查权限系统是否存在漏洞!'

语言文件

#语言文件版本 请勿修改此项
version: 4

log-prefix: '§3[§aServerMonitor§3] '
message-prefix: '§3[§aServerMonitor§3] §e-> '
language-version-error: '§c语言文件版本错误: '
language-version-outdated: '§e当前语言文件版本:§a{0} §c最新版本:§b{1} §6需要更新.'
language-update-complete: '§a语言文件更新完成!'
update-found-new-version: '§c发现新版本可用! §b当前版本: {0} §d最新版本: {1}'
update-major-update: '§e(有大更新)'
update-download-link: '§a下载地址: '
update-check-failure: '§e检查更新失败, 状态码: '
update-check-exception: '§4检查更新时发生IO异常.'
enable-message: '§b已启用.'
disable-message: '§c已卸载.'
command-help:
  - '§e===========§bServerMonitor§e==========='
  - '/ServerMonitor help ---- §a查看指令帮助'
  - '§e/ServerMonitor reload ---- §a重载插件配置'
  - '§e/ServerMonitor version ---- §a查看插件版本'
command-reload: '§a插件配置重载完成.'
command-unknown: '§c未知的子命令!'
log-player-chat: '玩家[{player}]说 : {message}'
log-player-command: '玩家[{player}]({op?})执行命令 : {command}'
log-player-command-op: 'OP'
log-player-command-non-op: '非OP'
log-console-command: '控制台[{sender}]执行命令 : {command}'
log-op-change-op-player: '玩家[{player1}]Opped : {player2}'
log-op-change-deop-player: '玩家[{player1}]De-Opped : {player2}'
log-op-change-op-console: '控制台[{sender}]Opped : {player}'
log-op-change-deop-console: '控制台[{sender}]De-opped : {player}'
log-player-game-mode-change: '玩家[{player}]的游戏模式更改为 : {gamemode}'
log-player-join: '玩家[{player}]({ip}) : 加入服务器'
log-player-quit: '玩家[{player}]({ip}) : 退出服务器'
log-player-kick: '玩家[{player}]({ip}) : 被踢出游戏 原因: {reason}'
message-exception: '异常信息: '
message-exception-open: '§4[错误] §5在打开 {file} 时发生IO异常!'
message-exception-write: '§4[错误] §5在写 {file} 时发生IO异常!'
message-exception-close: '§4[错误] §5在关闭 {file} 时发生IO异常!'
message-exception-save: '§4[错误] §5在保存 {file} 时发生IO异常!'
message-exception-zip: '§4[错误] §5在压缩 {file} 时发生IO异常!'
message-error-delete: '§4[错误] §5删除 {file} 失败!'

下载地址

本插件已在1.3.2/1.4.7/1.5.2/1.6.4/1.7.10/1.8.8/1.9.4/1.10.2/1.11.2/1.12.2/1.13.2/1.14.4/1.15.2/1.16.5/1.17.1/1.18.2/1.19.4/1.20.1测试通过
插件理论兼容Minecraft 2.0.0版本之前的任何新版本,所以即使是本帖没有标明的新版本通常也能正常使用。
备用下载地址:百度网盘 rel="nofollow" 提取码: 44cw

更新日志

更新日志
2023-07-12 1.3.2版本发布

  • 根据举报对命令中的密码进行隐藏处理
  • 删除部分无用代码减小插件体积.
  • 其他细节修正和优化.
    2022-03-13 1.3.1版本发布
  • 修复语言文件升级到版本4时错误赋值玩家命令日志格式的问题.
    2022-03-07 1.3.0版本发布
  • 重构部分代码.
  • 优化检查更新.
  • 重写配置文件和语言文件加载.
  • 语言文件更新,版本号升级为4.
  • 修复在远古版本中可能导致配置文件损坏的问题.
  • 其他细节修正和优化.
    2021-11-27 1.2.1版本发布
  • 修复了未启用命令警报时在控制台op/deop会出现报错的问题.
    2021-11-20 1.2.0版本发布
  • 接入bStats.org匿名统计信息
  • 优化op修改判断逻辑、修复自动设置白名单功能可能出现的错误.
  • 调整部分事件优先级、部分已取消事件不再记录日志.
  • 兼容1.7.2以及之前的版本.
  • 配置文件、语言文件、日志文件统一使用UTF8编码读写,不再使用系统默认编码.
  • 自动压缩旧日志选项现在默认关闭.
  • 禁用即时保存时,现在每半小时额外保存一次.
  • 修改所有日志文件的创建时机,现在当真正需要写出日志时才创建.
  • 其他细节优化.
    2020-09-26 1.1.4版本发布
  • 命令补全支持大写.
  • 其他细节优化.
    2020-07-09 1.1.3版本发布
  • 增加了在控制台op或deop时自动设置玩家白名单的功能.
    2020-04-16 1.1.2版本发布
  • 修复了日期更新后玩家日志没有正确关闭导致的错误.
  • 修复了压缩异常、删除错误消息中{file}无效的错误.
  • 自动检查更新选项改为默认开启.
    2020-04-15 1.1.1版本发布
  • 修复了写警告日志会出现空指针异常的问题.
    2020-04-15 1.1.0版本发布
  • 日志文件改为每天一个(opChange.log和Warning.log除外).
  • 增加了自动压缩旧日志的选项.
  • 增加了自动删除多少天前的日志的选项.
  • 增加了检查更新选项(默认关闭).
  • 优化命令的TAB补全.
  • 优化代码,修正细节错误.
  • 添加zh_tw语言文件(用户提供).
    2020-04-09 1.0.3版本发布
  • 增加了是否记录命令方块执行命令的选项.
  • 修复了NPC触发事件导致的报错.
    2020-03-31 1.0.1版本发布
  • 处理了可能出现的异常.
    2020-03-24 1.0.0版本发布
(1)
像素搬运菌板块版主
参与人数 1钻石 +1 收起 理由
SPAWN + 1 很给力!

查看全部评分总评分 : 钻石 +1

帖子地址: 

发表回复

使用道具 举报