สารบัญ:

ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi: 14 ขั้นตอน
ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi: 14 ขั้นตอน

วีดีโอ: ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi: 14 ขั้นตอน

วีดีโอ: ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi: 14 ขั้นตอน
วีดีโอ: Advanced Systems Monitoring with Nagios, PNP and Nconf 2024, พฤศจิกายน
Anonim
ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi
ติดตั้งและตั้งค่า Shinken Network Monitor บน Raspberry Pi

หมายเหตุ: shinken ได้รับการอัปเดตล่าสุดใน MAR2016 เป็นเวอร์ชันเสถียร 2.4.3 ดังนั้น เมื่อหลายปีก่อน ฉันได้เปลี่ยนไปใช้วิธีอื่นในการตรวจสอบเครือข่ายภายในบ้าน นอกจากนี้ ดูเหมือนว่า php5 จะไม่พร้อมใช้งาน

ดังนั้นโปรดอย่าใช้คำแนะนำนี้!

ติดตั้งและตั้งค่า shinken Network Monitor เวอร์ชันล่าสุดสำหรับบ้านหรือธุรกิจขนาดเล็ก

ในที่ทำงาน ทีมของฉันพัฒนาซอฟต์แวร์สำหรับเซิร์ฟเวอร์มากกว่า 75 คลาส โดยมีอินสแตนซ์มากกว่า 300 รายการในศูนย์ข้อมูลหลายแห่งและจุดแสดงตน มีทีมปฏิบัติการที่มีประสบการณ์คอยตรวจสอบและดูแลเซิร์ฟเวอร์เหล่านี้ให้ทำงาน 24x7 ฉันไม่มีความรู้หรือความเชี่ยวชาญของพวกเขาเลย นอกจากตัวฉันเองแล้ว ฉันไม่มีใครสนับสนุนเครือข่ายในบ้านของฉันเลย และฉันต้องการใช้เวลาเป็นศูนย์ในการติดตามและดูแลเครือข่ายในบ้านของฉัน

LAN ที่บ้านของฉันมีอุปกรณ์เชื่อมต่อมากกว่า 40 เครื่อง ซึ่งใหญ่กว่าที่ฉันคาดไว้มาก บ้านหลายหลังหรือแม้แต่บ้านของคุณก็มีอุปกรณ์เชื่อมต่อจำนวนมาก ตัวอย่างของอุปกรณ์เครือข่ายคือ:

  • แล็ปท็อปและแท็บเล็ต
  • ผู้อ่าน eBook
  • โทรศัพท์มือถือ
  • รังเทอร์โมสตัท, กริ่งประตู
  • ระบบรักษาความปลอดภัย ระบบชลประทาน
  • สมาร์ททีวี เครื่องรับ U-verse และ DVR
  • เซิร์ฟเวอร์สื่อสตรีมมิ่ง (Apple TV, Roku, ChromeCast FireStick)
  • ราสเบอร์รี่ pi โครงการบ้านอัตโนมัติ

เมื่อมีอุปกรณ์ในบ้านเชื่อมต่อกันมากขึ้น ฉันคาดว่าเครือข่ายของฉันจะเติบโต

ทำไมบ้านควรมีการตรวจสอบเครือข่าย? มีเซิร์ฟเวอร์และบริการที่สำคัญบนเครือข่ายภายในบ้าน ตัวอย่างของเซิร์ฟเวอร์ที่สำคัญ ได้แก่ เกตเวย์ ISP จุดเชื่อมต่อไร้สาย ระบบรักษาความปลอดภัย และระบบชลประทาน ตัวอย่างของบริการที่สำคัญ ได้แก่ การสำรองข้อมูลพีซีหรือ MAC ตรวจสอบให้แน่ใจว่า Wi-Fi หรืออินเทอร์เน็ตทำงานด้วยความเร็วที่กำหนด เพื่อให้แน่ใจว่าบริการ/เซิร์ฟเวอร์ที่สำคัญกำลังทำงานอยู่ ควรตรวจสอบด้วยตนเองเป็นระยะๆ ซึ่งต้องใช้เวลามาก หรืออีกทางหนึ่ง เซิร์ฟเวอร์ควรได้รับการตรวจสอบโดยอัตโนมัติโดยใช้การตรวจสอบเครือข่าย ซึ่งจะพยายามแก้ไขปัญหาและส่งการแจ้งเตือนหากไม่สามารถแก้ไขได้

