====== Unix - Actively Monitor Multiple Logs ====== On Unix like systems, a handy method to monitor multiple logs simultaneously is combining [[https://linuxize.com/post/getting-started-with-tmux/|tmux]] and [[https://www.2daygeek.com/install-and-use-advanced-log-file-viewer-navigator-lnav-in-linux/|lnav]] (consult your OS for installing these utilities) This example will actively monitor ''/var/log/syslog''; ''/sbbs/data/sbbsecho.log''; ''/sbbs/exec/umonitor'' === setup tmux === First, setup [[https://linuxize.com/post/getting-started-with-tmux/|tmux]] to have 3 panes start with a bash script similar to: #!/bin/sh tmux new-session -s "Whatever Tmux" -d tmux split-window -v tmux split-window -h tmux -2 attach-session -d Once [[https://linuxize.com/post/getting-started-with-tmux/|tmux]] has started you'll see three panes each with a command prompt. Depending on how your [[https://linuxize.com/post/getting-started-with-tmux/|tmux]] key bindings are setup, (this example uses the default bindings CTRL+B+) navigate to each pane and launch your desired app. == lnav/tmux panes === This example uses the top full width pane to monitor ''/var/log/syslog'' as it is the most verbose of our active monitoring: $ sudo lnav /var/log/syslog Next, navigate to one of the split horizontal panes at the bottom of the window: $ lnav /sbbs/data/sbbsecho.log Lastly, navigate to the 3rd pane: $ /sbbs/exec/umonitor You should now have 3 panes, each monitoring one aspect of you Synchronet BBS activity. == example image === {{:monitor:basic-tmux.png?400|}} ===== Advanced tmux example ===== In this example, we create a bash script that sets tmux up for us and automatically launches a few goodies: me@localhost: $ nano sbbsmux #!/bin/bash # sbbsMux - SBBS Monitoring script tmux new-session -d -s sess >/dev/null tmux rename-window -t sess:0 'AlleyCat' tmux splitw -v -p 20 -t sess:0.0 tmux splitw -h -p 80 -t sess:0.1 #required; otherwise pane numbering is bs tmux select-pane -t sess:0.0 tmux splitw -h -p 5 -t sess:0.0 tmux send-keys -t sess:0.0 'lnav' Enter tmux send-keys -t sess:0.2 'sudo htop -u pi' Enter tmux send-keys -t sess:0.1 '/sbbs/exec/umonitor' Enter tmux select-pane -t sess:0.0 tmux new-window -t sess tmux rename-window -t sess:1 'BBS' tmux splitw -v -p 10 -t sess:1.0 tmux splitw -h -p 80 -t sess:1.1 tmux select-pane -t sess:1.0 tmux splitw -h -p 10 -t sess:1.0 tmux clock -t sess:1.1 tmux new-window -t sess tmux rename-window -t sess:2 'Monitor' tmux splitw -v -p 10 -t sess:2.0 tmux send-key -t sess:2.0 'lnav /sbbs/data/sbbsecho.log' Enter tmux select-pane -t sess:2.0 tmux splitw -h -p 5 -t sess:2.0 tmux clock -t sess:2.1 tmux select-window -t sess:0.0 tmux a -t sess ** note Edit 'tmux rename-window -t sess:x 'Accordingly' ** Save this as sbbsmux (or whatever) and chmod +x and launch it someone@somewhere: $ ./sbbsmux The output should look similar to: {{:monitor:sbbs-tmux-sbbsecho1.png?400|}} Navigate to the pane with the prompt, this was left available to preforming tasks. Here we will launch another monitoring tool: me@mynixbox: $ lnav /sbbs/data/sbbsecho.log Now we should see something similar to: {{:monitor:sbbs-tmux-sbbsecho.png?400|}} ===== See Also ===== * [[:monitor:|monitor index]] {{tag>}}