What's new

uiScribe uiScribe - Custom System Log page for "scribed" logs

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Jack Yaz

Part of the Furniture
v1.4.5
Updated 2021-08-06

Customise the System Log page to show log files created by Scribe (syslog-ng). Requires Scribe by @cmkelley
Support for Scribe can be found here: https://www.snbforums.com/threads/scribe-syslog-ng-and-logrotate-installer.55853/

uiScribe is free to use under the GNU General Public License version 3 (GPL 3.0).

This project is hosted on GitHub

Love the script and want to support future development? Any and all donations gratefully received!
PayPal donation
Buy me a coffee

Supported firmware versions
You must be running firmware Merlin 384.15/384.13_4 (or later) Asuswrt-Merlin

Installation
Using your preferred SSH client/terminal, copy and paste the following command, then press Enter:
Code:
/usr/sbin/curl --retry 3 "https://raw.githubusercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" && chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install

Usage
WebUI

uiScribe can be configured via the WebUI, on the System Log page.

Command Line
To launch the uiScribe menu after installation, use:
Code:
uiScribe

If this does not work, you will need to use the full path:
Code:
/jffs/scripts/uiScribe
 
Last edited:
Screenshots
b2a7129ae7.png
73d693ecb2.png
 
Last edited:
Great work Jack !
No issue with firmware: beta 384.12 beta1.
I don't have to SSH router to check separate logs from now :D
 
There's probably going to be a bug I've just thought of in that the logs may not be populated after a reboot. Running uiScribe in a terminal should fix this. The reason is that the symlinks will fail as entware won't have mounted
 
There's probably going to be a bug I've just thought of in that the logs may not be populated after a reboot. Running uiScribe in a terminal should fix this. The reason is that the symlinks will fail as entware won't have mounted
I look forward to using this once it passes beta :D. Great job, Jack.
 
There's probably going to be a bug I've just thought of in that the logs may not be populated after a reboot. Running uiScribe in a terminal should fix this. The reason is that the symlinks will fail as entware won't have mounted
I am feeling adventurous and might just go ahead and start testing.
 
This looks like you may have me hooked! I'll hang off for right now but I expect by the end of the week I'll be all hands in. Awesome work @Jack Yaz :D
 
I'm a crash test dummy IRL.

This installs, and messages shows OK. The other logs have headings like this:
Code:
Block source osquery(file("/var/log/osquery/osqueryd.results") prefix(".osquery.") ...) { Messages (click to show/hide)
and in the box show "Log goes here".

I don't have all the examples scribe might install, but I have pixelserv-tls (irregularly named, maintaining my respect for @kvic's work) and skynet-0 and openvpn. How do you choose what will be shown and what not?

upload_2019-6-10_10-10-45.png
 
Last edited:
I'm a crash test dummy IRL.

This installs, and messages shows OK. The other logs have headings like this:
Code:
Block source osquery(file("/var/log/osquery/osqueryd.results") prefix(".osquery.") ...) { Messages (click to show/hide)
and in the box show "Log goes here".

I don't have all the examples scribe might install, but I have pixelserv-tls (irregularly named, maintaining my respect for @kvic's work) and skynet-0 and openvpn. How do you choose what will be shown and what not?

View attachment 18158
I made an assumption that all logs would be pointed to /opt/var/log and end in .log

EDIT: isn't /var/log part of tmpfs rather than a persistent storage location?
 
Last edited:
1. I think it is a safe assumption that all logs would be pointed to /opt/var/log. I don't know why some of these blocks are referring to /var/log.
2. It is not a safe assumption that all logs end in .log, but I think it is a good practice to enforce. Messages, for example, doesn't end in .log, and there is nothing that guides someone to define a destination file as including it (I have a file called startupmessages, for example, which is the syslog.log file up to killing syslogd and starting syslog-ng). I'm assuming this way you can ignore the rotated logs, compressed or not. We also have the dnsmasq.log created by diversion; I have a collectd.log file.
3. I do not have a number of other logs that are not relevant to me: the wlcevent log, the crash log or netdata logs.
 
