Giới thiệu Zabbix là phần mềm giám sát mã nguồn mở cho các mạng và các ứng dụng. Nó cung cấp giám sát thời gian thực của hàng ngàn các chỉ số thu thập được từ các máy chủ, máy ảo, và các loại khác của thiết bị mạng. Những số liệu có thể giúp bạn xác định tình trạng hiện tại cơ sở hạ tầng CNTT của bạn và phát hiện các vấn đề với phần cứng hoặc phần mềm trước khi khách hàng khiếu nại. Thông tin sẽ được lưu trữ trong cơ sở dữ liệu, do đó bạn có thể phân tích dữ liệu theo thời gian và nâng cao chất lượng của dịch vụ cung cấp, hoặc có kế hoạch nâng cấp thiết bị một cách hiệu quả. Hoạt động Zabbix sử dụng một kiến trúc client-server và sử dụng một agent trên máy khách đang được theo dõi để thu thập dữ liệu và gửi nó đến máy chủ Zabbix. Zabbix phiên bản 3 hỗ trợ mã hóa thông tin liên lạc giữa máy chủ và máy khách được kết nối, do đó dữ liệu của bạn được bảo vệ trong khi nó di chuyển qua các mạng không an toàn. Các máy chủ Zabbix lưu trữ dữ liệu trong một số cơ sở dữ liệu như là MySQL, MariaDB, PostgreSQL, hoặc Oracle. Nó cũng cung cấp một giao diện web, do đó bạn có thể xem dữ liệu và cấu hình các thiết lập hệ thống. Trong bài hướng dẫn này, chúng tôi sẽ tiến hành cấu hình trên 2 máy. Một máy sẽ được cấu hình làm máy chủ (server), còn máy còn lại sẽ làm máy khách (client) mà được dùng để giám sát. Điều kiện tiên quyết Để thực hiện theo hướng dẫn này, bạn sẽ cần: - Hai máy chủ CentOS 7 với một người dùng (user) không phải root sử dụng lệnh sudo. - Một máy chủ CentOS 7 có Apache, MariaDB, PHP đã được cài đặt. Bước 1 - Cài đặt Server Zabbix Đăng nhập vào máy chủ CentOS 7 mà đã được cài đặt Apache, MariaDB, PHP: Mã: ssh aluhost@your_zabbix_server_ip_address Tiến hành cài đặt zabbix bằng lệnh rpm Mã: sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm Bạn sẽ thấy kết quả như sau: Mã: Output Retrieving http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.qLbOPP: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-3.0-1.el7 ################################# [100%] Chạy lệnh sau để cài đặt Zabbix server: Mã: sudo yum install zabbix-server-mysql zabbix-web-mysql Trong quá trình cài đặt, bạn sẽ được hỏi về việc nhập một khóa GPG. Xác nhận nó để cài đặt có thể hoàn thành. Tiếp theo chạy lệnh sau để cài đặt Zabbix agent: Mã: sudo yum install zabbix-agent Trước khi chúng tôi có thể sử dụng Zabbix, chúng tôi sẽ tạo ra một cơ sở dữ liệu để lưu trữ dữ liệu mà máy chủ Zabbix sẽ thu thập từ các agent. Bước 2 - Cấu hình cơ sở dữ liệu MariaDB cho Zabbix Đầu tiên , chúng tôi tạo ra một cơ sở dữ liệu MariaDB mới và đưa vào đó một số thông tin cơ bản. Sao đó, tạo một người dùng (user) cụ thể cho cơ sở dữ liệu này để Zabbix không đăng nhập vào MariaDB với tài khoản gốc. Đăng nhập vào MariaDB với người dùng (user) là root bằng cách sử dụng mật khẩu root mà bạn thiết lập trong khi cài đặt MariaDB: Mã: mysql -uroot -p Đầu tiên, tạo cơ sở dữ liệu Zabbix với sự hỗ trợ UTF-8: Mã: create database zabbix character set utf8; Tiếp theo, tạo một người dùng (user) Zabbix server sẽ sử dụng, cung cấp cho nó truy cập vào cơ sở dữ liệu mới, và thiết lập mật khẩu: Mã: grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password'; Thực hiện lệnh sau để đảm bảo các quyền được thiết lập lại từ đầu cho người dùng (user) mới. Mã: flush privileges; Thoát ra khỏi cơ sở dữ liệu: Mã: quit; Di chuyển tới thư mục cài đặt zabbix: Mã: cd /usr/share/doc/zabbix-server-mysql-3.0.4/ Chạy lệnh sau để thiết lập lược đồ (schema)và nhập dữ liệu vào cơ sở dữ liệu zabbix. Chúng tôi sẽ sử dụng zcat từ khi dữ liệu trong file đã được nén lại. Mã: zcat create.sql.gz | mysql -p -uzabbix zabbix Nhập mật khẩu cho người dùng (user) zabbix mà bạn đã cấu hình trước đó khi được nhắc nhở. Lưu ý: Không nhập mật khẩu cho người dùng (user) root, nếu không sẽ báo lổi “ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)” Để cho Zabbix server sử dụng cơ sở dữ liệu đã khai báo ở trên, bạn cần thiết lập mật khẩu mới trong file cấu hình của Zabbix server: Mã: sudo vi /etc/zabbix/zabbix_server.conf Hãy tìm phần này của tập tin: Mã: ### Option: DBPassword # Database password. Ignored for SQLite. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= Thay thế dòng # DBPassword= bằng: Mã: DBPassword=your_zabbix_mysql_password Bước 3 - Cấu hình PHP cho Zabbix Giao diện web Zabbix được viết bằng PHP và đòi hỏi một số cài đặt PHP đặc biệt. Quá trình cài đặt Zabbix tạo ra một tập tin cấu hình Apache có chứa các thiết lập này. Nó nằm trong thư mục /etc/httpd/conf.d/ và được tải tự động bởi Apache. Chúng tôi cần phải thực hiện một sự thay đổi nhỏ đến tập tin này, vì vậy mở nó ra bằng lệnh: Mã: sudo vi /etc/httpd/conf.d/zabbix.conf Tập tin này có chứa các thiết lập PHP mà đã đáp ứng các yêu cầu cần thiết cho giao diện web của Zabbix. Sự thay đổi duy nhất bạn cần làm là thiết lập múi giờ thích hợp. Mã: <IfModule mod_php5.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 [B]# php_value date.timezone Europe/Riga[/B] </IfModule> Bỏ ghi chú dòng múi giờ, được tô đậm ở trên, và thay đổi nó đến múi giờ của bạn. Sau đó lưu lại và đóng file. Bây giờ khởi động lại Apache để áp dụng các thiết lập mới. Mã: sudo systemctl restart httpd Sau đó khởi động Zabbix server bằng lệnh: Mã: sudo systemctl start zabbix-server Kiểm tra Zabbix server đã chạy đúng yêu cầu bằng lệnh: Mã: sudo systemctl status zabbix-server Bạn sẽ thấy trạng thái sau đây: Mã: Output ● zabbix-server.service - Zabbix Server Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled) Active: :active (running) since Fri 2016-08-05 07:16:35 UTC; 2s ago Process: 10033 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ... Cuối cùng, cho phép Zabbix server bắt đầu vào lúc khởi động bằng lệnh: Mã: sudo systemctl enable zabbix-server Máy chủ được thiết lập và kết nối với cơ sở dữ liệu. Bây giờ chúng ta hãy thiết lập giao diện Web. Bước 4 - Cấu hình cài đặt cho giao diện Web Zabbix Giao diện web cho phép chúng ta nhìn thấy các báo cáo và thêm host mà chúng ta muốn theo dõi, nhưng nó cần một số thiết lập ban đầu trước khi chúng ta có thể sử dụng nó. Mở trình duyệt của bạn và đi đến địa chỉ http://your_zabbix_server_ip_address/zabbix/. Trên màn hình đầu tiên, bạn sẽ thấy một thông điệp chào mừng. Nhấn Next để tiếp tục.. Trên màn hình tiếp theo, bạn sẽ thấy các bảng liệt kê tất cả các điều kiện tiên quyết để chạy Zabbix. Tất cả các giá trị trong bảng này phải cho thấy OK. Hãy chắc chắn di chuyển xuống và xem xét tất cả các điều kiện tiên quyết. Một khi bạn đã xác minh rằng tất cả mọi thứ đã sẵn sàng, nhấn Next để tiếp tục. Màn hình tiếp theo yêu cầu thông tin kết nối cơ sở dữ liệu. Nhập các thông tin MariaDB bạn cấu hình ở bước 2 và bấm Next để tiếp tục. Trên màn hình tiếp theo, bạn có thể để lại các tùy chọn giá trị mặc định. Name là tùy chọn; nó được sử dụng trong giao diện web để phân biệt máy chủ (đảm nhiệm Zabbix server) với các máy chủ khác. Nhấn Next để tiếp tục bước. Màn hình tiếp theo sẽ hiển thị tóm tắt quá trình cài đặt, do đó bạn có thể xác nhận tất cả mọi thứ là chính xác. Nhấn Next để tiếp tục bước. Các thiết lập giao diện web là hoàn tất! Quá trình này tạo ra tập tin cấu hình /etc/zabbix/web/zabbix.conf.php mà bạn có thể sao lưu và sử dụng trong tương lai. Nhấn Finish để đi đến màn hình đăng nhập. Người dùng mặc định là admin và mật khẩu là zabbix. Bước 5 - Cài đặt và cấu hình Zabbix agent Đăng nhập vào máy chủ thứ hai còn lại: Mã: ssh aluhost@your_monitored_server_ip_address Tiến hành cài đặt zabbix bằng lệnh rpm Mã: sudo rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm Bạn sẽ thấy kết quả như sau: Mã: Output Retrieving http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm warning: /var/tmp/rpm-tmp.qLbOPP: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zabbix-release-3.0-1.el7 ################################# [100%] Tiếp theo chạy lệnh sau để cài đặt Zabbix agent: Mã: sudo yum install zabbix-agent Trong quá trình cài đặt, bạn sẽ được hỏi về việc nhập một khóa GPG. Xác nhận nó để cài đặt có thể hoàn thành. Trong khi Zabbix hỗ trợ mã hóa dựa trên chứng chỉ, thiết lập một giấy chứng nhận quyền là vượt ra ngoài phạm vi của bài này, nhưng chúng ta có thể sử dụng các pre-shared keys (PSK) để bảo mật kết nối giữa máy chủ (server) và agent. Vì vậy, đầu tiên, tạo ra một PSK: Mã: sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk" Hiển thị key để bạn có thể sao chép nó ở đâu đó. Bạn sẽ cần nó để cấu hình máy chủ. Mã: cat /etc/zabbix/zabbix_agentd.psk Key sẽ giống như thế này: Mã: Output bd7ebdc1ae80fb66e8102d6016671a4feabf489cf2692ee473512771c4903ed8 Bây giờ bạn phải chỉnh sửa các thiết lập Zabbix agent để thiết lập kết nối an toàn của nó đến Zabbix server. Mở tập tin cấu hình agent: Mã: sudo vi /etc/zabbix/zabbix_agentd.conf Đầu tiên, bạn phải chỉnh sửa địa chỉ IP của Zabbix server. Tìm phần sau đây: Mã: ### Option: Server # List of comma delimited IP addresses (or hostnames) of Zabbix servers. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally. # # Mandatory: no # Default: # Server= Server=127.0.0.1 Thay đổi giá trị mặc định với IP của Zabbix server của bạn: Mã: Server=your_zabbix_server_ip_address Tiếp theo, tìm đến phần cấu hình kết nối an toàn với Zabbix server và cho phép hỗ trợ pre-shared keys (PSK). Tìm phần TSLConnect, trông như thế này: Mã: ### Option: TLSConnect # How the agent should connect to server or proxy. Used for active checks. # Only one value can be specified: # unencrypted - connect without encryption # psk - connect using TLS and a pre-shared key # cert - connect using TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSConnect=unencrypted Thay thế dòng # TLSConnect=unencrypted bằng dòng sau: Mã: TLSAccept=psk Tiếp theo, tìm đến phần TLSPSKIdentity, trông như thế này: Mã: ### Option: TLSPSKIdentity # Unique, case sensitive string used to identify the pre-shared key. # # Mandatory: no # Default: # TLSPSKIdentity= Chọn một tên bất kì để xác định pre-shared keys (PSK) bằng cách sửa dòng # TLSPSKIdentity= bằng dòng này : Mã: TLSPSKIdentity=PSK 001 Bạn sẽ sử dụng nó như là PSK ID khi bạn thêm host của bạn thông qua giao diện web Zabbix. Sau đó thiết lập các tùy chọn mà điểm đến là nơi bạn tạo ra pre-shared key (PSK) trước đó. Xác định vị trí các tùy chọn TLSPSKFile: Mã: ### Option: TLSPSKFile # Full pathname of a file containing the pre-shared key. # # Mandatory: no # Default: # TLSPSKFile= Sửa dòng # TLSPSKFile= bằng dòng này : Mã: TLSPSKFile=/etc/zabbix/zabbix_agentd.psk Lưu và đóng tập tin. Sau đó khởi động Zabbix agent và cho phép nó bắt đầu vào lúc khởi động bằng các lệnh: Mã: sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent Kiểm tra xem Zabbix agent đã chạy đúng yêu cầu bằng lệnh: Mã: sudo systemctl status zabbix-agent Bạn sẽ thấy trạng thái sau đây, cho thấy các agent đang chạy: Mã: Output ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2016-08-05 08:17:07 UTC; 5s ago Process: 9507 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) ... Agent của chúng tôi đã sẵn sàng để gửi dữ liệu đến Zabbix server. Tuy nhiên, để sử dụng nó, chúng ta phải liên kết nó tới Zabbix server thông qua giao diện điều khiển web. Bước 6 - Thêm New Host đến Server Zabbix Đăng nhập vào giao diện web Zabbix Server bằng cách nhập vào trình duyệt địa chỉ http://your_zabbix_server_ip_address/zabbix/. Khi bạn đã đăng nhập, nhấn vào Configuration, và sau đó Hosts trên thanh điều hướng. Sau đó nhấp vào nút Create host ở góc trên bên phải của màn hình. Điều này sẽ mở trang cấu hình host. Điều chỉnh Host name và IP ADDRESS để ánh xạ tên máy chủ và địa chỉ IP của máy khách của bạn. Sau đó thêm host đến một nhóm bằng cách chọn một trong những nhóm từ danh sách, hoặc bằng cách tạo nhóm của riêng bạn. Host có thể ở nhiều nhóm. Nhóm Linux Servers là một sự lựa chọn mặc định tốt. Một khi bạn đã thêm vào nhóm, nhấp vào tab Templates. Nhập Template OS Linux trong trường Search và sau đó nhấp vào Add để thêm mẫu này tới host. Tiếp theo, điều hướng đến tab Encryption. Chọn PSK cho cả Connections to host và Connections from host. Sau đó thiết lập PSK identity đến PSK 001, đó là giá trị của các thiết lập TLSPSKIdentity của Zabbix agent chúng ta cấu hình trước đó. Sau đó thiết lập giá trị PSK tới key do bạn tạo ra cho các Zabbix agent trước đó. Nó được lưu trữ trong tập tin /etc/zabbix/zabbix_agentd.psk trên máy agent . Cuối cùng, nhấn nút Add ở phía dưới trang cấu hình host. Bạn sẽ thấy host mới của bạn với nhãn màu xanh lá cây chỉ ra rằng tất cả mọi thứ đang làm việc tốt và kết nối được mã hóa. Sau vài giây, bạn có thể điều hướng đến Monitoring và sau đó Latest data để thấy các dữ liệu từ các agent của bạn. Để chắc rằng mọi thứ đang làm việc, tắt máy chủ giám sát của bạn, do đó bạn có thể thấy cách Zabbix cảnh báo bạn những vấn đề. Một khi máy chủ được giám sát của bạn là offline, bạn sẽ thấy cảnh báo trên bảng điều khiển chính: Nếu bạn có thêm một số host mà bạn cần phải theo dõi, đăng nhập vào từng host, cài đặt Zabbix agent, tạo ra một PSK, cấu hình agent, và thêm từng host đó đến giao diện web theo các bước tương tự như bạn đã làm đối với host đầu tiên của bạn