From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: [PATCH 3/3] Add Zabbix Agent Logs viewer in WebGUI
Date: Tue, 11 Apr 2023 13:48:38 +0100 [thread overview]
Message-ID: <F9F6D648-FCA9-47D6-B5DB-63869C72017A@ipfire.org> (raw)
In-Reply-To: <20230402110711.19593-4-robin.roevens@disroot.org>
[-- Attachment #1: Type: text/plain, Size: 21055 bytes --]
Hello Robin,
Thanks for the patch.
> On 2 Apr 2023, at 12:07, Robin Roevens <robin.roevens(a)disroot.org> wrote:
>
> - Adds a simple logs viewer page logs.cgi/zabbix_agentd.dat, based
> on logs.cgi/logs.dat, to the Logs menu in GUI.
Why is an extra CGI script needed? Could not this not be integrated into logs.dat?
-Michael
> - Changes permission of zabbix_agentd logfiles in logrotate config
> for GUI to be able to access the log files (640 to 644)
> - Changes file permissions of existing zabbix_agentd logfiles upon
> update of the package
> - Rootfile changes: added gui page, menu item-file, and addon
> language files
> - configroot rootfile changes: added logs menu item-file as comment
> - web-user-interface rootfile changes: added log viewer .dat as comment
> - Update language cache during install/uninstall
>
> Signed-off-by: Robin Roevens <robin.roevens(a)disroot.org>
> ---
> config/menu/EX-zabbix_agentd.menu | 5 +
> config/rootfiles/common/configroot | 1 +
> config/rootfiles/common/web-user-interface | 1 +
> config/rootfiles/packages/zabbix_agentd | 6 +
> config/zabbix_agentd/logrotate | 2 +-
> config/zabbix_agentd/zabbix_agentd.de.pl | 8 +
> config/zabbix_agentd/zabbix_agentd.en.pl | 8 +
> config/zabbix_agentd/zabbix_agentd.fr.pl | 8 +
> config/zabbix_agentd/zabbix_agentd.nl.pl | 8 +
> html/cgi-bin/logs.cgi/zabbix_agentd.dat | 341 +++++++++++++++++++++
> lfs/zabbix_agentd | 4 +
> src/paks/zabbix_agentd/install.sh | 1 +
> src/paks/zabbix_agentd/uninstall.sh | 1 +
> src/paks/zabbix_agentd/update.sh | 3 +
> 14 files changed, 396 insertions(+), 1 deletion(-)
> create mode 100644 config/menu/EX-zabbix_agentd.menu
> create mode 100644 config/zabbix_agentd/zabbix_agentd.de.pl
> create mode 100644 config/zabbix_agentd/zabbix_agentd.en.pl
> create mode 100644 config/zabbix_agentd/zabbix_agentd.fr.pl
> create mode 100644 config/zabbix_agentd/zabbix_agentd.nl.pl
> create mode 100644 html/cgi-bin/logs.cgi/zabbix_agentd.dat
>
> diff --git a/config/menu/EX-zabbix_agentd.menu b/config/menu/EX-zabbix_agentd.menu
> new file mode 100644
> index 000000000..dddd7f05e
> --- /dev/null
> +++ b/config/menu/EX-zabbix_agentd.menu
> @@ -0,0 +1,5 @@
> + $sublogs->{'95.zabbixagent'} = {'caption' => $Lang::tr{'zabbix agent logs'},
> + 'uri' => '/cgi-bin/logs.cgi/zabbix_agentd.dat',
> + 'title' => "$Lang::tr{'zabbix agent logs'}",
> + 'enabled' => 1
> + };
> diff --git a/config/rootfiles/common/configroot b/config/rootfiles/common/configroot
> index bc979cf2c..f12e2e0f0 100644
> --- a/config/rootfiles/common/configroot
> +++ b/config/rootfiles/common/configroot
> @@ -126,6 +126,7 @@ var/ipfire/menu.d/70-log.menu
> #var/ipfire/menu.d/EX-samba.menu
> #var/ipfire/menu.d/EX-tor.menu
> #var/ipfire/menu.d/EX-wlanap.menu
> +#var/ipfire/menu.d/EX-zabbix_agentd.menu
> var/ipfire/modem
> var/ipfire/modem-lib.pl
> #var/ipfire/modem/defaults
> diff --git a/config/rootfiles/common/web-user-interface b/config/rootfiles/common/web-user-interface
> index 33f0d30a7..bc17b4ce4 100644
> --- a/config/rootfiles/common/web-user-interface
> +++ b/config/rootfiles/common/web-user-interface
> @@ -49,6 +49,7 @@ srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromip.dat
> srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromport.dat
> srv/web/ipfire/cgi-bin/logs.cgi/summary.dat
> srv/web/ipfire/cgi-bin/logs.cgi/urlfilter.dat
> +#srv/web/ipfire/cgi-bin/logs.cgi/zabbix_agentd.dat
> srv/web/ipfire/cgi-bin/mac.cgi
> srv/web/ipfire/cgi-bin/mail.cgi
> srv/web/ipfire/cgi-bin/mdstat.cgi
> diff --git a/config/rootfiles/packages/zabbix_agentd b/config/rootfiles/packages/zabbix_agentd
> index 6f2c831d7..5b57026f5 100644
> --- a/config/rootfiles/packages/zabbix_agentd
> +++ b/config/rootfiles/packages/zabbix_agentd
> @@ -7,6 +7,7 @@ etc/zabbix_agentd/scripts
> etc/zabbix_agentd/zabbix_agentd.conf
> etc/zabbix_agentd/zabbix_agentd.conf.example
> etc/zabbix_agentd/zabbix_agentd.d
> +srv/web/ipfire/cgi-bin/logs.cgi/zabbix_agentd.dat
> usr/bin/zabbix_get
> usr/bin/zabbix_sender
> #usr/lib/modules
> @@ -16,6 +17,11 @@ usr/sbin/zabbix_agentd
> #usr/share/man/man1/zabbix_sender.1
> #usr/share/man/man8/zabbix_agentd.8
> var/ipfire/backup/addons/includes/zabbix_agentd
> +var/ipfire/addon-lang/zabbix_agentd.de.pl
> +var/ipfire/addon-lang/zabbix_agentd.en.pl
> +var/ipfire/addon-lang/zabbix_agentd.fr.pl
> +var/ipfire/addon-lang/zabbix_agentd.nl.pl
> +var/ipfire/menu.d/EX-zabbix_agentd.menu
> var/ipfire/zabbix_agentd
> var/ipfire/zabbix_agentd/zabbix_agentd_ipfire_mandatory.conf
> var/ipfire/zabbix_agentd/userparameters
> diff --git a/config/zabbix_agentd/logrotate b/config/zabbix_agentd/logrotate
> index 83bbca9fb..46fee44f2 100644
> --- a/config/zabbix_agentd/logrotate
> +++ b/config/zabbix_agentd/logrotate
> @@ -5,5 +5,5 @@
> delaycompress
> missingok
> notifempty
> - create 0640 zabbix zabbix
> + create 0644 zabbix zabbix
> }
> diff --git a/config/zabbix_agentd/zabbix_agentd.de.pl b/config/zabbix_agentd/zabbix_agentd.de.pl
> new file mode 100644
> index 000000000..910225242
> --- /dev/null
> +++ b/config/zabbix_agentd/zabbix_agentd.de.pl
> @@ -0,0 +1,8 @@
> +%tr = (
> +%tr,
> +
> +'zabbix agent logs' => "Zabbix Agent-Protokolldateien",
> +
> +);
> +
> +#EOF
> diff --git a/config/zabbix_agentd/zabbix_agentd.en.pl b/config/zabbix_agentd/zabbix_agentd.en.pl
> new file mode 100644
> index 000000000..1f523f926
> --- /dev/null
> +++ b/config/zabbix_agentd/zabbix_agentd.en.pl
> @@ -0,0 +1,8 @@
> +%tr = (
> +%tr,
> +
> +'zabbix agent logs' => "Zabbix Agent Logs",
> +
> +);
> +
> +#EOF
> diff --git a/config/zabbix_agentd/zabbix_agentd.fr.pl b/config/zabbix_agentd/zabbix_agentd.fr.pl
> new file mode 100644
> index 000000000..f7576ad2f
> --- /dev/null
> +++ b/config/zabbix_agentd/zabbix_agentd.fr.pl
> @@ -0,0 +1,8 @@
> +%tr = (
> +%tr,
> +
> +'zabbix agent logs' => "Rapports de Zabbix Agent",
> +
> +);
> +
> +#EOF
> diff --git a/config/zabbix_agentd/zabbix_agentd.nl.pl b/config/zabbix_agentd/zabbix_agentd.nl.pl
> new file mode 100644
> index 000000000..1f523f926
> --- /dev/null
> +++ b/config/zabbix_agentd/zabbix_agentd.nl.pl
> @@ -0,0 +1,8 @@
> +%tr = (
> +%tr,
> +
> +'zabbix agent logs' => "Zabbix Agent Logs",
> +
> +);
> +
> +#EOF
> diff --git a/html/cgi-bin/logs.cgi/zabbix_agentd.dat b/html/cgi-bin/logs.cgi/zabbix_agentd.dat
> new file mode 100644
> index 000000000..047ca2e98
> --- /dev/null
> +++ b/html/cgi-bin/logs.cgi/zabbix_agentd.dat
> @@ -0,0 +1,341 @@
> +#!/usr/bin/perl
> +###############################################################################
> +# #
> +# IPFire.org - A linux based firewall #
> +# Copyright (C) 2020 IPFire Team <info(a)ipfire.org> #
> +# #
> +# This program is free software: you can redistribute it and/or modify #
> +# it under the terms of the GNU General Public License as published by #
> +# the Free Software Foundation, either version 3 of the License, or #
> +# (at your option) any later version. #
> +# #
> +# This program is distributed in the hope that it will be useful, #
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of #
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
> +# GNU General Public License for more details. #
> +# #
> +# You should have received a copy of the GNU General Public License #
> +# along with this program. If not, see <http://www.gnu.org/licenses/>. #
> +# #
> +###############################################################################
> +
> +use strict;
> +
> +# enable only the following on debugging purpose
> +# use warnings;
> +# use CGI::Carp 'fatalsToBrowser';
> +
> +require '/var/ipfire/general-functions.pl';
> +require "${General::swroot}/lang.pl";
> +require "${General::swroot}/header.pl";
> +
> +my %color = ();
> +my %mainsettings = ();
> +&General::readhash("${General::swroot}/main/settings", \%mainsettings);
> +&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
> +
> +use POSIX();
> +
> +my %cgiparams=();
> +my %logsettings=();
> +my $errormessage = '';
> +
> +my @shortmonths = ( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
> + 'Sep', 'Oct', 'Nov', 'Dec' );
> +my @longmonths = ( $Lang::tr{'january'}, $Lang::tr{'february'}, $Lang::tr{'march'},
> + $Lang::tr{'april'}, $Lang::tr{'may'}, $Lang::tr{'june'}, $Lang::tr{'july'}, $Lang::tr{'august'},
> + $Lang::tr{'september'}, $Lang::tr{'october'}, $Lang::tr{'november'},
> + $Lang::tr{'december'} );
> +
> +my @now = localtime();
> +my $dow = $now[6];
> +my $doy = $now[7];
> +my $tdoy = $now[7];
> +my $year = $now[5]+1900;
> +
> +$cgiparams{'DAY'} = $now[3];
> +$cgiparams{'MONTH'} = $now[4];
> +$cgiparams{'ACTION'} = '';
> +
> +&Header::getcgihash(\%cgiparams);
> +$logsettings{'LOGVIEW_REVERSE'} = 'off';
> +&General::readhash("${General::swroot}/logging/settings", \%logsettings);
> +${Header::viewsize} = defined ($logsettings{'LOGVIEW_VIEWSIZE'}) ? $logsettings{'LOGVIEW_VIEWSIZE'} : 150;
> +
> +my $start = ($logsettings{'LOGVIEW_REVERSE'} eq 'on') ? 0x7FFFF000 : 0; #index of first line number to display
> +
> +if ($ENV{'QUERY_STRING'} && $cgiparams{'ACTION'} ne $Lang::tr{'update'}) {
> + my @temp = split(',',$ENV{'QUERY_STRING'});
> + $start = $temp[0];
> + $cgiparams{'MONTH'} = $temp[1];
> + $cgiparams{'DAY'} = $temp[2];
> +}
> +
> +if (!($cgiparams{'MONTH'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11)$/) ||
> + !($cgiparams{'DAY'} =~ /^(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)$/)) {
> + $cgiparams{'DAY'} = $now[3];
> + $cgiparams{'MONTH'} = $now[4];
> +} elsif($cgiparams{'ACTION'} eq '>>') {
> + my @temp_then=();
> + my @temp_now = localtime(time);
> + $temp_now[4] = $cgiparams{'MONTH'};
> + $temp_now[3] = $cgiparams{'DAY'};
> + @temp_then = localtime(POSIX::mktime(@temp_now) + 86400);
> + ## Retrieve the same time on the next day +
> + ## 86400 seconds in a day
> + $cgiparams{'MONTH'} = $temp_then[4];
> + $cgiparams{'DAY'} = $temp_then[3];
> +} elsif($cgiparams{'ACTION'} eq '<<') {
> + my @temp_then=();
> + my @temp_now = localtime(time);
> + $temp_now[4] = $cgiparams{'MONTH'};
> + $temp_now[3] = $cgiparams{'DAY'};
> + @temp_then = localtime(POSIX::mktime(@temp_now) - 86400);
> + ## Retrieve the same time on the next day -
> + ## 86400 seconds in a day
> + $cgiparams{'MONTH'} = $temp_then[4];
> + $cgiparams{'DAY'} = $temp_then[3];
> +}
> +
> +# Find in which file.gz is the log. Can be calculated because MONTHLY ROTATING of zabbix_agentd.log
> +my $gzindex;
> +my $date = $cgiparams{'DAY'} == 0 ? '' : $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
> +
> +my @then = ();
> +
> +my $monthstr = ($cgiparams{'MONTH'} + 1) <= 9 ? "0" . ($cgiparams{'MONTH'} + 1) : ($cgiparams{'MONTH'} + 1);
> +my $daystr = $cgiparams{'DAY'} == 0 ? '..' : $cgiparams{'DAY'} <= 9 ? "0$cgiparams{'DAY'}" : "$cgiparams{'DAY'}";
> +my $yearstr = $year;
> +
> +# Calculate time. If future date, calculate for past year !!!
> +if (( $cgiparams{'MONTH'} eq $now[4]) && ($cgiparams{'DAY'} > $now[3]) ||
> + ( $cgiparams{'MONTH'} > $now[4] ) ) {
> + @then = localtime(POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1901 ));
> + $date = "$longmonths[$cgiparams{'MONTH'}] $date, ". int($year-1);
> + $yearstr--;
> +} else {
> + @then = localtime(POSIX::mktime( 0, 0, 0, $cgiparams{'DAY'}, $cgiparams{'MONTH'}, $year - 1900 ));
> + $date = "$longmonths[$cgiparams{'MONTH'}] $date, $year";
> +}
> +
> +$gzindex = $now[4] - $then[4];
> +$gzindex += 12 if $gzindex < 0;
> +
> +my $lines = 0;
> +my @log=();
> +
> +my $loop = 1;
> +my $filestr = 0;
> +my $search_for_end = 0;
> +
> +while ($gzindex >=0 && $loop) {
> + # calculate file name
> + if ($gzindex == 0) {
> + $filestr = "/var/log/zabbix/zabbix_agentd.log";
> + } else {
> + $filestr = "/var/log/zabbix/zabbix_agentd.log.$gzindex";
> + $filestr = "$filestr.gz" if -f "$filestr.gz";
> + }
> + # now read file if existing
> + if (open (FILE,($filestr =~ /.gz$/ ? "gzip -dc $filestr |" : $filestr))) {
> + READ:while (<FILE>) {
> + my $line = $_;
> + if ($line =~ /^ *[0-9]+:${yearstr}${monthstr}${daystr}:[0-9]{6}\.[0-9]{3} (.*)/) {
> + # when standard viewing, just keep in memory the correct slice
> + # it starts at '$start' and size is $viewport
> + # If export, then keep all lines...
> + if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}){
> + $log[$lines++] = "$line";
> + } else {
> + if ($lines++ < ($start + $Header::viewsize)) {
> + push(@log,"$line");
> + if (@log > $Header::viewsize) {
> + shift (@log);
> + }
> + }
> + }
> + $search_for_end = 1; # we find the start of slice, can look for end now
> + } else {
> + if ($search_for_end == 1) {
> + #finish read files when date is over (test month equality only)
> + $line =~ /^ *[0-9]+:[0-9]{4}([0-9]{2})([0-9]{2}):[0-9]{6}\.[0-9]{3} .*$/;
> + $loop = 0 if ( ($1 ne $monthstr) || ( ($daystr ne '..') && ($daystr ne $2) ) );
> + }
> + }
> + }
> + close (FILE);
> + }
> + $gzindex--; # will try next gz file eg 40,39,38,.... because it may have holes
> +}
> +
> +if ($cgiparams{'ACTION'} eq $Lang::tr{'export'}) {
> + print "Content-type: text/plain\n\n";
> + print "IPFire $Lang::tr{'zabbix agent logs'}\r\n";
> + print "$Lang::tr{'date'}: $date\r\n\r\n";
> +
> + if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
> +
> + foreach $_ (@log) {
> + /^ *([0-9]+):[0-9]{6}([0-9]{2}):([0-9]{2})([0-9]{2})([0-9]{2}\.[0-9]{3}) (.*)$/;
> + my $pid = $1;
> + my $day = $2;
> + $day =~ tr / /0/;
> + my $time = $cgiparams{'DAY'} ? "$3:$4:$5" : "$day/$3:$4:$5" ;
> + print "$time ($pid) $6\r\n";
> + }
> + exit 0;
> +}
> +
> +&Header::showhttpheaders();
> +
> +&Header::openpage($Lang::tr{'zabbix agent logs'}, 1, '');
> +
> +&Header::openbigbox('100%', 'left', '', $errormessage);
> +
> +if ($errormessage) {
> + &Header::openbox('100%', 'left', $Lang::tr{'error messages'});
> + print "<font class='base'>$errormessage </font>\n";
> + &Header::closebox();
> +}
> +
> +&Header::openbox('100%', 'left', "$Lang::tr{'settings'}:");
> +
> +print <<END
> +<form method='post' action='$ENV{'SCRIPT_NAME'}'>
> +<table width='100%'>
> +<tr>
> + <td width='10%' class='base'>$Lang::tr{'month'}:</td>
> + <td width='25%'>
> + <select name='MONTH'>
> +END
> +;
> +for (my $month = 0; $month < 12; $month++) {
> + print "\t<option ";
> + if ($month == $cgiparams{'MONTH'}) {
> + print "selected='selected' "; }
> + print "value='$month'>$longmonths[$month]</option>\n";
> +}
> +print <<END
> + </select>
> + </td>
> + <td width='10%' class='base'>$Lang::tr{'day'}:</td>
> + <td width='25%'>
> + <select name='DAY'>
> +END
> +;
> +print "<option value='0'>$Lang::tr{'all'}</option>\n";
> +for (my $day = 1; $day <= 31; $day++) {
> + print "\t<option ";
> + if ($day == $cgiparams{'DAY'}) {
> + print "selected='selected' "; }
> + print "value='$day'>$day</option>\n";
> +}
> +print <<END
> +</select>
> +</td>
> +<td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day before'}' value='<<' /></td>
> +<td width='5%' align='center'><input type='submit' name='ACTION' title='$Lang::tr{'day after'}' value='>>' /></td>
> +<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'update'}' /></td>
> +<td width='10%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'export'}' /></td>
> +</tr>
> +</table>
> +</form>
> +END
> +;
> +
> +&Header::closebox();
> +
> +&Header::openbox('100%', 'left', $Lang::tr{'log'});
> +print "<p><b>$Lang::tr{'total hits for log section'} $date: $lines</b></p>";
> +
> +$start = $lines - ${Header::viewsize} if ($start >= $lines - ${Header::viewsize});
> +$start = 0 if ($start < 0);
> +
> +my $prev;
> +if ($start == 0) {
> + $prev = -1;
> +} else {
> + $prev = $start - ${Header::viewsize};
> + $prev = 0 if ( $prev < 0);
> +}
> +
> +my $next;
> +if ($start == $lines - ${Header::viewsize}) {
> + $next = -1;
> +} else {
> + $next = $start + ${Header::viewsize};
> + $next = $lines - ${Header::viewsize} if ($next >= $lines - ${Header::viewsize});
> +}
> +
> +if ($logsettings{'LOGVIEW_REVERSE'} eq 'on') { @log = reverse @log; }
> +if ($lines != 0) { &oldernewer(); }
> +
> +print <<END
> +<table width='100%' class='tbl'>
> +<tr>
> + <th width='15%' align='center' class='boldbase'><b>$Lang::tr{'time'}</b></th>
> + <th width='10%' align='center' class='boldbase'><b>PID</b></th>
> + <th width='75%'> </th>
> +</tr>
> +END
> +;
> +
> +$lines = 0;
> +foreach $_ (@log) {
> + /^ *([0-9]+):[0-9]{6}([0-9]{2}):([0-9]{2})([0-9]{2})([0-9]{2}\.[0-9]{3}) (.*)$/;
> + my $pid = $1;
> + my $day = $2;
> + $day =~ tr / /0/;
> + my $time = $cgiparams{'DAY'} ? "$3:$4:$5" : "$day/$3:$4:$5" ;
> + my $data = $6;
> + my $col="";
> +
> + if ($lines % 2) {
> + print "<tr>";
> + $col="bgcolor='$color{'color20'}'";
> + } else {
> + print "<tr>";
> + $col="bgcolor='$color{'color22'}'";
> + }
> + print "<td $col>$time<td $col>$pid<td $col>" .&Header::cleanhtml ("$data", 'y') . "</td></tr>\n";
> + $lines++;
> +}
> +print "</table>";
> +
> +&oldernewer();
> +
> +&Header::closebox();
> +
> +&Header::closebigbox();
> +
> +&Header::closepage();
> +
> +sub oldernewer {
> + print <<END
> +<table width='100%'>
> +<tr>
> +END
> + ;
> +
> + print "<td align='center' width='50%'>";
> + if ($prev != -1) {
> + print "<a href='/cgi-bin/logs.cgi/zabbix_agentd.dat?$prev,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'older'}</a>";
> + } else {
> + print "$Lang::tr{'older'}";
> + }
> + print "</td>\n";
> +
> + print "<td align='center' width='50%'>";
> + if ($next >= 0) {
> + print "<a href='/cgi-bin/logs.cgi/zabbix_agentd.dat?$next,$cgiparams{'MONTH'},$cgiparams{'DAY'}'>$Lang::tr{'newer'}</a>";
> + } else {
> + print "$Lang::tr{'newer'}";
> + }
> + print "</td>\n";
> +
> + print <<END
> +</tr>
> +</table>
> +END
> + ;
> +}
> diff --git a/lfs/zabbix_agentd b/lfs/zabbix_agentd
> index 281bd9fa3..49b8440f8 100644
> --- a/lfs/zabbix_agentd
> +++ b/lfs/zabbix_agentd
> @@ -139,6 +139,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> -mkdir -pv /etc/logrotate.d
> install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/logrotate \
> /etc/logrotate.d/zabbix_agentd
> +
> + # Install addon-specific language-files.
> + install -v -m 004 $(DIR_SRC)/config/zabbix_agentd/zabbix_agentd.*.pl \
> + /var/ipfire/addon-lang/
>
> @rm -rf $(DIR_APP)
> @$(POSTBUILD)
> diff --git a/src/paks/zabbix_agentd/install.sh b/src/paks/zabbix_agentd/install.sh
> index 80632d1ec..465ea7e8a 100644
> --- a/src/paks/zabbix_agentd/install.sh
> +++ b/src/paks/zabbix_agentd/install.sh
> @@ -32,6 +32,7 @@ if ! getent passwd zabbix; then
> fi
>
> extract_files
> +/usr/local/bin/update-lang-cache
>
> # Create symlinks for runlevel interaction.
> ln -sf ../init.d/zabbix_agentd /etc/rc.d/rc3.d/S65zabbix_agentd
> diff --git a/src/paks/zabbix_agentd/uninstall.sh b/src/paks/zabbix_agentd/uninstall.sh
> index edff3b818..4342384de 100644
> --- a/src/paks/zabbix_agentd/uninstall.sh
> +++ b/src/paks/zabbix_agentd/uninstall.sh
> @@ -25,6 +25,7 @@
> stop_service ${NAME}
> make_backup ${NAME}
> remove_files
> +/usr/local/bin/update-lang-cache
>
> # Remove init-scripts and symlinks
> rm -rfv /etc/rc.d/rc*.d/*zabbix_agentd
> diff --git a/src/paks/zabbix_agentd/update.sh b/src/paks/zabbix_agentd/update.sh
> index a41e72ab4..f01e32810 100644
> --- a/src/paks/zabbix_agentd/update.sh
> +++ b/src/paks/zabbix_agentd/update.sh
> @@ -40,6 +40,9 @@ if [ -f /etc/sudoers.d/zabbix ]; then
> fi
> fi
>
> +# Fix permissions on /var/log/zabbix/* to allow GUI to read the logfiles.
> +find /var/log/zabbix -perm 640 -exec chmod 644 \{\} \;
> +
> extract_backup_includes
> ./uninstall.sh
> ./install.sh
> --
> 2.40.0
>
>
> --
> Dit bericht is gescanned op virussen en andere gevaarlijke
> inhoud door MailScanner en lijkt schoon te zijn.
>
next prev parent reply other threads:[~2023-04-11 12:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-02 11:07 [PATCH] zabbix_agentd: Update to 6.0.15 + WebGUI Log viewer Robin Roevens
2023-04-02 11:07 ` [PATCH 1/3] zabbix_agentd: Update to 6.0.15 (LTS) Robin Roevens
2023-04-03 16:32 ` Adolf Belka
2023-04-02 11:07 ` [PATCH 2/3] Bugfix: compatibility with grep 3.8+ Robin Roevens
2023-04-03 16:35 ` Adolf Belka
2023-04-02 11:07 ` [PATCH 3/3] Add Zabbix Agent Logs viewer in WebGUI Robin Roevens
2023-04-11 12:48 ` Michael Tremer [this message]
2023-04-11 20:33 ` Robin Roevens
2023-04-18 18:45 ` [PATCH v2 0/3] zabbix_agentd: Update to 6.0.16 + add log to logviewer Robin Roevens
2023-04-18 18:45 ` [PATCH v2 1/3] zabbix_agentd: Update to 6.0.16 (LTS) Robin Roevens
2023-04-18 18:45 ` [PATCH v2 2/3] Bugfix: compatibility with grep 3.8+ Robin Roevens
2023-04-18 18:45 ` [PATCH v2 3/3] Add Zabbix Agent to logviewer Robin Roevens
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=F9F6D648-FCA9-47D6-B5DB-63869C72017A@ipfire.org \
--to=michael.tremer@ipfire.org \
--cc=development@lists.ipfire.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox