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.
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.
- 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 linedate.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
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 |
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 đó.