Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

Zabbix เป็นระบบการตรวจสอบ (monitoring) ระดับองค์กรแบบโอเพนซอร์ส ปัจจุบัน Zabbix เป็นหนึ่งในระบบตรวจสอบฟรีที่ได้รับความนิยมและทรงพลังมากที่สุด เนื่องจากการติดตั้งและกำหนดค่าที่ง่าย Zabbix อาจถูกใช้เพื่อตรวจสอบโครงสร้างพื้นฐานขนาดใหญ่ที่มีหลายร้อยโฮสต์ รวมถึงการตั้งค่าขนาดเล็ก ในบทความนี้เราจะแสดงวิธีติดตั้งและกำหนดค่าฟีเจอร์พื้นฐานของ Zabbix Server 5.0 พร้อมเว็บอินเทอร์เฟซบน Linux Ubuntu และ CentOS และวิธีติดตั้ง Zabbix Agent บนเซิร์ฟเวอร์ที่รัน Windows หรือ Linux และเพิ่มโฮสต์ใหม่สำหรับการตรวจสอบ

คุณสามารถดูอินเทอร์เฟซแดชบอร์ดของ Zabbix Server ได้จากภาพหน้าจอด้านล่าง

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

Zabbix ที่เรียบง่ายและง่ายต่อการกำหนดค่า เขียนด้วย C (เซิร์ฟเวอร์ โพร็อกซี่ และเอเยนต์) และ PHP (frontend) Zabbix Server และ Zabbix Proxy ทำงานบนระบบ Linux เท่านั้น Zabbix Agent สามารถติดตั้งบนระบบปฏิบัติการและแพลตฟอร์มที่รองรับหลากหลายได้

การติดตั้ง Zabbix Server ประกอบด้วย:

  • ไบนารี zabbix_server (โดยทั่วไปทำงานเป็นบริการ);
  • ฐานข้อมูล MySQL/MariaDB/PostgreSQL;
  • เว็บเซิร์ฟเวอร์ Apache2/Nginx พร้อม PHP handler;
  • ไฟล์ไซต์ frontend (.php, .js, .css ฯลฯ)

โดยทั่วไป แผนผังการทำงานจะเป็นแบบนี้:

  • Zabbix Agent ส่งข้อมูลไปยังเซิร์ฟเวอร์;
  • Zabbix Server รับและประมวลผลข้อมูล;
  • หากข้อมูลที่รับตรงตามเงื่อนไขที่ระบุ Trigger จะถูกกระตุ้น;
  • Trigger ที่ถูกกระตุ้นบ่งบอกว่ามีปัญหา การแจ้งเตือนปรากฏใน frontend (บนไซต์) และขึ้นอยู่กับการกำหนดค่า อาจส่งการแจ้งเตือนอีเมลหรือดำเนินการบางอย่าง (เช่น รีสตาร์ทบริการที่ตรวจสอบ)

Zabbix สามารถทำงานกับโปรโตคอลที่รู้จักทั้งหมดได้ ขอบคุณความสามารถในการใช้สคริปต์ภายนอก Zabbix จึงสามารถรันและรับข้อมูลจากสคริปต์/ไบนารีที่รันได้ใดๆ

วิธีติดตั้ง Zabbix Server บน Linux (Ubuntu, CentOS)

ในบทช่วยสอนนี้เราจะแสดงวิธีติดตั้ง Zabbix Server บน Linux (Ubuntu Server 18.4 และ CentOS 8) โดยใช้ตัวจัดการแพ็กเกจ

ไปที่หน้าดาวน์โหลด https://www.zabbix.com/download และเลือกที่เก็บ (repository) ที่ตรงกับการกระจาย Linux ของคุณ มีแพ็กเกจพร้อมสำหรับทุกการกระจาย Linux ยอดนิยม

ตัวอย่างเช่น เพื่อติดตั้ง Zabbix บน Ubuntu 18.04 ให้เลือกตามลำดับ:

Zabbix Version (5.0 LTS) -> OS Distribution (Ubuntu) -> OS Version (18.04 Bionic) -> Database (MySQL) -> Web server (Nginx or Apache)

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

ดาวน์โหลดและเพิ่มที่เก็บ:

# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt update

จากนั้นคุณสามารถติดตั้งแพ็กเกจที่จำเป็นได้:

# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

