远程记录OpenWRT日志

默认的OpenWRT日志放在/tmp/log下,这样有个问题就是每次重启就会丢失全部的日志,于是公司的路由器每次重启之后连为什么重启都不知道

于是就想办法把日志迁移出来,好在OpenWRT本身就附带了远程日志打印功能,于是直接在内网中开一个rsyslog服务器就可以了

在/etc/rsyslog.d/下新建一个router.conf

内容如下:

module(load="imtcp")
module(load="imudp")

input(type="imudp"
     port="514"
     ruleset="routerSet")

input(type="imtcp"
     port="514"
     ruleset="routerSet")

# rsyslog RuleSets
ruleset(name="routerSet") {
    action(type="omfile"
        File="/var/log/router.log")

}

(这个配置文件可以在 http://www.rsyslog.com/rsyslog-configuration-builder/ 生成)
接下来启动一下rsyslog服务就可以了

systemctl restart rsyslog

在OpenWRT端需要做的工作:
vim /etc/config/system

在config system下增加这么几行

        option log_remote '1'
        option log_ip '192.168.0.13'  # 你的日志i服务器内网IP
        option log_port '514'
        option log_size '0'  # 如果不加这个可能会丢失部分日志

最后那个log_size其实是日志缓冲区的意思,如果使用它默认的,那么它基本上就不向远程提交任何日志了,因为其实生成的日志大小非常小,所以它一直都放在缓存里,直到死机重启……这样远端还是看不到任何日志,改成0就好了

这样到远端去看看/var/log/router.log
就可以看到对应的日志了

评论

此博客中的热门博文

转一下关于Fuck的用法

用OpenWRT打造自动翻墙路由器(详解篇)