glog
Logging solution built with simplicity in mind! Setup your own central logging server easily! Written solenly in Go with two external packages: viper and fsnotify.
Supported architectures: x86_64, i136, i686, aarch64 and arm*.
Supported Linux distributions: ubuntu, debian, linuxmint, fedora, centos, rhel, rocky, almalinux, arch and manjaroo.
Why use glog?
- Simple configuration - no need to dive deep into vast documentation. 4-5 config variables is all you need!
- Deploy in seconds - install logging server and client, specify desired files and watch your logs fly!
- If you just need to stream your log files as they are (without any complex proccessing) then there is no easier way than glog!
How to install glog?
- Easiest way is to download the installation script and run it (sudo privileges required):
bash <(curl -sSLf https://glog.proxilius.eu/download/install.sh)
It contains the service file aside from glog itself and installs it on your system.
-
Edit configuration file in
/etc/glog/config.tomlto fit your case -
Run glog service:
systemctl start glog
For more info about configuration see Configuration section.
Download links:
- https://glog.proxilius.eu/download/glog-amd64.tar.gz
- https://glog.proxilius.eu/download/glog-arm64.tar.gz
- https://glog.proxilius.eu/download/glog-arm.tar.gz
- https://glog.proxilius.eu/download/glog-386.tar.gz
How it works?
When installed and started glog server starts listening on address specified in configuration variable addr.
Each glog client watches files that you specified in configuration in logfiles section, then sends them to glog logging server specified in addr.
Server stores logs from clients in separate directories in /var/log/glog/[CLIENT_NAME]. Log files are stored in files named as configured by client
Plans
- SSL/TLS support
- Gracefull shutdown
Configuration
There are only 4 main variables:
name(string) - name of your glog instance, e.g.:
name="MyServer"
mode(string) - running mode,serverorclient, e.g.:
mode="server"
addr(string) - inservermode it specifies the listening address of glog server; inclientmode thats the server address this client will connect to, e.g.:
addr="0.0.0.0:12345"
debug(bool) - enables debug mode, additional debug info will be printed in/var/log/glog/glog.log, e.g.:
debug=false
Client only variable:
logfiles(map) - specify the final log name as key and path to log file to be watched as variable, e.g.:
[logfiles]
"syslog"="/var/log/syslog"
Here’s an example of server configuration:
name="MyServer"
mode="server"
addr="0.0.0.0:12345"
debug=false
Client configuration example:
name="MyClient"
mode="client"
addr="123.123.123.123:12345"
debug=false
[logfiles]
"syslog"="/var/log/syslog"
"auth.log"="/var/log/auth.log"
"kern.log"="/var/log/kern.log"