Last edited:
1. I think it is a safe assumption that all logs would be pointed to /opt/var/log. I don't know why some of these blocks are referring to /var/log.
2. It is not a safe assumption that all logs end in .log, but I think it is a good practice to enforce. Messages, for example, doesn't end in .log, and there is nothing that guides someone to define a destination file as including it (I have a file called startupmessages, for example, which is the syslog.log file up to killing syslogd and starting syslog-ng). I'm assuming this way you can ignore the rotated logs, compressed or not. We also have the dnsmasq.log created by diversion; I have a collectd.log file.
3. I do not have a number of other logs that are not relevant to me: the wlcevent log, the crash log or netdata logs.
I can improve how I parse for logs - the assumption was deemed to fit 90% of the intended user base, so I could get a PoC out there to see if anyone would be interested :)

The list of logs is pulled from syslog-ng itself, and whichever filters you have in place

dnsmasq.log simply grows too large to render well
 
1. I think it is a safe assumption that all logs would be pointed to /opt/var/log. I don't know why some of these blocks are referring to /var/log.
2. It is not a safe assumption that all logs end in .log, but I think it is a good practice to enforce. Messages, for example, doesn't end in .log, and there is nothing that guides someone to define a destination file as including it (I have a file called startupmessages, for example, which is the syslog.log file up to killing syslogd and starting syslog-ng). I'm assuming this way you can ignore the rotated logs, compressed or not. We also have the dnsmasq.log created by diversion; I have a collectd.log file.
3. I do not have a number of other logs that are not relevant to me: the wlcevent log, the crash log or netdata logs.
Another good practice people need to adhere to is to set maximum log sizes for rotation at less than 2Mb, preferably 1M or less. No real science behind that, But a 22Mb log makes it choke even on an 86U.
 
Another good practice people need to adhere to is to set maximum log sizes for rotation at less than 2Mb, preferably 1M or less. No real science behind that, But a 22Mb log makes it choke even on an 86U.
Interesting. My pixelserv-tls at log level 2 is generating about 16M a day, so it rotates every day and the older ones compress to less than 1MB. Only dnsmasq is anything like that size.

Pixelserv-tls is one of the log files I never need to see in the webgui.
 
Thank you Jack Yaz!

Installed on RT-AC86U running 384.12 Beta 1, no issues. :)
 
Looks good and very useful. How can I set log levels that were on this page prior installing the script?
 
I can't even start the installation!

Code:
admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  48433      0 --:--:-- --:--:-- --:--:-- 59802
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  69228      0 --:--:-- --:--:-- --:--:-- 92978
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root#
 
I can't even start the installation!

Code:
admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  48433      0 --:--:-- --:--:-- --:--:-- 59802
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  69228      0 --:--:-- --:--:-- --:--:-- 92978
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root#

It's installed. :)
 
I can't even start the installation!

Code:
admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  48433      0 --:--:-- --:--:-- --:--:-- 59802
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root# /usr/sbin/curl --retry 3 "https://raw.githubus
ercontent.com/jackyaz/uiScribe/master/uiScribe.sh" -o "/jffs/scripts/uiScribe" &&
chmod 0755 /jffs/scripts/uiScribe && /jffs/scripts/uiScribe install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 12738  100 12738    0     0  69228      0 --:--:-- --:--:-- --:--:-- 92978
uiScribe: Welcome to uiScribe v0.2.0, a script by JackYaz

uiScribe: Checking your router meets the requirements for uiScribe

admin@RT-AC87R-3210:/tmp/home/root#

Did you install Scribe?
Code:
/usr/sbin/curl --retry 3 "https://raw.githubusercontent.com/cynicastic/scribe/master/scribe" -o "/jffs/scripts/scribe" && chmod 0755 /jffs/scripts/scribe && /jffs/scripts/scribe install
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top