黑群晖休眠日志分析

发布于 2021-01-21  114 次阅读


之前有篇文章写了怎么让黑群晖正常休眠,但是某些情况下依旧存在不休眠、频繁启动情况,下面详细写下怎么查看和解决。

先开启群晖的日志工具,在DSM右上角,技术支持中心-技术支持服务-启用系统休眠调试模式,问题选择无法休眠。然后放置一段时间,不要使用群晖。

我改了scemd的写入路径,放置了一晚上,从半夜1:00到中午15:38只出现了两个未知唤醒,以此作为示范调试。

黑群晖休眠日志分析

用sftp将日志文件复制出来,路径:/var/log/hibernationFull.log

从最早的4:24开始分析,搜索字符定位日志

黑群晖休眠日志分析

将无用的日志过滤掉,只保留dirtied inode xxxxxx (xxxxxx) on md0,其他的后缀都写到内存等地方,不会导致硬盘唤醒。

黑群晖休眠日志分析

这是已经过滤掉的日志,一眼就能看出问题,前两行(smbd)是SMB共享导致的唤醒,应该是路由器发出的请求,这个在DSM防火墙里添加445端口白名单就能解决。

(syno_hibernatio)则是日志程序,硬盘唤醒后,日志程序将日志写入硬盘,后面把调试模式关了就行了。

然后后面又发现了(logrotate)的写入,这个是日志分割,估计是分割(syno_hibernatio)的,不影响。

然后继续分析13:24的唤醒,过滤后的日志就比较多了,足足几十行。

黑群晖休眠日志分析

先把运行程序的写出来方便解决问题。

(upnpd) 顾名思义,upnp服务给路由器映射端口的

(syno_hibernatio)记录日志的,把调试模式关了就没了

(sh)就是个shell的解释器,结合上下日志就能看出来和(logrotate)绑定在一起运行的,把(logrotate)解决掉这个也就没有了

(logrotate)日志分割程序,把调试模式关了,也就不用分割日志了

(syslog-ng)一个综合日志工具

(synologaccd)应该也是个记录日志的

(synologrotated)看名字应该是群晖的日志分割程序,和(synologaccd)对应

(initctl)控制和管理init守护进程

(upnpd)就是13:24导致唤醒的原因,upnp我设置的端口映射,偶尔有一次唤醒很正常,其他的估计就是连带的日志。