Shinken คือ Network Monitor ที่ทำงานบนคอมพิวเตอร์ทุกเครื่อง ในคำแนะนำนี้ ฉันจะให้มันรัน Raspberry Pi (2 หรือ 3) ที่ใช้ Diet-Pi หรือ raspbian

มีแอปพลิเคชั่นตรวจสอบเครือข่ายที่ยอดเยี่ยมมากมาย ตัวอย่าง ได้แก่ SolarWinds, NetCool และ nagios แอปพลิเคชันเหล่านี้สามารถตรวจสอบ ระบุปัญหา แก้ไขตัวเอง และส่งการแจ้งเตือน

โดยทั่วไป ฉันพยายามทำให้เครือข่ายของฉันมีต้นทุนต่ำและง่ายต่อการบำรุงรักษาและอัปเดต ฉันได้จำกัดความสนใจไปที่แอปพลิเคชันโอเพ่นซอร์สที่เขียนในภาษาจำนวนน้อย ภาษาที่ฉันเลือกคือ: python, bash, html และ css

Shinken เป็นโอเพ่นซอร์สเขียนซ้ำของ nagios ใน python ดังนั้น shinken จึงเหมาะสมกับข้อจำกัดของฉันและตรงตามความต้องการของฉัน

Instrucable ให้คำแนะนำทีละขั้นตอนหากคุณต้องการทำด้วยมือ แต่ฉันต้องการกระบวนการที่ทำซ้ำได้ ดังนั้นฉันจึงรวมสคริปต์การติดตั้งแบบไม่ต้องใส่ข้อมูลไว้ในภาคผนวก ซึ่งทำทุกอย่างด้วยคำสั่งสองสามคำสั่ง หากมีสิ่งผิดปกติเกิดขึ้น ให้เรียกใช้การติดตั้งแบบไม่ต้องใส่ข้อมูลและควรแก้ไขปัญหาส่วนใหญ่

ขั้นตอนที่ 1: รวบรวมชิ้นส่วน

การทำงานล่วงเวลา ฉันพบว่าส่วนต่างๆ ด้านล่างทำงานได้ดีที่สุดในแอปพลิเคชันของฉัน ชิ้นส่วนเหล่านี้มีราคาแพงกว่าชุดสตาร์ทเตอร์ทั่วไป

รับชิ้นส่วนและเครื่องมือ (ราคาเป็น USD):

  • Raspberry Pi 2 รุ่น B (Pi 3) Element14 $35 ($39)
  • อแด็ปเตอร์ Panda 300n WiFi Amazon $16.99 (ไม่จำเป็นหากใช้ Pi 3)
  • อะแดปเตอร์แปลงไฟ USB 5.2V 2.1A จาก Amazon $5.99
  • สาย Micro USB เป็น USB 3 ฟุต จาก Amazon $4.69
  • สายเคเบิลอีเทอร์เน็ต CAT5e/6 $x.xx ขึ้นอยู่กับความยาว
  • เคสจาก Amazon $6.99
  • SanDisk Ultra 16 GB microSDHC Class 10 พร้อมอะแดปเตอร์ (SDSQUAN-016G-G4A) จาก Amazon $ 8.99
  • รายการทั่วไปหรือนำกลับมาใช้ใหม่:

    • MacBook Pro (ฉันใช้ MAC เพราะมันรัน linux เป็น OS พื้นฐาน อย่างไรก็ตาม สามารถใช้ Windows PC ได้)
    • FTDI TTL-232R-RPI สายเคเบิล Serial to USB จาก Mouser $15
    • ทีวีพร้อมพอร์ต HDMI
    • แป้นพิมพ์ USB
    • เมาส์ USB
    • สาย HDMI (จำเป็นในการผ่านครั้งแรกเท่านั้น)

หมายเหตุ:

  • ข้อความที่อยู่ในโพดำ เช่น ♣replace-this♣ ควรแทนที่ด้วยค่าจริง แน่นอน เอาจอบออก
  • คำสั่งระบุด้วย $ หากคำสั่งตัดและวาง ห้ามคัดลอกไฟล์ $

ขั้นตอนที่ 2: ตั้งค่า Raspberry Pi

ใช้คำแนะนำนี้เพื่อตั้งค่า Raspberry Pi ที่รัน DietPi หากคุณต้องการ Raspbian สามารถใช้กับคำแนะนำนี้ได้

