如何查看报错消息
遇到问题首先应该查看报错、查看日志,这里罗列一些常见的日志查看方式,供各位参考。
浏览器报错
页面操作着,突然报错了,只看报错消息有时不能很好的排查问题。需要查看 Chrome 开发者工具,查看具体的报错请求,以及返回的数据。可以参考《Chrome 开发者工具的使用》。
如果看了这些信息之后仍然无法解决,可以给 Nightingale 提 Github issue,入口在这里。在 issue 中描述具体的问题,以及 Chrome 开发者工具中看到的报错请求(主要是看请求的 url、payload、response)。
n9e、n9e-edge 的报错日志
以 n9e 举例,n9e-edge 也是类似的,其 stdout 日志的查看方式取决于进程启动方式:
- 如果是 nohup 启动的(生产环境不建议 nohup 启动),就看进程启动时把标准输出重定向到哪个文件了
- 如果是 systemd 启动的,就用 journalctl 查看,比如
journalctl -flu n9e
n9e 的配置文件中有日志相关的配置,如果指定了 Output 是 stdout,那么日志就会输出到标准输出,这时候就可以用上面的方式查看日志。如果 Output 配置的 file,那么日志就会输出到指定的目录下,具体是哪个目录,就是看 Dir 的配置,比如:
[Log]
# log write dir
Dir = "logs"
# log level: DEBUG INFO WARNING ERROR
Level = "DEBUG"
# stdout, stderr, file
Output = "file"
# # rotate by time
# KeepHours = 4
# # rotate by size
# RotateNum = 3
# # unit: MB
# RotateSize = 256
上面的配置表示日志输出到 logs 目录下。
如果 systemctl status n9e
看到进程启动失败,此时可以直接在前台启动 n9e 进程,这样有报错就可以直接打印在控制台,方便查看,通过下面的命令启动:
./n9e
如果是容器部署的,那就通过 docker logs 查看进程的 stdout 日志,如果日志配置输出到指定目录了,可以直接进入容器内部查看。当然,如果日志目录挂载了 volume,也可以在宿主上查看。
categraf 的报错日志
categraf 和 n9e 类似的,一般都是通过 systemd 启动的,所以查看日志也是通过 journalctl,比如:
journalctl -flu categraf
categraf 的日志里如果出现 E!
这样的关键字就表示 error 日志。提 issue 的时候贴一段 error 日志,有助于快速定位问题。