Line 475:
Line 475:
/usr/bin/sudo -u nut /usr/bin/sudo /sbin/e-smith/signal-event halt
/usr/bin/sudo -u nut /usr/bin/sudo /sbin/e-smith/signal-event halt
−
=Configure Nut-cgi Monitor Scripts=
+
=Configurer les cripts du monieteur Nut-cgi=
−
The nut-cgi rpm contains scripts that can be run via the webserver to monitor the UPS(s).
+
Le paquet nut-cgi contient des scripts qui peuvent être exécutés via le serveur Web pour surveiller la(es) ASI.
+
+
===Téléchargement et installation===
+
<tabs container><tab name="For SME 10">
+
You have to enable the epel repository:
+
yum install smeserver-extrarepositories-epel -y
+
+
then install nut-cgi:
+
yum install --enablerepo=epel nut-cgi
+
+
then configure it the SME way:
+
Edit file /etc/ups/hosts.conf and add.
+
mkdir -p /etc/e-smith/templates-custom/etc/ups/hosts.conf
+
echo 'MONITOR UPS@localhost "local UPS"' >/etc/e-smith/templates-custom/etc/ups/hosts.conf/10localhost
+
expand-template /etc/ups/hosts.conf
+
+
Httpd template
+
+
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
+
cd /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
+
+
Now edit and create a new file 92nutupscmon with the following content
+
+
{
+
$OUT = "";
+
my $allow = 'all';
+
my $pass = '0';
+
my $satisfy = 'all';
+
my $name = $nut{'Name'} || 'NUT UPS Daemon Monitoring';
+
my $PublicAccess = $nut{'PublicAccess'} || "local";
+
+
for ('exit-if-none')
+
{
+
if ($PublicAccess eq 'none')
+
{
+
next;
+
}
+
elsif ($PublicAccess eq 'local')
+
{
+
$allow = "ip $localAccess";
+
$pass = 0;
+
$satisfy = 'All';
+
}
+
elsif ($PublicAccess eq 'local-pw')
+
{
+
$allow = "ip $localAccess";
+
$pass = 1;
+
$satisfy = 'All';
+
}
+
elsif ($PublicAccess eq 'global')
+
{
+
$allow = 'all granted';
+
$pass = 0;
+
$satisfy = 'All';
+
}
+
elsif ($PublicAccess eq 'global-pw')
+
{
+
$allow = 'all granted';
+
$pass = 1;
+
$satisfy = 'All';
+
}
+
elsif ($PublicAccess eq 'global-pw-remote')
+
{
+
$allow = "ip $localAccess";
+
$pass = 1;
+
$satisfy = 'Any';
+
}
+
+
$OUT .= "#------------------------------------------------------------\n";
+
$OUT .= "# nut multimon - $name\n";
+
$OUT .= "#------------------------------------------------------------\n";
+
+
{
+
if ((exists $nut{'URL'}) && ($nut{'URL'} ne <nowiki>''</nowiki>)) {
+
$OUT .= "Alias /$nut{'URL'} /var/www/nut-cgi-bin\n";
+
}
+
}
+
+
$OUT .= "Alias /nut /var/www/nut-cgi-bin\n";
+
+
$OUT .= "\n";
+
$OUT .= "<Directory /var/www/nut-cgi-bin>\n";
+
$OUT .= " DirectoryIndex upsstats.cgi\n";
+
$OUT .= " Options +ExecCGI\n";
+
$OUT .= " <Require$satisfy>\n" if ($pass);
+
$OUT .= " Require $allow\n";
+
if ($pass)
+
{
+
$OUT .= " AuthName $name\n";
+
$OUT .= " AuthType Basic\n";
+
$OUT .= " AuthExternal pwauth\n";
+
$OUT .= " require valid-user\n";
+
$OUT .= " </Require$satisfy>\n";
+
}
+
$OUT .= "</Directory>\n";
+
}
+
}
+
+
Configure databases and expand the template
+
+
config setprop nut PublicAccess local
+
/sbin/e-smith/expand-template /etc/httpd/conf/httpd.conf
+
+
{{Note box|The above sets access to the scripts to ''local'' ip addresses only. See the [[Web_Application_RPM#New_DB_settings]] for further info and settings}}
+
+
Restart the web server
+
+
systemctl restart httpd-e-smith
+
+
</tab><tab name="For SME 9 and before">
+
You have to enable the '''[[epel]]''' repositories.
+
yum install --enablerepo=epel nut-cgi
+
+
Edit file /etc/ups/hosts.conf and add.
+
+
MONITOR UPS@localhost "local UPS"
+
+
The nut-cgi rpm contains three cgi scripts. The rpm does not install them correctly for SME however so the following modifications are needed.
+
+
mkdir -p /opt/nut-cgi-bin
+
chown root:www /opt/nut-cgi-bin
+
mv /var/www/nut-cgi-bin/upsstats.cgi /opt/nut-cgi-bin
+
mv /var/www/nut-cgi-bin/upsset.cgi /opt/nut-cgi-bin
+
mv /var/www/nut-cgi-bin/upsimage.cgi /opt/nut-cgi-bin
+
chown root:www /opt/nut-cgi-bin/*
+
chmod 750 /opt/nut-cgi-bin/*
+
mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
+
cd /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf
+
+
Now edit and create a new file 92nutupscmon with the following content
+
+
{
+
$OUT = "";
+
my $allow = 'all granted';
+
my $pass = '0';
+
my $satisfy = 'All';
+
my $name = $nut{'Name'} || 'NUT UPS Daemon Monitoring';
+
+
for ('exit-if-none')
+
{
+
if ($nut{'PublicAccess'})
+
{
+
if ($nut{'PublicAccess'} eq 'none')
+
{
+
next;
+
}
+
elsif ($nut{'PublicAccess'} eq 'local')
+
{
+
$allow = $localAccess;
+
$pass = 0;
+
$satisfy = 'all';
+
}
+
elsif ($nut{'PublicAccess'} eq 'local-pw')
+
{
+
$allow = $localAccess;
+
$pass = 1;
+
$satisfy = 'all';
+
}
+
elsif ($nut{'PublicAccess'} eq 'global')
+
{
+
$allow = 'all';
+
$pass = 0;
+
$satisfy = 'all';
+
}
+
elsif ($nut{'PublicAccess'} eq 'global-pw')
+
{
+
$allow = 'all';
+
$pass = 1;
+
$satisfy = 'all';
+
}
+
elsif ($nut{'PublicAccess'} eq 'global-pw-remote')
+
{
+
$allow = $localAccess;
+
$pass = 1;
+
$satisfy = 'any';
+
}
+
}
+
+
$OUT .= "#------------------------------------------------------------\n";
+
$OUT .= "# nut multimon - $name\n";
+
$OUT .= "#------------------------------------------------------------\n";
+
+
{
+
if ((exists $nut{'URL'}) && ($nut{'URL'} ne <nowiki>''</nowiki>)) {
+
$OUT .= "Alias /$nut{'URL'} /opt/nut-cgi-bin\n";
+
}
+
}
+
+
$OUT .= "Alias /nut /opt/nut-cgi-bin\n";
+
+
$OUT .= "\n";
+
$OUT .= "<Directory /opt/nut-cgi-bin>\n";
+
$OUT .= " DirectoryIndex upsstats.cgi\n";
+
$OUT .= " Options +ExecCGI\n";
+
$OUT .= " order deny,allow\n";
+
$OUT .= " deny from all\n";
+
$OUT .= " allow from $allow\n";
+
if ($pass)
+
{
+
$OUT .= " AuthName $name\n";
+
$OUT .= " AuthType Basic\n";
+
$OUT .= " AuthExternal pwauth\n";
+
$OUT .= " require valid-user\n";
+
$OUT .= " Satisfy $satisfy\n";
+
}
+
$OUT .= "</Directory>\n";
+
}
+
}
+
+
Configure databases and expand the template
+
+
config setprop nut PublicAccess local
+
/sbin/e-smith/expand-template /etc/httpd/conf/httpd.conf
+
+
{{Note box|The above sets access to the scripts to ''local'' ip addresses only. See the [[Web_Application_RPM#New_DB_settings]] for further info and settings}}
+
+
Restart the web server
+
+
sv t httpd-e-smith
+
</tab>
+
</tabs>