ฉันเปลี่ยนชื่อโฮสต์เป็น ♣monitor-hostname♣ แทนที่รายการใน ♣ ด้วยค่าจริง

ขั้นตอนที่ 3: เปิดหน้าต่างเทอร์มินัลแล้วเข้าสู่ระบบ

ก่อนแต่ละขั้นตอนต่อไปนี้:

  • เปิดหน้าต่างเทอร์มินัลบน MacBook หรือ PC จากนั้น
  • เข้าสู่ระบบ Raspberry Pi

$ ssh pi@♣raspberry-pi-ip-address♣

หากคุณติดตั้ง avahi-daemon บน Raspberry Pi คุณสามารถเข้าสู่ระบบด้วยวิธีนี้ (ฉันขี้เกียจและฉันไม่ต้องการจำที่อยู่ IP):

$ ssh pi♣ชื่อโฮสต์♣.local

ขั้นตอนที่ 4: อัปเกรดและอัปเดตเสมอ

ก่อนติดตั้งแพ็คเกจใหม่บนเซิร์ฟเวอร์ ให้อัปเดตและอัปเกรดเสมอ

  • อัปเดตดาวน์โหลดรายการแพ็คเกจล่าสุดจากที่เก็บที่เหมาะสม
  • อัพเกรดอัพเดทแพ็คเกจ
  • Autoremove ลบแพ็คเกจที่ไม่จำเป็นอีกต่อไป
  • รีบูตเป็นตัวเลือก บริการบางอย่างต้องเริ่มใหม่หลังจากการอัปเกรด การรีบูตเป็นวิธีที่ขี้เกียจเพื่อให้แน่ใจว่าบริการที่จำเป็นทั้งหมดได้รับการรีสตาร์ทอย่างเหมาะสม

$ sudo apt-get update -y

$ sudo apt-get upgrade -y $ sudo apt-get autoremove $ sudo reboot

หรือคุณสามารถข้ามขั้นตอนที่เหลือทั้งหมดและใช้การติดตั้งแบบไม่ต้องใส่ข้อมูลในภาคผนวก

ขั้นตอนที่ 5: ติดตั้ง Shinken Dependencies

บ่อยครั้งที่ Shinken ทำงานบนเซิร์ฟเวอร์ขนาดใหญ่มากและติดตั้งบนเครื่องเสมือน (VMs) เซิร์ฟเวอร์ขนาดใหญ่สามารถเรียกใช้ VM ได้หลายเครื่อง VM มีประโยชน์มากมายในการดูแลเซิร์ฟเวอร์หลายเครื่อง หรือหลายอินสแตนซ์ของเซิร์ฟเวอร์เดียวกัน VMs ใช้ทรัพยากรเซิร์ฟเวอร์ราคาแพงอย่างมีประสิทธิภาพ

เครื่องเสมือนสามารถทำงานบน Raspberry Pi อย่างไรก็ตาม ข้อดีหลายประการของการรัน VM บน Raspberry Pi ราคา $35 จะสูญหายไป Shinken ไม่ต้องการ VM คำแนะนำนี้ไม่ได้ใช้เครื่องเสมือน

ติดตั้งการพึ่งพา shinken: sqlite3, php5, python3 และไลบรารี python บางตัว:

$ sudo apt-get ติดตั้ง sqlite3 -y

$ sudo apt-get ติดตั้ง php5 -y $ sudo apt-get ติดตั้ง python3 -y $ sudo apt-get ติดตั้ง python-pip python-pycurl python-cherrypy3 python-setuptools -y

ขั้นตอนที่ 6: ติดตั้ง Shinken

เพิ่มผู้ใช้ shinken และติดตั้ง shaken โดยใช้ pip

$ sudo adduser shinken

$ sudo pip ติดตั้ง shinken $ sudo adduser shinken sudo

ด้านบนติดตั้ง shinken และ daemons บางตัวใน /etc/init.d:

  • shinkenpoller
  • ตัวทำปฏิกิริยาชินเคน
  • ตัวรับชินเคน
  • shinken-scheduler
  • โบรกเกอร์ชินเคน

ขั้นตอนที่ 7: เริ่มต้นและเริ่ม Shinken

ในกรณีที่ชินเคนกำลังวิ่งอยู่ ให้หยุดมัน สร้างไดเร็กทอรีบันทึกและตั้งค่าการอนุญาต

$ sudo mkdir /var/log/shinken

