Tìm hiểu về icinga2

1. Giới thiệu:

  • Giới thiệu về Icinga: Icinga là một hệ thống máy tính mã nguồn mở và ứng dụng giám sát mạng. Nó ban đầu được tạo ra từ fork của hệ thống Nagios trong năm 2009.

Icinga đang cố gắng để có được nhận thức quá khứ ngắn trong quá trình phát triển Nagios, cũng như thêm các tính năng mới như giao diện người dùng hiện đại Web 2.0, các kết nối cơ sở dữ liệu bổ sung (cho MySQL, Oracle, Và PostgreSQL) và một API REST cho phép các quản trị viên tích hợp nhiều phần mở rộng mà không có sự sửa đổi phức tạp của lõi Icinga.

Các nhà phát triển Icinga cũng tìm cách phản ánh nhu cầu của cộng đồng chặt chẽ hơn và tích hợp các bản vá lỗi nhanh hơn. Phiên bản ổn định đầu tiên, 1.0, đã được phát hành vào tháng 12 năm 2009.

  • Chức năng: Vì là fork từ nagios về nên icinga cung cấp các tính năng của Nagios với một số bổ sung như mô đun report với độ chính xác SLA nâng cao, các kết nối cơ sở dữ liệu bổ sung cho PostgreSQL và Oracle, và các hệ thống phân phối cho giám sát dự phòng.

Icinga cũng duy trì cấu hình và tính tương thích của trình cắm thêm với Nagios, tạo điều kiện thuận lợi cho việc di chuyển giữa hai phần mềm giám sát. - Monitor + Giám sát các dịch vụ mạng (SMTP, POP3, HTTP, NNTP, ping, ...) + Giám sát các tài nguyên máy chủ lưu trữ (tải CPU, sử dụng đĩa, v.v.) + Giám sát các thành phần máy chủ (thiết bị chuyển mạch, bộ định tuyến, cảm biến nhiệt độ và độ ẩm ...) + Plugin đơn giản cho phép người dùng dễ dàng phát triển kiểm tra dịch vụ của mình + Kiểm tra dịch vụ song song + Khả năng xác định phân cấp máy chủ lưu trữ cho phép phát hiện và phân biệt giữa các máy chủ bị hỏng và những máy không thể truy cập được + Khả năng xác định trình xử lý sự kiện sẽ được chạy trong các sự kiện dịch vụ hoặc máy chủ để giải quyết vấn đề chủ động - Notification + Thông báo người liên lạc khi các sự cố dịch vụ hoặc máy chủ xảy ra và được giải quyết (thông qua email, SMS hoặc phương pháp do người dùng xác định) + Tăng cường cảnh báo cho người dùng khác hoặc kênh truyền thông - Visualisation & Reporting + Hai giao diện người dùng tùy chọn (Icinga Classic UI và Icinga Web) để hiển thị trạng thái máy chủ và dịch vụ, bản đồ mạng, báo cáo, nhật ký ... + Report Icinga dựa trên Báo cáo Jasper nguồn mở cho cả giao diện người dùng Icinga Classic và Icinga Web + Report dựa trên mẫu + Báo cáo kho với mức độ truy cập khác nhau và tạo báo cáo tự động và phân phối + Báo cáo sử dụng năng suất + Hiệu suất đồ thị thông qua tiện ích như PNP4Nagios, NagiosGrapher và InGraph

  • Cấu trúc:

    • Icinga Core: quản lý các nhiệm vụ giám sát, nhận được kết quả kiểm tra từ các plug-in khác nhau. Sau đó, kết nối các kết quả này với IDODB.
    • Icinga 2: quản lý các nhiệm vụ theo dõi, chạy kiểm tra, gửi thông báo. Các tính năng của Icinga 2 có thể được kích hoạt theo yêu cầu, có thể là các tính năng mặc định như thành phần "checker" hoặc "notification" hoặc các giao diện bên ngoài tương thích với Icinga 1.x và các giao diện người dùng
    • Icinga's User Interfaces:
      • Icinga Classic UI (còn được gọi là Classic Web) dựa trên các mô hình CGI của Nagios và giữ lại định dạng của nó. Dự án Icinga tiếp tục bổ sung các tính năng mới cho giao diện này như pagination, đầu ra JSON, và CSV export
      • Icinga Web 2 hiện đang được phát triển song song với Giao diện người dùng Cổ điển và Web và đã được công bố trong Hội nghị Giám sát Mã nguồn Mở vào tháng 11 năm 2013
    • Icinga Data Out Database: (IDODB) là điểm lưu trữ dữ liệu giám sát lịch sử cho các tiện ích bổ sung hoặc giao diện Web Icinga để truy cập
    • Icinga Reporting: Dự án Icinga cung cấp mô-đun Icinga Reporting tùy chọn dựa trên Báo cáo Jasper nguồn mở. Nó có thể được tích hợp vào cả giao diện người dùng Icinga Classic và Icinga Web.
    • Icinga Mobile: là một giao diện người dùng cho điện thoại thông minh và trình duyệt máy tính bảng chạy trên WebKit