เพื่อติดตั้ง Zabbix บน CentOS 8/RHEL 8 ให้เชื่อมต่อที่เก็บกับเวอร์ชัน Zabbix ล่าสุด (คุณสามารถติดตั้ง Zabbix จากสาขา 4.0/5.0 LTS หรือ Zabbix 5.2 ล่าสุด):

# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all

สมมติว่า nginx, MySQL/MariaDB, php และ php-fpm ติดตั้งอยู่บนเซิร์ฟเวอร์แล้ว ใช้ตัวจัดการแพ็กเกจ dnf (yum) เพื่อติดตั้ง Zabbix Server และ Agent:

# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent

จากนั้นสร้างฐานข้อมูลสำหรับ Zabbix ใน MySQL (คุณสามารถใช้ PostgreSQL แทน MySQL ได้ เพียงแทน 'mysql' ด้วย 'pgsql' ในคำสั่งก่อนหน้า)

สร้างฐานข้อมูลและมอบสิทธิ์ให้บัญชีผู้ใช้ที่ Zabbix จะใช้เข้าถึง DB:

mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZabbixP@$$w0rd';
mysql> quit;

นำเข้าฐานข้อมูล Zabbix ป้อนรหัสผ่านที่คุณระบุเมื่อสร้างผู้ใช้

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix

แก้ไข /etc/zabbix/zabbix_server.conf ระบุรหัสผ่านของผู้ใช้ที่คุณสร้าง

DBPassword=Zabbix_User_Password

เนื่องจากในกรณีนี้ใช้ nginx เป็นเว็บเซิร์ฟเวอร์ ให้แก้ไข nginx.conf โดยยกเลิกความคิดเห็นบรรทัดต่อไปนี้:

# listen 80; # server_name example.com;

ลบ # และแทนที่ example.com ด้วยชื่อโฮสต์ของ Zabbix Server ในกรณีนี้คือ test.zabbix.local

สำหรับ Apache ให้แก้ไข /etc/httpd/conf.d/zabbix.conf

ตั้งค่าเขตเวลาใน PHP ยกเลิกความคิดเห็นบรรทัดต่อไปนี้ใน /etc/zabbix/php-fpm.conf:

php_value[date.timezone] = Canada/Pacific

ตรวจสอบให้แน่ใจว่าเวลาบน Zabbix Server ของคุณซิงโครไนซ์กับแหล่ง NTP ที่เชื่อถือได้

คุณยังสามารถตั้งค่าพารามิเตอร์ PHP เหล่านี้ใน /etc/php.ini:

memory_limit 128M upload_max_filesize 8M post_max_size 16M max_execution_time 300 max_input_time 300 max_input_vars 10000

เพิ่มบริการ zabbix-server ให้เริ่มต้นอัตโนมัติและรันมัน:

# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm

การกำหนดค่า Zabbix Web Interface

ตอนนี้คุณต้องกำหนดค่า Zabbix frontend (เว็บอินเทอร์เฟซ) เปิด URL ของ Zabbix Server ที่ระบุไว้ก่อนหน้านี้ในเบราว์เซอร์ ในกรณีนี้คือ test.zabbix.local (หรือโดเมนที่คุณระบุ จดจำให้ลงทะเบียนในไฟล์ hosts หรือบน DNS Server) ตรวจสอบว่าแสดง OK ถัดจากข้อกำหนดของตัวติดตั้งทั้งหมด

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

ระบุพารามิเตอร์การเชื่อมต่อฐานข้อมูลและข้อมูลประจำตัวผู้ใช้เพื่อเชื่อมต่อกับ DB ใช้ชื่อผู้ใช้และรหัสผ่านที่สร้างไว้ก่อนหน้านี้

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

ระบุชื่อของ Zabbix Server ของคุณ แนะนำให้ทิ้งพอร์ตเริ่มต้น – TCP 10051

ตามค่าเริ่มต้น Zabbix ใช้พอร์ตเครือข่าย 2 พอร์ต:

  • TCP 10050 — พอร์ต passive agent ซึ่ง Zabbix Server ใช้เพื่อสอบถามไคลเอ็นต์;;
  • TCP 10051 — พอร์ตที่ Zabbix Server รับข้อมูลจากไคลเอ็นต์ (active agents)

จำได้ว่าให้เปิดพอร์ตเหล่านี้บนไฟร์วอลล์ ตัวอย่างเช่น บน Zabbix Server ที่รัน CentOS คุณสามารถเปิดพอร์ตใน firewalld โดยใช้ firewall-cmd:

# firewall-cmd --add-service={http,https} --permanent firewall-cmd --add-port={10051/tcp,10050/tcp} –permanent

เพียงพอที่จะเปิดพอร์ต 10050 บน Agent:

# firewall-cmd --permanent --add-port=10050/tcp

รีสตาร์ท firewalld:

# firewall-cmd –reload

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

จากนั้นคลิก Next Step และ Finish หลังจากการติดตั้ง คุณจะได้รับแจ้งให้เข้าสู่ระบบ ค่าเริ่มต้นล็อกอินคือ Admin รหัสผ่านเริ่มต้นคือ zabbix (ให้เปลี่ยน)

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

การติดตั้ง Zabbix Server เสร็จสิ้น

คุณสามารถหาคำแนะนำทีละขั้นตอนเกี่ยวกับการติดตั้ง Zabbix Server บน OS อื่น และคู่มือวิธีสร้าง zabbix-server จากซอร์สโค้ด หรือรันใน docker containers ได้ที่ https://www.zabbix.com/download

คุณสามารถกำหนดค่า Zabbix ให้ตรวจสอบสิทธิ์ผู้ใช้โดยใช้ Active Directory LDAP

วิธีติดตั้ง Zabbix Agent บน Windows

ลองติดตั้ง Zabbix Agent บนเซิร์ฟเวอร์ที่รัน Windows และเพิ่มลงใน Zabbix Monitoring Server ของเรา คุณสามารถดาวน์โหลดเวอร์ชัน Zabbix Agent สำหรับ Windows ได้ที่นี่: https://www.zabbix.com/download_agents คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

เลือกเวอร์ชัน Agent ที่คุณต้องการ ผมจะเลือก msi (amd64) (ไม่มี OpenSSL) หากคุณจะติดตั้ง Zabbix Agent บนเซิร์ฟเวอร์/คอมพิวเตอร์โดเมนโดยใช้ GPO หรือ SCCM คุณสามารถดาวน์โหลดไฟล์ ZIP ที่มีไบนารีและไฟล์การกำหนดค่า

รันตัวติดตั้ง ยอมรับสัญญาอนุญาตและระบุการตั้งค่าสำหรับการเชื่อมต่อกับ Zabbix Server โปรดทราบว่าในฟิลด์ "Server or Proxy for active checks" ผมป้อนที่อยู่ IP ในรูปแบบ IP:PORT เนื่องจากผมทิ้งพอร์ตเริ่มต้น ผมจึงป้อน 192.168.20.30:10051

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

คลิก Next สองสามครั้ง แล้วคลิก Install

ตรวจสอบให้แน่ใจว่า Agent ถูกติดตั้งแล้ว Zabbix Agent ต้องปรากฏในรายการบริการ

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

อนุญาตการเชื่อมต่อขาเข้าจากที่อยู่ IP ของ Zabbix Server ใน Windows Firewall บนโฮสต์ Windows ของคุณ:

New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.20.30 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow

วิธีเพิ่มโฮสต์ใหม่บน Zabbix Server

เพื่อให้แน่ใจว่า Agent ทำงานได้ ให้เพิ่มโฮสต์ testnode2 ไปยัง Zabbix Server ของคุณและกำหนดการตรวจสอบบางอย่าง (Templates) ให้กับมัน

หมายเหตุ มี 2 ประเภทของการตรวจสอบใน Zabbix:

  • Passive — Zabbix Server ขอข้อมูลบางอย่างจาก Agent;
  • Active — Agent ส่งข้อมูลไปยัง Server

ระหว่างการติดตั้ง Agent เราได้ระบุ Server เป็น IP:PORT สำหรับ active checks

คุณสามารถเพิ่มโฮสต์ตรวจสอบใหม่ผ่าน Zabbix Web Interface ไปที่ Configuration -> Hosts

คลิก Create host และกรอกรายละเอียด โปรดทราบว่า Host name ต้องตรงกับชื่อโฮสต์ของอุปกรณ์หรือค่าของพารามิเตอร์ Hostname ในไฟล์การกำหนดค่า Agent อย่างแน่นอน

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

เพิ่มเทมเพลต Windows ในตัวในแท็บ Templates เทมเพลตใน Zabbix คือชุดของค่า Trigger กราฟ และกฎการค้นพบที่อาจถูกกำหนดให้กับโฮสต์หนึ่งหรือหลายตัว

เทมเพลตในตัวมีป้ายกำกับ "active" และหมายถึงจะใช้ active checks

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

คลิก Add เพื่อไม่ต้องรอจนกว่าเซิร์ฟเวอร์และ Agent จะมองเห็นกัน (ปกติใช้เวลาสองสามนาที) ให้รีสตาร์ทบริการ Zabbix Agent บน testnode2 และดูล็อกของ Agent (C:\Program Files\Zabbix Agent\zabbix_agentd.txt)

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

ข้อความ "started [active checks #1]" หมายความว่ามี active checks บางอย่างสำหรับโฮสต์ถูกพบบนเซิร์ฟเวอร์ จากนั้นดูข้อมูลที่ Zabbix Server ของคุณรับจาก Agent ไปที่ Monitoring -> Latest Data และเลือกโฮสต์ในฟิลด์ Hosts

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

ส่วนนี้แสดงข้อมูลล่าสุดบนโฮสต์ที่เลือกหรือกลุ่มโฮสต์ที่เข้ามาที่ Zabbix Server

โปรดทราบว่าในกรณีของผม Zabbix Dashboard มีการแจ้งเตือนว่าบริการ BITS ไม่ได้ทำงาน การแจ้งเตือนปรากฏขึ้นเนื่องจากเรากำหนดเทมเพลตในตัวให้กับโฮสต์ของเรา หนึ่งในเทมเพลตมีการตรวจสอบ BITS และ Trigger ที่เกี่ยวข้องถูกกระตุ้นหากบริการ BITS ไม่อยู่ในสถานะ Running

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

Agent สำหรับ Windows ถูกกำหนดค่าแล้ว

การติดตั้ง Zabbix Agent บน Linux

ลองติดตั้ง Zabbix Agent บน Linux เพื่อติดตั้ง Zabbix Agent บน Ubuntu Server 18.04 โดยใช้ตัวจัดการแพ็กเกจ ให้ดาวน์โหลดและติดตั้ง Zabbix repo จากนั้นติดตั้ง Zabbix Agent จากที่เก็บ:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo apt update
# sudo apt -y install zabbix-agent

เพื่อเพิ่มที่เก็บและติดตั้ง Zabbix Agent บน CentOS ให้ใช้คำสั่งเหล่านี้:
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-agent

ก่อนเริ่ม Zabbix Agent ให้แก้ไขไฟล์การกำหนดค่า /etc/zabbix/zabbix_agentd.conf ระบุที่อยู่ IP ของ Zabbix Server ของคุณสำหรับ active checks

Server=IP ServerActive=192.168.20.30:10051 Hostname=testagent

จากนั้นเริ่มบริการ Agent:

# service zabbix-agent start

ตรวจสอบให้แน่ใจว่า Agent เริ่มต้นสำเร็จแล้ว

# cat /var/log/zabbix/zabbix_agentd.log

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

บรรทัด "cannot parse list of active checks" หมายความว่าไม่มี active checks สำหรับโฮสต์บนเซิร์ฟเวอร์

เหมือนกับ Windows Agent คุณต้องเพิ่มโฮสต์ Linux ของคุณไปยัง Zabbix โปรดทราบพารามิเตอร์ Host name ในการตั้งค่าโฮสต์ของ Zabbix Server ของคุณ: ต้องตรงกับพารามิเตอร์ Hostname ที่เราระบุในไฟล์การกำหนดค่า Zabbix Agent ในไฟล์กำหนดค่าข้างต้น ผมระบุชื่อโฮสต์เป็น testagent

คู่มือการติดตั้งและกำหนดค่าพื้นฐาน Zabbix

รีสตาร์ท Zabbix Agent ของคุณและตรวจสอบล็อก ตรวจสอบให้แน่ใจว่าข้อมูลจาก Agent ปรากฏบน Zabbix Server ของคุณ Zabbix Agent บน Linux ถูกกำหนดค่าแล้ว
ในบทความต่อไป เราจะดูการตรวจสอบความพร้อมใช้งานของโฮสต์แบบไม่ต้องใช้ Agent ใน Zabbix ผ่าน ICMP Ping