$ sudo chmod 777 /var/log/shinken $ sudo service shinken หยุด

รันสิ่งต่อไปนี้เพื่อเริ่มต้นและเริ่มต้น shinken:

$ sudo shinken --init

$ sudo /etc/init.d/shinken start

ตรวจสอบว่า shinken ได้รับการกำหนดค่าอย่างถูกต้อง:

$ /usr/bin/shinken-arbiter -v -c /etc/shinken/shinken.cfg

ทำให้ shinken เริ่มต้นในการบูต

$ sudo update-rc.d shinken defaults

ขั้นตอนที่ 8: ตั้งค่าและกำหนดค่าSqlite3

ตั้งค่า sqlite ให้เป็นฐานข้อมูล shinken:

$ sudo shinken ติดตั้ง sqlitedb

สร้างไฟล์กำหนดค่าเพื่อเพิ่ม sqlite:

$ sudo nano /etc/shinken/modules/sqlitedb.cfg

ฉันใช้ sqlite3 ไม่ชัดเจนว่าแม็พนี้ใน sqlite3 หรือในไฟล์ sqlite DB ใดโดยเฉพาะ

กำหนดโมดูล {

module_name sqlitedb module_type sqlitedb uri /var/lib/shinken/webui.db }

เปลี่ยนการอนุญาตในไฟล์

$ sudo chmod 777 /etc/shinken/modules/sqlitedb.cfg

ขั้นตอนที่ 9: ติดตั้ง Shinken Web UI

ติดตั้ง Web UI ของ Shinken:

$ sudo /usr/bin/shinken ค้นหา webui

$ sudo /usr/bin/shinken ติดตั้ง webui Grabbing: webui ตกลง webui

แก้ไขการกำหนดค่า Web UI และเปลี่ยนรายการ: CHANGE_ME ไม่รู้จะเปลี่ยนเป็นอะไรดี ฉันเปลี่ยนเป็นคำสุ่ม

$ sudo nano /etc/shinken/modules/webui.cfg

แก้ไขมาสเตอร์โบรคเกอร์เพื่อรวมโมดูล Web UI

$ sudo nano /etc/shinken/brokers/broker-master.cfg

เปลี่ยนบรรทัด:

โมดูล

ถึง

โมดูล webui

รีสตาร์ท shinken

$ sudo /etc/init.d/shinken restart

ขั้นตอนที่ 10: เพิ่มผู้ใช้และรหัสผ่าน

ตรวจสอบให้แน่ใจว่ามีการติดตั้งวิธีการให้สิทธิ์ผู้ใช้ shinken

$ sudo shinken ติดตั้ง auth-cfg-password แก้ไขการกำหนดค่า Web UI ของ Shinken

$ sudo nano /etc/shinken/modules/webui.cfg

เปลี่ยนเป็นลักษณะ:

โมดูล auth-cfg-password

Vince35 แนะนำให้รีสตาร์ท ณ จุดนี้:

$ sudo /etc/init.d/shinken restart

เปิดหน้าต่างเบราว์เซอร์และเข้าสู่ระบบโดยใช้รหัสผ่านและชื่อผู้ใช้: admin, admin. ป้อนข้อมูลต่อไปนี้ใน URL ของเบราว์เซอร์ (ลบช่องว่างรอบทวิภาค):

https://♣ชื่อโฮสต์♣.local:7767

เข้าสู่ระบบโดยใช้ผู้ดูแลระบบ raspberry-pi-password

และมันควรจะได้ผล!

ขั้นตอนที่ 11: ภาคผนวก: ข้อมูลอ้างอิง

การตรวจสอบเครือข่าย

เอกสารภาพรวมการตรวจสอบเครือข่ายที่น่าสนใจ

จอภาพเครือข่าย

  • fing:
  • HowToGeek.com - แหล่งที่ยอดเยี่ยม
  • MRTG:
  • เน็ตบีซ:
  • Raspberry Pi Geek:
  • Shinken: เขียน Nagios ใหม่ใน python:
  • ติดตั้ง Shinken:
  • การตั้งค่า Shinken Web UI:
  • GitHub systemd:
  • Rob Layton: การตั้งค่าเซิร์ฟเวอร์ตรวจสอบ Shinken ด้วยตนเอง

ขั้นตอนที่ 12: ภาคผนวก: อัปเดต

15 ต.ค. 2559: อัปเดตภาพหน้าปกเพื่อรวมโลโก้ Shinken และ Raspberry Pi

