Requerimientos:
FreeBSD Instalado
Instrucciones:
1) Instalar MySQL desde los ports
# cd /usr/ports/databases/mysql50-server
# make install clean
2) Hacer que el MySQL se inicie con el sistema poniendo una linea en /etc/rc.conf como esta
# Activamos MySQL
mysql_enable="YES"
3) Iniciar MySQL para no tener que re-iniciar el servidor
# /usr/local/etc/rc.d/mysql-server start
4) Creamos el usuario administrador del gestor
# mysqladmin -u root password 'PASSWORDROOT'
Nota:
PASSWORDROOT se debe cambiar por una clave valida para el usuario root en MySQL
MyDB se debe cambiar por el nombre de la base de datos que requiero crear
usuario1 se debe cambiar por el nombre de usuario con el que se ingresara a DB
passusuario1 se debe cambiar por la clave que queremos para usuario1
5) Creamos la DB con su usuario correspondiente
# mysql -u root -p
Enter password: <- PASSWORDROOT
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15 Server version: 5.0.90 FreeBSD port: mysql-server-5.0.90 Type 'help;' or '\h' for help.
Type '\c' to clear the current input statement. mysql>
6) Crear la DB junto con el usuario y clave (todo de una)
CREAMOS DB utf8, permiso solo desde red clase "C", usuario y password, recargamos permisos
# mysql -u root -p
Enter password: <- PASSWORDROOT
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.0.90 FreeBSD port: mysql-server-5.0.90
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE DATABASE MyDB CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON MyDB.* TO usuario1@'192.168.1.%' IDENTIFIED BY 'passusuario1';
Query OK, 0 rows affected (0.05 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Nota:
Esta permite conectar desde cualquier ip de la lan clase "C"
mysql> GRANT ALL PRIVILEGES ON MyDB.* TO usuario1@'192.168.1.%' IDENTIFIED BY 'passusuario1';
Con esta linea solo se permite conectar desde la ip 192.168.1.244
mysql> GRANT ALL PRIVILEGES ON MyDB.* TO usuario1@192.168.1.244 IDENTIFIED BY 'passusuario1';
7) Creamos la estructura (no se puede hacer si en el shell estoy como root)
$ mysql --user=root --password=PASSWORDROOT* MyDB < /tmp/dbiniciar.sql
8) Importamos los datos a la DB (no se puede hacer si en el shell estoy como root)
$ mysql --user=root --password=PASSWORDROOT* MyDB < /tmp/datos.sql
NOTA: Para borrar la DB que en este caso llamamos MyDB
# mysqladmin -u root drop MyDB -p
Enter password: <- PASSWORDROOT
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'MyDB' database [y/N]y
9) PRUEBAS CONEXION
REMOTA (desde un linux con mysql-client -> FreeBSD)
$ mysql -h 192.168.1.1 -u usuario1 MyDB -p
Enter password: <- passusuario1
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 522
Server version: 5.0.90 FreeBSD port: mysql-server-5.0.90
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> \q
Bye
LOCAL (desde FreeBSD)
# mysql -u root MyDB -p
Enter password: <- PASSWORDROOT
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.0.90 FreeBSD port: mysql-server-5.0.90
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> \q
Bye
BACKUP A LA DB ACTUAL (NO SE PUEDE HACER COMO ROOT)
$ mysqldump --user=root --password=PASSWORDROOT MyDB | gzip > /tmp/MyDB.sql.gz
IMPORTAR BACKUP
DESCOMPRIMIR EL BACKUP
# cd /tmp
# gunzip MyDB.sql.gz
IMPORTAR LA DB DEL BACKUP (NO SE PUEDE HACER COMO ROOT)
$ mysql --user=root --password=PASSWORDROOT MyDB < /tmp/MyDB.sql
viernes, mayo 28, 2010
martes, mayo 25, 2010
FreeBSD + Squid-cache + squidGuard
Este resumen no está disponible. Haz clic
aquí para ver la publicación.
martes, mayo 11, 2010
FreeBSD 8
Requerimientos:
Disco de instalacion de FreeBSD
Conexion a internet
Instalando:
Iniciar el equipo desde el cd
232 United States
OK
Standard Begin a standard installation (recommended)
[Select]
...fdisk...
OK
Would you like to keep using the current geometry?
YES
A = Use Entire Disk
Q = Finish
Standard Install a standard MBR (no boot manager)
OK
Now you need to create BSD partitions...
OK
C = Create
4096M
OK
FS A file system
OK
Please specify a mount point for the partition
/
OK
C = Create
2048M
OK
Swap A swap partition
OK
C = Create
8192M
FS A file system
OK
/var
OK
C = Create
(the resto of hd free)
OK
FS A file system
OK
/usr
OK
Q = Finish
----------------------------------------------
Ejemplo de particionado para un disco de 36GB SCSI
Part Mount Size Newfs Part
da0s1a / 4096MB UFS2 Y
da0s1b swap 2048MB SWAP
da0s1d /var 8192MB UFS2+S Y
da0s1e /usr 22528MB UFS2+S Y
----------------------------------------------
[X] 5 Kern-Developer Full binaries and doc, kernel soruces only
OK
<<< X Exit Exit this menu (returning to previous)
OK
Would you like to install the FreeBSD ports collection?
YES
OK
1 CD/DVD Install fron a FreeBSD CD/DVD
OK
Last Chance!
YES
Congratulations! You now have FreeBSD installed on your system.
/usr/sbin/sysinstall
OK
Would you like to configure any Ethernet or SLIP/PPP network devices?
YES
(si tenemos dos tarjetas, debemos tomar nota de los nombres, por ejemplo: sis0 y rl0)
sis0 SiS 900/SiS 7016 PCI Ethernet card
OK
Do you want to try IPv6 configuration of the interface?
YES
Do you want to try DHCP configuration of the interface?
YES
Host: pruebas.company.com
Domain: company.com
IPv4 Gateway: 192.168.1.1
Name server: 192.168.1.1
IPv4 Address: 192.168.1.108
Netmask: 255.255.255.0
OK
Do you want this machine to funtion as a network gateway?
NO
Do you want to configure inetd and the network services that it provides?
NO
Would you like to enable SSH login?
YES
Do you want to have anonymous FTP access to this machine?
NO
Do you want to configure this machine as an NFS server?
NO
Do you want to configure this machine as an NFS client?
NO
Would you like to customize your system console settings?
NO
Would you like to set this machine's time zone now?
YES
Is this machine's CMOS clock set to UTC? If ...
NO
2 America -- North and South
OK
13 Colombia
OK
Does the abbreviation 'COT' look reasonable?
YES
Does this system have a PS/2, serial, or bus mouse?
NO
The FreeBSD package collection is a ...
NO
Would you like add any initial user accounts...?
YES
User Add a new user to the system
OK
Login: myname
UID: 1001
Group:
Password: ******
Confirm Password: *******
Full name: My Full Name
Member groups:
Home directory: /home/myname
Login shell: /bin/sh
OK
X Exit Exit this menu (returning to previous)
OK
Now you must set the system manager's password
OK
New Password: ******
Retype New Password: ******
Visit the general configuration menu...?
NO
X Exit Install
Are you sure you wish to exit? The system will reboot
YES
(expulsa el disco de instalacion)
Be sure to remove the media fron the drive
OK
(se reinicia el equipo)
(al terminar de cargar, nos pide login y password en el shell)
FreeBSD/i386 (pruebas.company.com) (ttyv0)
Login: root
Password: ******
pruebas#
Nota:
FreeBSD por defecto solo permite conectar por SSH con usuarios normales, tampoco permite a los usuarios hacer 'su' por seguridad, por esto para permitirle a un usuario hacer 'su' hay que editar el archivo /etc/group
# edit /etc/group
---
wheel:*:0:root,angel
---
En nuestro ejemplo hemos agregado el login angel como se puede ver, los logins van separados por (,).
Disco de instalacion de FreeBSD
Conexion a internet
Instalando:
Iniciar el equipo desde el cd
232 United States
OK
Standard Begin a standard installation (recommended)
[Select]
...fdisk...
OK
Would you like to keep using the current geometry?
YES
A = Use Entire Disk
Q = Finish
Standard Install a standard MBR (no boot manager)
OK
Now you need to create BSD partitions...
OK
C = Create
4096M
OK
FS A file system
OK
Please specify a mount point for the partition
/
OK
C = Create
2048M
OK
Swap A swap partition
OK
C = Create
8192M
FS A file system
OK
/var
OK
C = Create
(the resto of hd free)
OK
FS A file system
OK
/usr
OK
Q = Finish
----------------------------------------------
Ejemplo de particionado para un disco de 36GB SCSI
Part Mount Size Newfs Part
da0s1a / 4096MB UFS2 Y
da0s1b swap 2048MB SWAP
da0s1d /var 8192MB UFS2+S Y
da0s1e /usr 22528MB UFS2+S Y
----------------------------------------------
[X] 5 Kern-Developer Full binaries and doc, kernel soruces only
OK
<<< X Exit Exit this menu (returning to previous)
OK
Would you like to install the FreeBSD ports collection?
YES
OK
1 CD/DVD Install fron a FreeBSD CD/DVD
OK
Last Chance!
YES
Congratulations! You now have FreeBSD installed on your system.
/usr/sbin/sysinstall
OK
Would you like to configure any Ethernet or SLIP/PPP network devices?
YES
(si tenemos dos tarjetas, debemos tomar nota de los nombres, por ejemplo: sis0 y rl0)
sis0 SiS 900/SiS 7016 PCI Ethernet card
OK
Do you want to try IPv6 configuration of the interface?
YES
Do you want to try DHCP configuration of the interface?
YES
Host: pruebas.company.com
Domain: company.com
IPv4 Gateway: 192.168.1.1
Name server: 192.168.1.1
IPv4 Address: 192.168.1.108
Netmask: 255.255.255.0
OK
Do you want this machine to funtion as a network gateway?
NO
Do you want to configure inetd and the network services that it provides?
NO
Would you like to enable SSH login?
YES
Do you want to have anonymous FTP access to this machine?
NO
Do you want to configure this machine as an NFS server?
NO
Do you want to configure this machine as an NFS client?
NO
Would you like to customize your system console settings?
NO
Would you like to set this machine's time zone now?
YES
Is this machine's CMOS clock set to UTC? If ...
NO
2 America -- North and South
OK
13 Colombia
OK
Does the abbreviation 'COT' look reasonable?
YES
Does this system have a PS/2, serial, or bus mouse?
NO
The FreeBSD package collection is a ...
NO
Would you like add any initial user accounts...?
YES
User Add a new user to the system
OK
Login: myname
UID: 1001
Group:
Password: ******
Confirm Password: *******
Full name: My Full Name
Member groups:
Home directory: /home/myname
Login shell: /bin/sh
OK
X Exit Exit this menu (returning to previous)
OK
Now you must set the system manager's password
OK
New Password: ******
Retype New Password: ******
Visit the general configuration menu...?
NO
X Exit Install
Are you sure you wish to exit? The system will reboot
YES
(expulsa el disco de instalacion)
Be sure to remove the media fron the drive
OK
(se reinicia el equipo)
(al terminar de cargar, nos pide login y password en el shell)
FreeBSD/i386 (pruebas.company.com) (ttyv0)
Login: root
Password: ******
pruebas#
Nota:
FreeBSD por defecto solo permite conectar por SSH con usuarios normales, tampoco permite a los usuarios hacer 'su' por seguridad, por esto para permitirle a un usuario hacer 'su' hay que editar el archivo /etc/group
# edit /etc/group
---
wheel:*:0:root,angel
---
En nuestro ejemplo hemos agregado el login angel como se puede ver, los logins van separados por (,).
martes, mayo 04, 2010
FreeBSD + Network UPS Tools
Requerimientos:
FreeBSD Instalado
Manuales:
http://www.networkupstools.org/
http://people.freebsd.org/~thierry/nut_FreeBSD_HowTo.txt
http://opensource.mgeups.com/howto.htm#test-cfg
Otros manuales:
http://taquiones.net/sysadmin/nut.html
http://www.lissyara.su/articles/freebsd/programms/network_ups_tools/
http://www.usebox.net/jjm/ups-obsd/
/usr/local/share/doc/nut
Datos de la tarjeta SNMP en la UPS
http://www.ingrasys.com/Product/usha/pd_usha_1.aspx
1) Instalar el port nut
#cd /usr/ports/sysutils/nut
# cd make config
Solo activo las opciones
[ ] SERIAL
[ ] USB
[X] SNMP
[X] NEON
[ ] HAL
[X] IPV6
[ ] DEVEL
[ ] CGI
Guardar y salir
# make install clean
2) Crear los archivos de configuracion
# cd /usr/local/etc/nut/
# cp ups.conf.sample ups.conf
---
[myups]
driver = snmp-ups
port = 192.168.1.252
#cable = 1234
desc = "UPS Pinnacle Plus 10000T"
---
# cp upsd.conf.sample upsd.conf
---
LISTEN 127.0.0.1 3493
---
# cp upsd.users.sample upsd.users
---
[admin]
password = mypass
actions = SET
instcmds = ALL
[upsmon]
password = pass
upsmon master
MONITOR myups@localhost 1 monuser pass master
---
# cp upsmon.conf.sample upsmon.conf
---
MONITOR myups@localhost 1 monuser mypass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
---
Asegurando un poco los archivos de configuracion
# chown root:uucp /usr/local/etc/nut/upsd.conf
# chmod 0640 /usr/local/etc/nut/upsd.conf
# chown root:uucp /usr/local/etc/nut/upsd.users
# chmod 0640 /usr/local/etc/nut/upsd.users
Por defecto parece que requiere un directorio cuando esta corriendo,
en el configure.txt lo comenta en el numeral 5
# mkdir -p /var/state/ups
# chmod 0770 /var/state/ups
# chown uucp:wheel /var/state/ups
Tambien requiere otro directorio en /var/db/nut/upssched para el upssched.conf (upssched.pipe y upssched.lock)
# mkdir /var/db/nut/upssched
# chown uucp:uucp /var/db/nut/upssched
3) Hacer que inicie con el sistema agregando en /etc/rc.conf las lineas
---
# Activamos Network UPS Tools
nut_enable="YES"
nut_upslog_enable="YES"
nut_upsmon_enable="YES"
---
4) Iniciar el servicio [sart|stop]
# /usr/local/etc/rc.d/nut start
---
Network UPS Tools - UPS driver controller 2.4.1
Network UPS Tools - Generic SNMP UPS driver 0.44 (2.4.1)
Detected Model 10K on host 192.168.1.252 (mib: ietf 1.3)
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.2.3.0
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.2.6.0
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.4.2.0
Starting nut.
Network UPS Tools upsd 2.4.1
/usr/local/etc/nut/upsd.conf is world readable
listening on 127.0.0.1 port 3493
Connected to UPS [myups]: snmp-ups-myups
/usr/local/etc/nut/upsd.users is world readable
---
Hay que iniciar los otros dos
# /usr/local/etc/rc.d/nut_upsmon start
# /usr/local/etc/rc.d/nut_upslog start
5) Solicitar informacion de la ups
# upsc myups@localhost
---
battery.charge: 100.00
battery.runtime.low: 0
battery.temperature: 32.00
battery.voltage: 256.80
driver.name: snmp-ups
driver.parameter.pollinterval: 2
driver.parameter.port: 192.168.1.252
driver.version: 2.4.1
driver.version.internal: 0.44
input.current: 0.00
input.frequency: 60.00
input.phases: 1.00
input.quality: 34.00
input.voltage: 2060.00
output.current: 0.00
output.phases: 1.00
output.realpower: 0.00
output.voltage: 2300.00
ups.firmware: Ver P7.0
ups.firmware.aux: AlphaLink Card v4.26 (SN 1117027624120)
ups.load: 64.00
ups.mfr: UPS
ups.model: Model 10K
ups.power: 0.00
ups.serial:
ups.status: OL
ups.test.result:
---
Para ver como va la cosa
# tail -f /var/log/messages
http://opensource.mgeups.com/howto.htm#test-cfg
Nota:
Se cambio la parte original ups_name@localhost por myups@localhost
To view the list of available settable variables, use the following command:
upsrw myups@localhost
To set the low battery level (which trigger shutdown), use the following command:
upsrw -s battery.charge.low=20 -u admin -p mypass myups@localhost
To view the list of available settable variables, use the following command:
upscmd -l myups@localhost
To execute a battery test, use the following command:
upscmd -u admin -p mypass myups@localhost battery.test
Actualizacion:
Active la opcion [X] cgi y re-instale el port
# edit /usr/local/etc/apache22/httpd.conf
agrego las siguientes lineas:
---
<Directory /usr/local/www/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/nut/cgi>
Options ExecCGI
</Directory>
ScriptAlias /nut/cgi/ /usr/local/www/nut/cgi/
Alias /nut /usr/local/www/nut/
---
Por defecto el port crea los directorios
# ls /usr/local/www/cgi-bin/nut/
upsimage.cgi upsset.cgi upsstats.cgi
# ls /usr/local/www/nut/
bottom.html header.html index.html nut-banner.png
Pero aun no se como hacer en el httpd.conf para que el sitio este en un lugar y que se pueda ejecutar los .cgi que estan en otro!
Para solucionarlo, copiare el contenido de /usr/local/www/cgi-bin/nut/ en una carpeta que creare dentro de /usr/local/www/nut/cgi
# mkdir /usr/local/www/nut/cgi
# cp /usr/local/cgi-bin/nut/*.cgi /usr/local/www/nut/cgi
El codigo del archivo /usr/local/www/nut/header.html apunta a los .cgi , pero los hago apuntar dentro de /usr/local/www/nut/cgi
# edit /usr/local/www/nut/header.html
Asi quedaron las lineas ya modificadas
<a href=/nut/cgi/upsstats.cgi target=mainFrame>Statistics</a>
<a href=/nut/cgi/upsset.cgi target=mainFrame>Settings</a>
adicionalmente con la activacion de [X] CGI se crearon otros archivos dentro de /usr/local/etc/nut/
Aqui pongo el contenido de todos luego del cambio:
# egrep -v '#|^ *$' hosts.conf
MONITOR myups@localhost "My UPS"
# egrep -v '#|^ *$' nut.conf
MODE = none
# egrep -v '#|^ *$' ups.conf
[myups]
driver = snmp-ups
port = 192.168.1.252
desc = "My UPS"
# egrep -v '#|^ *$' upsd.conf
LISTEN 127.0.0.1 3493
LISTEN 192.168.1.1 3493 (esta es la ip fija que da a la lan)
# egrep -v '#|^ *$' upsmon.conf
MONITOR myups@localhost 1 upsmon pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
# egrep -v '#|^ *$' upssched.conf
CMDSCRIPT /usr/local/bin/upssched-cmd
# egrep -v '#|^ *$' upsset.conf
este no tiene nada activado
# egrep -v '#|^ *$' upsd.users
[admin]
password = mypass
actions = SET
instcmds = ALL
[upsmon]
password = pass
upsmon master
MONITOR myups@localhost 1 monuser pass master
copio un par de archivos .html.sample
# cp upsstats-single.html.sample upsstats-single.html
# cp upsstats.html.sample upsstats.html
Re-inicio el servicio
# /usr/local/etc/rc.d/nut restart
Para ver si la cosa del html funciona, ingreso a
http://ipdemiservidor/nut
Nota2:
Ya encontre la razon de que me diera errores al tratar de compartir los cgi del nut, la razon era una linea en el /usr/local/etc/apache22/httpd.conf
la linea que daba problemas era:
ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
Si la desactivo con un #, puedo crear toda la entrada asi:
# Modificacion para Network UPS Tools inicio
# Para el sitio
<Directory /usr/local/www/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/nut/cgi>
Options ExecCGI
</Directory>
#ScriptAlias /nut/cgi/ /usr/local/www/nut/cgi/
Alias /nut /usr/local/www/nut/
# Notas:
# * Los CGI los pone en el directorio /usr/local/www/cgi-bin/nut
# * Para poder ejecutar los cgi en el directorio de instalacion, desactivo (#) una linea
# de arriba que dice:
# ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
# ya que parece que no se requiere actualmente para nadie
#
# Para los CGI
<Directory /usr/local/www/cgi-bin/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/cgi-bin/nut>
Options ExecCGI
</Directory>
ScriptAlias /cgi-bin/nut/ /usr/local/www/cgi-bin/nut/
Alias /cgi-bin/ /usr/local/www/cgi-bin/nut/
# Modificacion para Network UPS Tools fin
Logicamente, con esta solucion ya no es necesario la carpeta /usr/local/www/nut/cgi y tampoco hay que poner a apuntar los links en /usr/local/www/nut/header.html a otros lugares.
Nota3:
Tambien tengo una ups de la marca CyberPower System
y para el FreeBSD 8 en el archivo de la ups tengo esto:
# egrep -v '#|^ *$' ups.conf
[CPS425SL]
driver = genericups
port = /dev/cuau0
upstype = 7
desc = "CyberPower Systems 425SL 425VA / CPS425SL"
Hay que anotar que en FreeBSD 8 el nombre de los COM cambio:
http://www.freebsd.org/releases/8.0R/relnotes-detailed.html
COM1 /dev/cuau0
COM2 /dev/cuau1
Hasta este punto, cuando la UPS llega al nivel critico de las baterias, apaga el servidor.
Otra opcion interesante es poder programar un apagado en el servidor luego de que la UPS esta agotando las baterias, por ejemplo luego de 60 segundos...
Para esto hay que usar upssched y agregarle unas lineas, aqui dejo las modificaciones:
# egrep -v '#|^ *$' /usr/local/etc/nut/upsmon.conf
MONITOR myups@localhost 1 upsmon pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /usr/local/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONBATT "%s is on battery"
NOTIFYMSG ONLINE "%s is back online"
NOTIFYMSG LOWBATT "%s has a low battery!"
NOTIFYMSG SHUTDOWN "System is being shutdown!"
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
# egrep -v '#|^ *$' /usr/local/etc/nut/upssched.conf
CMDSCRIPT /usr/local/bin/upssched-cmd
PIPEFN /var/db/nut/upssched/upssched.pipe
LOCKFN /var/db/nut/upssched/upssched.lock
AT ONBATT * START-TIMER ONBATT 60 <- los 60 seg
AT ONLINE * CANCEL-TIMER ONBATT
AT LOWBATT * EXECUTE LOWBATT
AT SHUTDOWN * EXECUTE SHUTDOWN
# egrep -v '#|^ *$' /usr/local/bin/upssched-cmd
case $1 in
ONBATT)
echo ONBATT TIMEOUT | mail -s "UPS Notify" reidrac
/usr/local/sbin/upsmon -c fsd
;;
LOWBATT)
echo LOWBATT | mail -s "UPS Notify" reidrac
;;
SHUTDOWN)
echo SHUTDOWN | mail -s "UPS Notify" reidrac
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
Re-inicio upsmon para que tome la nueva configuracion
# /usr/local/etc/rc.d/nut_upsmon restart
FreeBSD Instalado
Manuales:
http://www.networkupstools.org/
http://people.freebsd.org/~thierry/nut_FreeBSD_HowTo.txt
http://opensource.mgeups.com/howto.htm#test-cfg
Otros manuales:
http://taquiones.net/sysadmin/nut.html
http://www.lissyara.su/articles/freebsd/programms/network_ups_tools/
http://www.usebox.net/jjm/ups-obsd/
/usr/local/share/doc/nut
Datos de la tarjeta SNMP en la UPS
http://www.ingrasys.com/Product/usha/pd_usha_1.aspx
1) Instalar el port nut
#cd /usr/ports/sysutils/nut
# cd make config
Solo activo las opciones
[ ] SERIAL
[ ] USB
[X] SNMP
[X] NEON
[ ] HAL
[X] IPV6
[ ] DEVEL
[ ] CGI
Guardar y salir
# make install clean
2) Crear los archivos de configuracion
# cd /usr/local/etc/nut/
# cp ups.conf.sample ups.conf
---
[myups]
driver = snmp-ups
port = 192.168.1.252
#cable = 1234
desc = "UPS Pinnacle Plus 10000T"
---
# cp upsd.conf.sample upsd.conf
---
LISTEN 127.0.0.1 3493
---
# cp upsd.users.sample upsd.users
---
[admin]
password = mypass
actions = SET
instcmds = ALL
[upsmon]
password = pass
upsmon master
MONITOR myups@localhost 1 monuser pass master
---
# cp upsmon.conf.sample upsmon.conf
---
MONITOR myups@localhost 1 monuser mypass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
---
Asegurando un poco los archivos de configuracion
# chown root:uucp /usr/local/etc/nut/upsd.conf
# chmod 0640 /usr/local/etc/nut/upsd.conf
# chown root:uucp /usr/local/etc/nut/upsd.users
# chmod 0640 /usr/local/etc/nut/upsd.users
Por defecto parece que requiere un directorio cuando esta corriendo,
en el configure.txt lo comenta en el numeral 5
# mkdir -p /var/state/ups
# chmod 0770 /var/state/ups
# chown uucp:wheel /var/state/ups
Tambien requiere otro directorio en /var/db/nut/upssched para el upssched.conf (upssched.pipe y upssched.lock)
# mkdir /var/db/nut/upssched
# chown uucp:uucp /var/db/nut/upssched
3) Hacer que inicie con el sistema agregando en /etc/rc.conf las lineas
---
# Activamos Network UPS Tools
nut_enable="YES"
nut_upslog_enable="YES"
nut_upsmon_enable="YES"
---
4) Iniciar el servicio [sart|stop]
# /usr/local/etc/rc.d/nut start
---
Network UPS Tools - UPS driver controller 2.4.1
Network UPS Tools - Generic SNMP UPS driver 0.44 (2.4.1)
Detected Model 10K on host 192.168.1.252 (mib: ietf 1.3)
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.2.3.0
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.2.6.0
[myups] unhandled ASN 0x5 recieved from 1.3.6.1.2.1.33.1.4.2.0
Starting nut.
Network UPS Tools upsd 2.4.1
/usr/local/etc/nut/upsd.conf is world readable
listening on 127.0.0.1 port 3493
Connected to UPS [myups]: snmp-ups-myups
/usr/local/etc/nut/upsd.users is world readable
---
Hay que iniciar los otros dos
# /usr/local/etc/rc.d/nut_upsmon start
# /usr/local/etc/rc.d/nut_upslog start
5) Solicitar informacion de la ups
# upsc myups@localhost
---
battery.charge: 100.00
battery.runtime.low: 0
battery.temperature: 32.00
battery.voltage: 256.80
driver.name: snmp-ups
driver.parameter.pollinterval: 2
driver.parameter.port: 192.168.1.252
driver.version: 2.4.1
driver.version.internal: 0.44
input.current: 0.00
input.frequency: 60.00
input.phases: 1.00
input.quality: 34.00
input.voltage: 2060.00
output.current: 0.00
output.phases: 1.00
output.realpower: 0.00
output.voltage: 2300.00
ups.firmware: Ver P7.0
ups.firmware.aux: AlphaLink Card v4.26 (SN 1117027624120)
ups.load: 64.00
ups.mfr: UPS
ups.model: Model 10K
ups.power: 0.00
ups.serial:
ups.status: OL
ups.test.result:
---
Para ver como va la cosa
# tail -f /var/log/messages
http://opensource.mgeups.com/howto.htm#test-cfg
Nota:
Se cambio la parte original ups_name@localhost por myups@localhost
To view the list of available settable variables, use the following command:
upsrw myups@localhost
To set the low battery level (which trigger shutdown), use the following command:
upsrw -s battery.charge.low=20 -u admin -p mypass myups@localhost
To view the list of available settable variables, use the following command:
upscmd -l myups@localhost
To execute a battery test, use the following command:
upscmd -u admin -p mypass myups@localhost battery.test
Actualizacion:
Active la opcion [X] cgi y re-instale el port
# edit /usr/local/etc/apache22/httpd.conf
agrego las siguientes lineas:
---
<Directory /usr/local/www/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/nut/cgi>
Options ExecCGI
</Directory>
ScriptAlias /nut/cgi/ /usr/local/www/nut/cgi/
Alias /nut /usr/local/www/nut/
---
Por defecto el port crea los directorios
# ls /usr/local/www/cgi-bin/nut/
upsimage.cgi upsset.cgi upsstats.cgi
# ls /usr/local/www/nut/
bottom.html header.html index.html nut-banner.png
Pero aun no se como hacer en el httpd.conf para que el sitio este en un lugar y que se pueda ejecutar los .cgi que estan en otro!
Para solucionarlo, copiare el contenido de /usr/local/www/cgi-bin/nut/ en una carpeta que creare dentro de /usr/local/www/nut/cgi
# mkdir /usr/local/www/nut/cgi
# cp /usr/local/cgi-bin/nut/*.cgi /usr/local/www/nut/cgi
El codigo del archivo /usr/local/www/nut/header.html apunta a los .cgi , pero los hago apuntar dentro de /usr/local/www/nut/cgi
# edit /usr/local/www/nut/header.html
Asi quedaron las lineas ya modificadas
<a href=/nut/cgi/upsstats.cgi target=mainFrame>Statistics</a>
<a href=/nut/cgi/upsset.cgi target=mainFrame>Settings</a>
adicionalmente con la activacion de [X] CGI se crearon otros archivos dentro de /usr/local/etc/nut/
Aqui pongo el contenido de todos luego del cambio:
# egrep -v '#|^ *$' hosts.conf
MONITOR myups@localhost "My UPS"
# egrep -v '#|^ *$' nut.conf
MODE = none
# egrep -v '#|^ *$' ups.conf
[myups]
driver = snmp-ups
port = 192.168.1.252
desc = "My UPS"
# egrep -v '#|^ *$' upsd.conf
LISTEN 127.0.0.1 3493
LISTEN 192.168.1.1 3493 (esta es la ip fija que da a la lan)
# egrep -v '#|^ *$' upsmon.conf
MONITOR myups@localhost 1 upsmon pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
# egrep -v '#|^ *$' upssched.conf
CMDSCRIPT /usr/local/bin/upssched-cmd
# egrep -v '#|^ *$' upsset.conf
este no tiene nada activado
# egrep -v '#|^ *$' upsd.users
[admin]
password = mypass
actions = SET
instcmds = ALL
[upsmon]
password = pass
upsmon master
MONITOR myups@localhost 1 monuser pass master
copio un par de archivos .html.sample
# cp upsstats-single.html.sample upsstats-single.html
# cp upsstats.html.sample upsstats.html
Re-inicio el servicio
# /usr/local/etc/rc.d/nut restart
Para ver si la cosa del html funciona, ingreso a
http://ipdemiservidor/nut
Nota2:
Ya encontre la razon de que me diera errores al tratar de compartir los cgi del nut, la razon era una linea en el /usr/local/etc/apache22/httpd.conf
la linea que daba problemas era:
ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
Si la desactivo con un #, puedo crear toda la entrada asi:
# Modificacion para Network UPS Tools inicio
# Para el sitio
<Directory /usr/local/www/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/nut/cgi>
Options ExecCGI
</Directory>
#ScriptAlias /nut/cgi/ /usr/local/www/nut/cgi/
Alias /nut /usr/local/www/nut/
# Notas:
# * Los CGI los pone en el directorio /usr/local/www/cgi-bin/nut
# * Para poder ejecutar los cgi en el directorio de instalacion, desactivo (#) una linea
# de arriba que dice:
# ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
# ya que parece que no se requiere actualmente para nadie
#
# Para los CGI
<Directory /usr/local/www/cgi-bin/nut>
AllowOverride Options FileInfo
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/cgi-bin/nut>
Options ExecCGI
</Directory>
ScriptAlias /cgi-bin/nut/ /usr/local/www/cgi-bin/nut/
Alias /cgi-bin/ /usr/local/www/cgi-bin/nut/
# Modificacion para Network UPS Tools fin
Logicamente, con esta solucion ya no es necesario la carpeta /usr/local/www/nut/cgi y tampoco hay que poner a apuntar los links en /usr/local/www/nut/header.html a otros lugares.
Nota3:
Tambien tengo una ups de la marca CyberPower System
y para el FreeBSD 8 en el archivo de la ups tengo esto:
# egrep -v '#|^ *$' ups.conf
[CPS425SL]
driver = genericups
port = /dev/cuau0
upstype = 7
desc = "CyberPower Systems 425SL 425VA / CPS425SL"
Hay que anotar que en FreeBSD 8 el nombre de los COM cambio:
http://www.freebsd.org/releases/8.0R/relnotes-detailed.html
COM1 /dev/cuau0
COM2 /dev/cuau1
Hasta este punto, cuando la UPS llega al nivel critico de las baterias, apaga el servidor.
Otra opcion interesante es poder programar un apagado en el servidor luego de que la UPS esta agotando las baterias, por ejemplo luego de 60 segundos...
Para esto hay que usar upssched y agregarle unas lineas, aqui dejo las modificaciones:
# egrep -v '#|^ *$' /usr/local/etc/nut/upsmon.conf
MONITOR myups@localhost 1 upsmon pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD /usr/local/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYMSG ONBATT "%s is on battery"
NOTIFYMSG ONLINE "%s is back online"
NOTIFYMSG LOWBATT "%s has a low battery!"
NOTIFYMSG SHUTDOWN "System is being shutdown!"
NOTIFYFLAG ONBATT SYSLOG+EXEC
NOTIFYFLAG ONLINE SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+EXEC
NOTIFYFLAG SHUTDOWN SYSLOG+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
# egrep -v '#|^ *$' /usr/local/etc/nut/upssched.conf
CMDSCRIPT /usr/local/bin/upssched-cmd
PIPEFN /var/db/nut/upssched/upssched.pipe
LOCKFN /var/db/nut/upssched/upssched.lock
AT ONBATT * START-TIMER ONBATT 60 <- los 60 seg
AT ONLINE * CANCEL-TIMER ONBATT
AT LOWBATT * EXECUTE LOWBATT
AT SHUTDOWN * EXECUTE SHUTDOWN
# egrep -v '#|^ *$' /usr/local/bin/upssched-cmd
case $1 in
ONBATT)
echo ONBATT TIMEOUT | mail -s "UPS Notify" reidrac
/usr/local/sbin/upsmon -c fsd
;;
LOWBATT)
echo LOWBATT | mail -s "UPS Notify" reidrac
;;
SHUTDOWN)
echo SHUTDOWN | mail -s "UPS Notify" reidrac
;;
*)
logger -t upssched-cmd "Unrecognized command: $1"
;;
esac
Re-inicio upsmon para que tome la nueva configuracion
# /usr/local/etc/rc.d/nut_upsmon restart
Suscribirse a:
Entradas (Atom)