2. So sánh:

Icinga2 đã bổ sung thêm các tính năng mới cho nền tảng như giao diện người dùng hiện đại, các kết nối cơ sở dữ liệu bổ sung (cho MySQL, Oracle và PostgreSQL), REST API, một định dạng cấu hình mới trực quan để viết và các hệ thống phân phối cho giám sát dự phòng. Icinga2 là một sự thay thế cho Nagios và Icinga 1.x, tương thích với tất cả các plugin hiện tại, giao diện người dùng và các tiện ích bổ sung.

Các tổ chức đang xem xét việc thông qua Nagios để theo dõi máy chủ và thiết bị có thể muốn xem xét các giải pháp thay thế Nagios như một cài đặt mới của Icinga2.

Icinga2 có thể sử dụng một loạt các plugin phổ biến Nagios phổ biến cho dù họ chạy trên máy chủ giám sát hay trên máy khách cục bộ. Giao diện Icinga Web 2 linh hoạt hơn và mở rộng hơn so với giao diện lưới cơ bản được cung cấp bởi Nagios. Việc viết lại Nagios (Icinga1) cải thiện đáng kể hiệu quả của mã theo dõi, và trong thiết kế lại, chúng ta biết như Icinga2 này đã được giữ lại như là một nguyên tắc thiết kế chủ chốt.

Ví dụ, Icinga2 được thiết kế theo hướng đối tượng từ trên xuống dưới. Ngoài ra, một ngôn ngữ cấu hình phong phú cho phép biểu hiện các cấu hình phức tạp trong một số lượng văn bản tối thiểu, cho phép các cấu hình giám sát được viết nhanh chóng và súc tích. Kết hợp, hai tính năng kiến trúc cho phép tạo ra một số lượng lớn các điểm dữ liệu theo dõi trong một khoảng thời gian ngắn.

Cuối cùng, khả năng giám sát phân vùng và khu vực của Icinga2 cho phép không chỉ có tính sẵn sàng cao ở nhiều cấp độ khác nhau, mà còn cho phép tạo ra một hệ thống giám sát phân cấp. Các hệ thống giám sát nơi kiểm tra được thực hiện tại các khu vực trong mạng và chỉ các kết quả được chuyển tiếp trở lại cho các master.

  • Ưu điểm: Thiết kế mô đun cho phép bạn chọn plugin để cài đặt. Đó là mã nguồn mở, cho phép sửa đổi và cấu hình rộng rãi mã nguồn. Dễ dàng di chuyển từ Nagios Một trong những giải pháp báo cáo và giám sát kỹ lưỡng nhất trong danh sách.

  • Nhược điểm: Cấu hình có thể là khó khăn. Menu là rườm rà để sử dụng, và điều hướng không đăng ký trong các thanh địa chỉ trình duyệt web. Tài liệu, mặc dù rộng rãi, không bao gồm một hướng dẫn nhanh chóng. Các nhà phát triển không cung cấp bất kỳ sự tư vấn hoặc hỗ trợ của bên thứ nhất.

3. Cài đặt

  • Add Package Repositories wget -O - https://packages.icinga.com/icinga.key | apt-key add - echo 'deb https://packages.icinga.com/ubuntu icinga-xenial main' >/etc/apt/sources.list.d/icinga.list apt-get update

  • Install mysql, php 7 apt-get install mysql-server php7.0 libapache2-mod-php7.0

  • Install icinga2 apt-get install icinga2 icinga2-ido-mysql

  • Config MySQL cho icinga

  • Enable MySQL là DB backend cho icinga icinga2 feature enable ido-mysql command

Enabling feature ido-mysql. Make sure to restart Icinga 2 for these changes to take effect.
Enabling feature command. Make sure to restart Icinga 2 for these changes to take effect.
  • Restart icinga systemctl restart icinga2

  • Install icinga web apt-get install icingaweb2

  • Set timezone cho php vim /etc/php/7.0/apache2/php.ini thêm line date.timezone = Asia/Ho_Chi_Minh

  • Restart apache /etc/init.d/apache2 restart

  • Giờ ta tiếp tục với config trên web: http://<IP>/icingaweb2/setup

  • secret token ??? lấy ở đâu bây giờ. Ok, các bạn hãy lên server và gen token ra và paste lại thôi

# sudo icingacli setup token create

The newly generated setup token is: 4e4afab5f2c5cd80
  • Chọn module cần cài

  • Check các gói Requirement

  • Setup authenticaion:

    • Dùng database
    • LDAP
    • External
  • Tạo DB cho icingaweb

  • Điền user & password root khi cài mysql

  • Tạo user admin web

  • Config log

  • Review

  • Config monitor backend

  • DB for backend monitor

  • Config command:

  • Review all

  • Giờ có thể access vào giao diện web

4. Monitor cơ bản

Để monitor được, ta phải hiểu được 1 số file config của icinga. Mặc định, các file cấu hình của icinga sẽ được tạo trong /etc/icinga2

  • icinga.conf: Đây là nơi bạn cấu hình cài đặt cho ứng dụng Icinga bao gồm hosts/services để check
  • constants.conf: file cấu hình có thể được sử dụng để xác định tham số global.
  • zones.conf: Tệp này có thể được sử dụng để xác định đối tượng cấu hình Zone và Endpoint yêu cầu cho giám sát phân tán.
  • thư mục conf.d: Thư mục này chứa cấu hình ví dụ sẽ giúp bạn bắt đầu theo dõi máy chủ lưu trữ cục bộ và các dịch vụ của nó. Ví dụ:
    • hosts.conf
    • services.conf
    • users.conf
    • notifications.conf
    • commands.conf
    • groups.conf
    • templates.conf
    • downtimes.conf
    • timeperiods.conf
    • satellite.conf
    • api-users.conf
    • app.conf

Đây là các service được icinga cung cấp sẵn để monitor

Service(s) Applied on host(s)
load, procs, swap, users, icinga The NodeName host only
ping4, ping6 All hosts with address resp. address6 attribute
ssh All hosts with address and vars.os set to Linux
http, optional: Icinga Web 2 All hosts with custom attribute http_vhosts defined as dictionary
disk, disk / All hosts with custom attribute disks defined as dictionary

Vậy muốn monitor các thông số cơ bản, đây chính là nơi các bạn cần cài xem xét. VD mình sẽ muốn check server sống hay đã tèo và web của server 10.0.1.101 thì: vim /etc/icinga2/conf.d/hosts.conf

....
object Host "test" {
        address = "10.0.1.101"
        check_command = "hostalive"
}

object Service "nginx" {
        host_name = "test"
        check_command = "http"
}

restart icinga: # /etc/init.d/icinga2 restart [ ok ] Restarting icinga2 (via systemctl): icinga2.service.

và kiểm tra trên giao diện web:

ok vậy là đã lên rồi. 1 số chú ý nho nhỏ. nếu các bạn restart lại icinga mà kiểm tra thấy web vẫn còn pending thì các bạn click vào service đó -> click Check now -> icinga sẽ đẩy nhanh tiến trình check service đó.


All Rights Reserved