16 ต.ค. 2559: เรียบเรียงข้อความใหม่บางส่วน ไม่มีการเปลี่ยนแปลงทางเทคนิค

19 ต.ค. 2559: อัปเดตคำสั่งและ UAI เพื่อเริ่ม shinken เมื่อรีบูต

การปรับปรุงในอนาคต:

เพิ่มระบบที่จะเฝ้าติดตาม ไม่ว่าจะเป็นในคำสั่งสอนหรือภาคผนวกพร้อมสคริปต์ตัวอย่าง

ขั้นตอนที่ 13: ภาคผนวก: การแก้ไขปัญหา

เปลี่ยนการอนุญาตบนไดเร็กทอรี

/usr/bin

/etc/init.d /etc/shinken /var/lib/shinken/modules/webui/ /etc/shinken/modules/

ฉันรีสตาร์ท Raspberry Pi แต่ shinken ไม่เริ่มทำงาน ฉันไม่สามารถเขียนไปยังไดเร็กทอรีบันทึก ดังนั้นฉันจึงทำการเปลี่ยนแปลงต่อไปนี้:

sudo mkdir /var/log/shinken

sudo chmod 777 /var/log/shinken

shinken localhost ลง

หาก localhost แสดงเป็นลง

$ sudo nano /etc/network/interfaces

ด้วยเหตุผลใดก็ตาม ไฟล์ /etc/network/interfaces ของฉันมักจะมีปัญหา เปลี่ยนหนึ่งบรรทัดนี้:

อัตโนมัติ lo iface lo inet ลูปแบ็ค

ถึงสองบรรทัดนี้:

รถยนต์

iface lo inet ลูปแบ็ค

และรีบูต

$ sudo รีบูต

init.d ควรเริ่ม shinken โดยอัตโนมัติ แต่ฉันต้องทำสิ่งนี้:

$ sudo /etc/init.d/shinken restart

ขั้นตอนที่ 14: ภาคผนวก: การติดตั้งแบบไม่ต้องใส่ข้อมูล

ทำให้การติดตั้งและการกำหนดค่า shinken เป็นเรื่องง่ายโดยทำตามขั้นตอนที่แนะนำได้โดยอัตโนมัติโดยใช้สคริปต์การติดตั้ง bash แบบไม่ต้องใส่ข้อมูล สคริปต์นี้ถือว่า Raspberry pi ทำงานด้วย raspbian หรือ dietpi ซึ่งตั้งค่าโดยใช้ลิงก์ที่ฝังตัวใดลิงก์หนึ่ง

ฉันเขียนสคริปต์เสร็จแล้วบน github และ

  • ทดสอบแหล่งที่มาของ dietpi
  • ทดสอบสคริปต์การติดตั้งแบบไม่ต้องใส่ข้อมูลบน dietpi

    • วิ่งครั้งเดียว
    • วิ่งหลายครั้งโดยมี CTRL-c ขัดจังหวะ
  • ทดสอบสคริปต์การติดตั้งแบบไม่ต้องใส่ข้อมูลบน raspbian และ diet-pi

สคริปต์ใช้ชื่อผู้ใช้ = pi และรหัสผ่าน = ราสเบอร์รี่ และสคริปต์กำลังพยายามติดตั้ง shinken หากไม่ถูกต้อง ให้แก้ไขไฟล์ตามนั้น

เปิดหน้าต่างเทอร์มินัลบน MacBook หรือ PC และเรียกใช้คำสั่งต่อไปนี้:

$ ssh pi@♣ip-address♣

$ sudo wget https://raw.githubusercontent.com/dumbo25/uai_install_shinken_rpi/master/shinken_uai.sh $ sudo chmod o+x shinken_uai.sh $ sudo bash shinken_uai.sh $ sudo reboot $ sudo /etc/init.d/ shinken เริ่มต้นใหม่

สคริปต์ใช้เวลาสองสามนาทีในการรันไดเอท-พาย

อย่าลืมรีบูต Raspberry Pi และรอจนกว่า shinken เริ่มทำงาน

เปิดเบราว์เซอร์และในหน้าต่าง URL ให้ป้อน:

♣ip-address♣:7767

เข้าสู่ระบบโดยใช้ผู้ดูแลระบบและ ♣raspberry-pi-password♣

และมันควรจะได้ผล!

แนะนำ: