ติดตั้ง nut แบบ client ติดต่อกับ nut server

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 19-11-2555

ดูแลโดย WIBOON


  • เพื่อให้เซิร์ฟเวอร์ที่ติดตั้ง nut แบบ client ได้รับสถานะไฟฟ้าจาก UPS จาก nut server แล้วสั่ง shutdown ตัวเอง
  • ทดสอบกับ ubuntu 10.04, 12.04
  • สมมติหมายเลขไอพีของ nut server คือ 10.0.0.201
    และมีชื่อที่กำหนดไว้ใน nut server ดังนี้
    แฟ้ม /etc/nut/ups.conf มีข้อมูล
    [myapc]
    desc = "my apc"
    แฟ้ม /etc/nut/upsd.users มีข้อมูล
    [monuser]
    password = changeme


  1. ติดตั้งโปรแกรม snmp ด้วยคำสั่ง
    sudo apt-get install snmp
  2. ติดตั้งโปรแกรม nut ด้วยคำสั่ง
    sudo apt-get install nut nut-cgi nut-snmp
  3. สำหรับ server ที่ติดตั้ง nut แบบ client ให้แก้ไขดังนี้
    แก้ไขแฟ้ม /etc/nut/nut.conf แก้ไขข้อมูลจากเดิม
    MODE=none
    ให้เป็นว่า
    MODE=netclient

    แก้ไขแฟ้ม /etc/nut/upsmon.conf เพิ่มเข้าไปว่า
    MONITOR myapc@10.0.0.201 1 monuser changeme slave

    แล้วสั่ง nut ทำงาน ด้วยคำสั่ง sudo /etc/init.d/nut start

    ตรวจสอบดู nut ว่ายังทำงานด้วยคำสั่ง
    sudo /etc/init.d/nut status จะได้ข้อความตอบว่า
    upsmon is running

    ลองตรวจสอบด้วยคำสั่ง upsc myapc@10.0.0.201 จะได้ข้อมูลตอบประมาณว่า
    ambient.humidity.high: 60.00
    ambient.humidity.low: 30.00
    ambient.temperature.high: 40.00
    ambient.temperature.low: 10.00
    battery.charge: 100.00
    battery.charge.restart: 0
    battery.current: 0.00
    battery.date: 11/14/07
    battery.packs: 0.00
    battery.packs.bad: 0.00
    battery.runtime: 2700.00
    battery.runtime.low: 120
    battery.voltage: 54.00
    battery.voltage.nominal: 0.00
    device.mfr: APC
    device.model: Smart-UPS 2200 RM XL
    device.serial: JS0746004426
    device.type: ups
    driver.name: snmp-ups
    driver.parameter.mibs: apcc
    driver.parameter.pollinterval: 2
    driver.parameter.port: 172.17.112.15
    driver.parameter.snmp_version: v1
    driver.version: 2.4.3
    driver.version.internal: 0.47 (mib: apcc 1.1)
    input.frequency: 50.00
    input.sensitivity: high
    input.transfer.high: 253
    input.transfer.low: 208
    input.voltage: 231.00
    output.current: 1.00
    output.frequency: 50.00
    output.voltage: 231.00
    output.voltage.nominal: 230
    ups.delay.shutdown: 270
    ups.delay.start: 0
    ups.firmware: 690.16.I
    ups.id: UPS_IDEN
    ups.load: 18.00
    ups.mfr: APC
    ups.mfr.date: 11/14/07
    ups.model: Smart-UPS 2200 RM XL
    ups.serial: JS0746004426
    ups.status: OL
    ups.temperature: 21.00
    ups.test.result: Ok
    แสดงว่าตั้ง ups บน nut ถูกต้องแล้ว
  4. หากต้องการเลือกใช้ upsshed เพื่อเลี่ยง Notify Storm เมื่อ UPS อาจมีการปิดเปิดในช่วงเวลาสั้นๆ
    แก้ไขแฟ้ม /etc/nut/upsmon.conf ด้วยคำสั่ง
    sudo vi /etc/nut/upsmon.conf
    แก้ไขให้เป็นตามนี้ หรือเพิ่มต่อท้ายแฟ้มก็ง่ายดี
    MONITOR myapc@10.0.0.201 1 monuser changeme slave
    NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
    NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
    NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
    NOTIFYFLAG FSD SYSLOG+WALL+EXEC
    NOTIFYMSG ONLINE "UPS %s on line power"
    NOTIFYMSG ONBATT "UPS %s on battery"
    NOTIFYMSG LOWBATT "UPS %s battery is low"
    NOTIFYMSG FSD "UPS %s: forced shutdown in progress"
    NOTIFYCMD /sbin/upssched

    แก้ไขแฟ้ม /etc/nut/upssched.conf ด้วยคำสั่ง
    sudo vi /etc/nut/upssched.conf
    เพิ่มบรรทัดตามนี้
    PIPEFN /var/run/nut/upssched.pipe
    LOCKFN /var/run/nut/upssched.lock
    CMDSCRIPT /etc/nut/scripts/upssched-cmd
    AT ONBATT * START-TIMER onbattwarn 600
    AT ONLINE * CANCEL-TIMER onbattwarn

    สร้างไดเรกทอรี
    sudo mkdir /etc/nut/scripts

    สร้างแฟ้ม /etc/nut/scripts/upssched-cmd ด้วยคำสั่ง
    sudo vi /etc/nut/scripts/upssched-cmd
    เพิ่มตามนี้
    #!/bin/sh
    case $1 in
    onbattwarn)
    /sbin/upsmon -c fsd
     ;;
    ups-back-on-power)
    logger -t upssched-cmd "UPS Back on Power"
     ;;
    *)
    logger -t upssched-cmd "Unrecognized command: $1"
     ;;
    esac

    กำหนดสิทธิไฟล์
    sudo chmod 755 /etc/nut/scripts/upssched-cmd
    sudo chown root:nut /etc/nut/scripts