ติดตั้ง apcupsd บน ubuntu

จาก Wiki Opensource
รุ่นปรับปรุงเมื่อ 15:12, 24 มีนาคม 2554 โดย Wipat.s (พูดคุย | เรื่องที่เขียน)
(ต่าง) ←รุ่นปรับปรุงก่อนหน้า | รุ่นล่าสุด (ต่าง) | รุ่นปรับปรุงถัดไป→ (ต่าง)

บันทีกนี้ปรับปรุงล่าสุดเมื่อวันที่ 24-03-2554

ดูแลโดย WIPAT


  • ทดสอบกับ ubuntu 10.04
  • ต้นฉบับจาก http://www.apcupsd.org
  • ใช้ได้กับ ups ยี่ห้อ APC แบบ smart ที่ใช้ serial port สามารถตั้งเวลาปิดเปิดอัตโมัติได้
  • หากเป็น ups ยี่ห้ออื่น ให้ใช้โปรแกรม nut มีคำแนะนำตามบันทึก ติดตั้ง nut บน ubuntu
  • ตอนไฟดับ ระบบสั่งปิดเครื่องได้อย่างเดียว ตอนไฟมา ups เปิดตัวเองไม่เป็น เราต้องมาเปิด ups ด้วยตนเอง
  • ตั้งแต่เวอร์ชั่น 3.14.0 ขึ้นไป ยกเลิกการประยุกต์ใช้ server หลายตัวเข้ากับ ups ตัวเดียวในรูปแบบ Master/Slave
    แต่ใช้รูปแบบ NIS server (ไม่เกี่ยวกับ NIS ของ SUN)
  • ขอแนะนำให้ใช้รูปแบบ NIS server ทุกรุ่น
  • ตอน start apcupsd ให้รอสัก 1 นาที เพื่อให้ระบบทำงาน จึงค่อยตรวจสอบ status


  1. ติดตั้งด้วยคำสั่ง sudo apt-get install apcupsd apcupsd-cgi

  2. แก้ไขแฟ้ม /etc/default/apcupsd เปลี่ยนค่าให้เป็น ISCONFIGURED=yes

  3. ถ้าใช้ UPS กับ server ตัวเดียว ไม่ต้องปรับแต่งค่าอะไร
    *** ตัวอย่างนี้ ใช้กับ serial port เท่านั้น
    ตัวอย่างค่าในแฟ้ม /etc/apcupsd/apcupsd.conf คือ

    UPSCABLE smart
    UPSTYPE smartups
    DEVICE /dev/ttyS0
    UPSCLASS standalone
    UPSMODE disable

    หากเป็น usb ตัวอย่างค่าในแฟ้มเป็นดังนี้ (บรรทัด DEVICE ไม่ต้องตั้งค่าใดๆ)
    UPSCABLE usb
    UPSTYPE usb
    DEVICE 
    UPSCLASS standalone
    UPSMODE disable

    ลองตรวจสอบว่าหากเป็นประมาณข้างบนก็ใช้ได้เลย

  4. เริ่มการทำงานด้วยคำสั่ง sudo /etc/init.d/apcupsd  start

  5. ตรวจสอบผลและสถานะด้วยคำสั่ง sudo /etc/init.d/apcupsd  status

  6. หากต้องการตั้งค่าให้ระบบปิด หลังจากมีไฟดับนาน 5 นาที
    ให้แก้ไขแฟ้ม /etc/apcupsd/apcupsd.conf
    แก้ไขตัวแปรจากเดิม TIMEOUT 0 ให้กลายเป็นว่า  TIMEOUT 300  
    ค่า 300 คือ 300 วินาที หรือก็คือ 5 นาที

  7. ดูผลตัวอย่างข้อมูลผ่าน www  ได้ที่ url ว่า http://myhost.net/cgi-bin/apcupsd/multimon.cgi
    สามารถกำหนดสิทธิ์การเข้าไปดูผล โดยจัดการแฟ้ม  /etc/httpd/conf.d/apcupsd.conf

  8. หากต้องการติดตั้ง UPS กับ server หลายตัว ต้องต่อกันเป็นแบบ NIS แยกเป็น NIS server และ NIS client

    ตัว NIS server คือ server ที่มี UPS ต่อผ่าน serial port ซึ่งจะมีการรับส่งสัญญาณกับ UPS โดยตรง
    ส่วน NIS client คือ server ที่ไม่มีการต่อผ่าน UPS โดยตรง แต่อาศัยการรับสัญญาณจาก NIS server เท่านั้น

    ในระบบหนึ่งๆจะมี NIS server เพียงตัวเดียว แต่มี NIS client ที่เป็นสมาชิกได้หลายๆตัว
    ต้องแก้ไข config ในแฟ้ม /etc/apcupsd/apcupsd.conf เพื่อให้เวลาไฟดับแล้วระบบจะสั่ง shutdown server สมาชิกทุกตัว

  9. ตัวอย่างสำหรับ Server ตัวที่ต่อกับ UPS ผ่าน serial เป็น NIS server  ให้แก้ไขแฟ้ม /etc/apcupsd/apcupsd.conf
    ปรกติจะเหมือนกับแบบ standalone ตัวเดียว  เพียงแต่เพิ่มบรรทัดว่า NETSERVER on เท่านั้น

    UPSCABLE smart
    UPSTYPE smartups
    DEVICE /dev/ttyS0
    UPSCLASS standalone
    UPSMODE disable
    NETSERVER on
    NISIP 0.0.0.0
    NISPORT 3551

  10. ตัวอย่างสำหรับ Server สมาชิกตัวที่ต่อเป็น NIS client ให้แก้ไขแฟ้ม /etc/apcupsd/apcupsd.conf ดังนี้

    UPSCABLE ether
    UPSTYPE net
    DEVICE mymaster.com:3551
    UPSCLASS standalone
    UPSMODE disable

  11. ทดสอบตรวจสอบระบบด้วยคำสั่ง sudo /etc/init.d/apcupsd status หากมีข้อความฟ้องประมาณว่า

    FATAL ERROR in apcaccess.c at line 243
    tcp_open: cannot connect to server localhost on port 3551.
    ERR=Connection refused

    ไม่ต้องตกใจ เนื่องจากระบบตื่นช้า รอสัก 1 นาที แล้วลองใหม่

    ตัวอย่างข้อมูลที่ได้จาก NIS server
    APC      : 001,051,1213
    DATE     : Fri Feb 23 15:00:37 ICT 2007
    HOSTNAME : ftp1.psu.ac.th
    RELEASE  : 3.14.0
    VERSION  : 3.14.0 (9 February 2007) redhat
    UPSNAME  : FTP
    CABLE    : Custom Cable Smart
    MODEL    : Smart-UPS 2200
    UPSMODE  : Stand Alone
    STARTTIME: Fri Feb 23 14:59:18 ICT 2007
    STATUS   : ONLINE
    LINEV    : 220.3 Volts
    LOADPCT  :  22.1 Percent Load Capacity
    BCHARGE  : 100.0 Percent
    TIMELEFT :  70.0 Minutes
    MBATTCHG : 5 Percent
    MINTIMEL : 3 Minutes
    MAXTIME  : 0 Seconds
    MAXLINEV : 221.7 Volts
    MINLINEV : 218.8 Volts
    OUTPUTV  : 220.3 Volts
    SENSE    : Medium
    DWAKE    : 300 Seconds
    DSHUTD   : 090 Seconds
    DLOWBATT : 02 Minutes
    LOTRANS  : 196.0 Volts
    HITRANS  : 253.0 Volts
    RETPCT   : 060.0 Percent
    ITEMP    : 23.4 C Internal
    ALARMDEL : 5 seconds
    BATTV    : 55.4 Volts
    LINEFREQ : 50.2 Hz
    LASTXFER : Unacceptable line voltage changes
    NUMXFERS : 0
    TONBATT  : 0 seconds
    CUMONBATT: 0 seconds
    XOFFBATT : N/A
    SELFTEST : NO
    STESTI   : 336
    STATFLAG : 0x07000008 Status Flag
    REG1     : 0x00 Register 1
    REG2     : 0x00 Register 2
    REG3     : 0x00 Register 3
    MANDATE  : 04/19/05
    SERIALNO : JS0517007488
    BATTDATE : 04/19/05
    NOMOUTV  : 230
    NOMBATTV :  48.0
    EXTBATTS : 0
    FIRMWARE : 654.12.I
    APCMODEL : FWI
    END APC  : Fri Feb 23 15:00:40 ICT 2007

    ตัวอย่างข้อมูลที่ได้จาก NIS  client
    APC      : 001,042,1046
    DATE     : Fri Feb 23 15:02:39 ICT 2007
    HOSTNAME : vc1
    RELEASE  : 3.12.4
    VERSION  : 3.12.4 (19 August 2006) redhat
    UPSNAME  : FTP
    CABLE    : Ethernet Link
    MODEL    : Smart-UPS 2200
    UPSMODE  : Stand Alone
    STARTTIME: Fri Feb 23 14:52:56 ICT 2007
    MASTERUPD: Fri Feb 23 15:02:39 ICT 2007
    MASTER   : ftp.psu.ac.th:3551
    STATUS   : ONLINE SLAVE
    LINEV    : 220.3 Volts
    LOADPCT  :  21.4 Percent Load Capacity
    BCHARGE  : 100.0 Percent
    TIMELEFT :  72.0 Minutes
    MBATTCHG : 5 Percent
    MINTIMEL : 3 Minutes
    MAXTIME  : 0 Seconds
    MAXLINEV : 221.7 Volts
    MINLINEV : 218.8 Volts
    OUTPUTV  : 220.3 Volts
    SENSE    : Medium
    DLOWBATT : 02 Minutes
    LOTRANS  : 196.0 Volts
    HITRANS  : 253.0 Volts
    RETPCT   : 060.0 Percent
    ITEMP    : 23.4 C Internal
    BATTV    : 55.4 Volts
    LINEFREQ : 50.0 Hz
    LASTXFER : Unacceptable line voltage changes
    NUMXFERS : 0
    TONBATT  : 0 seconds
    CUMONBATT: 0 seconds
    XOFFBATT : N/A
    SELFTEST : NO

  12.  ถ้าต้องการให้ส่งอีเมล์แจ้งปัญหาเตือนแก่ผู้ดูระบบ ต้องปรับปรุงแฟ้มดังต่อไปนี้คือ
    /etc/apcupsd/changeme, /etc/apcupsd/commfailure, /etc/apcupsd/commok, /etc/apcupsd/offbattery, /etc/apcupsd/onbattery
    แก้ไขเปลี่ยนข้อความบรรทัดจากเดิมว่า  APCUPSD_MAIL="mail"
    ให้เป็นว่า APCUPSD_MAIL="/usr/sbin/sendmail"
    แก้ไขให้ครบทุกแฟ้ม ต่อไปเมื่อระบบมีปัญหาก็จะมีอีเมล์แจ้งเตือนให้แก่ผู้ดูแลระบบ