ติดตั้ง nagios บน ubuntu

จาก Wiki Opensource

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

ดูแลโดย WIPAT


อยู่ระหว่างการทดสอบ ห้ามใช้งานจริง



  1. ติดตั้งด้วยคำสั่ง sudo apt-get install nagios3
    ระหว่างติดตั้งที่หน้าต่างถาม Nagios web administration password:  ไม่ต้องป้อนอะไร ให้เคาะแป้น Enter
    ได้หน้าต่างใหม่ถาม Password confirmation: ไม่ต้องป้อนอะไร ให้กดแป้น Enter
    ระบบจะติดตั้งต่อจนเสร็จ

    ตั้งค่ารหัสผ่านของ Nagios web cgi ให้เป็น 123456 ด้วยคำสั่ง
    sudo htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin
    ได้ข้อความว่า New password:  ให้ป้อนว่า 123456 แล้วกดแป้น Enter
    ได้ข้อความว่า Re-type new password: ให้ป้อนว่า 123456 เหมือนเดม แล้วกดแป้น Enter
    ได้ข้อความตอบกลับมาว่า Adding password for user nagiosadmin  เป็นอันเสร็จ

    ทดสอบดูผลงานได้ที่เวบ http://localhost/nagios3
    ได้หน้าต่าง Authentication Required
    ที่ช่อง User Name: ให้ป้อนว่า nagiosadmin
    ที่ช่อง Password: ให้ป้อนว่า 123456
    แล้วคลิกปุ่ม OK  ก็จะเข้าหน้าเวบของ Nagios ได้

  2. ตัวอย่างการสร้าง user ชื่อ guest รหัส 123456 ที่อนุญาติให้ read ได้อย่างเดียว ใช้คำสั่ง
    sudo htpasswd -c /etc/nagios3/htpasswd.users guest
    ได้ข้อความว่า New password:  ให้ป้อนว่า 123456 แล้วกดแป้น Enter
    ได้ข้อความว่า Re-type new password: ให้ป้อนว่า 123456 เหมือนเดม แล้วกดแป้น Enter
    ได้ข้อความตอบกลับมาว่า Adding password for user guese

    แก้ไขแฟ้ม /etc/nagios3/cgi.cfg  ปรับปรุงบรรทัดตัวแปรให้เป็นดังนี้
    authorized_for_all_services=nagiosadmin,guest
    authorized_for_all_hosts=nagiosadmin,guest

  3. ตัวอย่างการสร้าง plugin เพื่อตรวจสอบ ntp server ด้วย shell script
    สร้างแฟ้มชื่อ /usr/lib/nagios/plugins/check_ntpdate มีข้อความประมาณว่า
    #! /bin/bash
    STATE_OK=0
    STATE_CRITICAL=2
    NTPDATE="sudo /usr/sbin/ntpdate"
    MYOUT=$(${NTPDATE} $1 2>/dev/null)
    VALID=$(echo ${MYOUT}|grep "offset")
    if [ -n "${VALID}" ] ; then
      STATUS=${STATE_OK}
      echo ${MYOUT}
    else
      STATUS=${STATE_CRITICAL}
    fi
    exit ${STATUS}

    ตั้งแฟ้มให้เป็นแบบ execute ได้ด้วยคำสั่ง
    sudo chmod +x /usr/lib/nagios/plugins/check_ntpdate

    เพิ่มสิทธิ์ของ nagios ให้สามารถใช้คำสั่ง ntpdate ด้วยสิทธิ์เท่า root
    โดยแก้ไขแฟ้ม /etc/sudoers  เพิ่มต่อท้ายด้วยบรรทัดข้อความว่า
    nagios ALL=NOPASSWD: /usr/sbin/ntpdate

    ทดสอบการทำงานของ script ด้วยคำสั่งประมาณว่า
    sudo -u nagios /usr/lib/nagios/plugins/check_ntpdate pool.ntp.org ; echo $?
    หาก ntpserver พร้อมทำงาน ก็จะได้ข้อความตัวอย่างตอบกลับมาประมาณว่า
    ... ntpdate[...]: adjust time server 158.108.212.149 offset -0.006495 sec
    0
    หาก ntpserver ไม่พร้อมทำงาน ก็จะได้ข้อความตัวอย่างตอบกลับมาว่า
    2

  4. ตัวอย่างการเพิ่มวิธีการตรวจสอบ NTP server ด้วยแฟ้ม shell script  /usr/lib/nagios/plugins/check_ntpdate ที่พัฒนาเอง
    สมมติ NTP server ชื่อ pool.ntp.org เข้าไปในระบบ nagios ทำดังนี้

    สร้างแฟ้ม /etc/nagios3/conf.d/ntp-server.cfg มีข้อมูลประมาณว่า
    define host {
            host_name   NTP-server
            address     pool.ntp.org
            use         generic-host
            }

    แก้ไขแฟ้ม /etc/nagios3/conf.d/hostgroups_nagios2.cfg เพิ่มข้อมูลต่อท้ายประมาณว่า
    define hostgroup {
            hostgroup_name  ntp-servers
            members         NTP-server
            }

    แก้ไขแฟ้ม /etc/nagios3/conf.d/services_nagios2.cfg เพิ่มข้อมูลต่อท้ายประมาณว่า
    define service {
            hostgroup_name                  ntp-servers
            service_description             NTP
            check_command                   check_ntpdate
            use                             generic-service
            notification_interval           0 ; set > 0 if you want to be renotified
    }

    แก้ไขแฟ้ม /etc/nagios-plugins/config/ntp.cfg  เพิ่มข้อมูลต่อท้ายประมาณว่า
    define command{
            command_name    check_ntpdate
            command_line    /usr/lib/nagios/plugins/check_ntpdate $HOSTADDRESS$
    }

    เสร็จแล้วทำการ reload nagios ด้วยคำสั่ง
    sudo /etc/init.d/nagios3 reload

    ทำแค่นี้ ทดสอบผลงานได้เลย
    หากถูกต้อง จะต้องมี Host ชื่อ NTP-server และ Servie ชื่อ NTP แสดงออกมา