Thứ năm, 08/06/2017 | 00:00 GMT+7

Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên Ubuntu 16.04

Zabbix là phần mềm giám sát open-souce cho các mạng và ứng dụng. Nó cung cấp khả năng giám sát thời gian thực của hàng nghìn chỉ số được thu thập từ server , máy ảo và bất kỳ loại thiết bị mạng nào khác. Các chỉ số này có thể giúp bạn xác định tình trạng hiện tại của cơ sở hạ tầng CNTT và phát hiện các vấn đề với các thành phần phần cứng hoặc phần mềm trước khi khách hàng phàn nàn. Thông tin hữu ích được lưu trữ trong database để bạn có thể phân tích dữ liệu theo thời gian và cải thiện chất lượng của các dịch vụ được cung cấp hoặc lập kế hoạch nâng cấp thiết bị của bạn .

Zabbix sử dụng kiến trúc client - server và sử dụng một tác nhân nhỏ trên client được giám sát để thu thập dữ liệu và gửi đến server Zabbix. Zabbix version 3 hỗ trợ giao tiếp được mã hóa giữa server và các client được kết nối, vì vậy dữ liệu được bảo vệ trong khi truyền qua các mạng không an toàn.

Server Zabbix lưu trữ dữ liệu của nó trong database quan hệ được cung cấp bởi MySQL, PostgreSQL hoặc Oracle. Nó cũng cung cấp giao diện web để bạn có thể xem dữ liệu và cấu hình cài đặt hệ thống. Trong hướng dẫn này, ta sẽ cấu hình hai máy. Một cái sẽ được cấu hình làm server và cái kia làm client mà bạn sẽ giám sát. Server sẽ sử dụng database MySQL để ghi dữ liệu giám sát và sử dụng Apache để phục vụ giao diện web.

Yêu cầu

Để làm theo hướng dẫn này, bạn cần :

  • Hai server Ubuntu 16.04, mỗi server được cấu hình với một user không phải root có quyền sudo . Bạn có thể cài đặt chúng theo bài viết cài đặt server Ubuntu ban đầu này .
  • Server sẽ chạy server Zabbix cần được cài đặt Apache, MySQL và PHP. Làm theo hướng dẫn này để cấu hình chúng trên một trong các server của bạn.

Bước 1 - Cài đặt Server Zabbix

Đầu tiên, ta cần cài đặt Zabbix Server trên server mà ta đã cài đặt MySQL, Apache và PHP. Ta sẽ gọi máy này là “ server Zabbix” trong hướng dẫn này. Đăng nhập vào máy này với quyền là user không phải root của bạn:

  • ssh sammy@your_zabbix_server_ip_address

Trước khi cài đặt Zabbix, ta cần cài đặt một vài module PHP mà Zabbix cần. Trước tiên, hãy cập nhật danh sách các gói có sẵn của hệ thống:

  • sudo apt-get update

Sau đó, cài đặt các module PHP mà Zabbix cần:

  • sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring

Bây giờ ta có thể cài đặt Zabbix.

Zabbix có sẵn trong trình quản lý gói của Ubuntu, nhưng nó đã lỗi thời, vì vậy ta sẽ sử dụng repository Zabbix chính thức để cài đặt version ổn định mới nhất. Download và cài đặt gói cấu hình repository :

  • wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
  • sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

Bạn sẽ thấy kết quả sau:

Output
Selecting previously unselected package zabbix-release. (Reading database ... 55276 files and directories currently installed.) Preparing to unpack zabbix-release_3.2-1+xenial_all.deb ... Unpacking zabbix-release (3.2-1+xenial) ... Setting up zabbix-release (3.2-1+xenial) ...

Cập nhật index gói để bao gồm repository mới:

  • sudo apt-get update

Sau đó cài đặt server Zabbix và giao diện user web với hỗ trợ database MySQL:

  • sudo apt-get install zabbix-server-mysql zabbix-frontend-php

Cũng hãy cài đặt Zabbix agent, nó sẽ cho phép ta thu thập dữ liệu về trạng thái server Zabbix.

  • sudo apt-get install zabbix-agent

Trước khi có thể sử dụng Zabbix, ta phải cài đặt database để lưu giữ dữ liệu mà server Zabbix sẽ thu thập từ các tác nhân của nó.

Bước 2 - Cấu hình Database MySQL cho Zabbix

Ta cần tạo một database MySQL mới và điền vào nó một số thông tin cơ bản để làm cho nó phù hợp với Zabbix. Ta cũng sẽ tạo một user cụ thể cho database này để Zabbix không đăng nhập vào MySQL bằng account root .

Đăng nhập vào MySQL với quyền user root bằng password root mà bạn đã cài đặt trong quá trình cài đặt server MySQL:

  • mysql -uroot -p

Tạo database Zabbix với hỗ trợ ký tự UTF-8:

  • create database zabbix character set utf8 collate utf8_bin;

Sau đó, tạo một user mà server Zabbix sẽ sử dụng, cấp cho nó quyền truy cập vào database mới và đặt password cho user :

  • grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';

Sau đó, áp dụng các quyền mới này:

  • flush privileges;

Điều đó sẽ chăm sóc user và database . Thoát ra khỏi console database .

  • quit;

Tiếp theo, ta phải nhập schemas và dữ liệu ban đầu. Việc cài đặt Zabbix đã cung cấp cho ta một file cài đặt điều này cho ta .

Chạy lệnh sau để cài đặt schemas và nhập dữ liệu vào database zabbix . Ta sẽ sử dụng zcat vì dữ liệu trong file được nén.

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

Nhập password cho user MySQL zabbix mà bạn đã cấu hình khi được yêu cầu .

Lệnh này sẽ không xuất ra bất kỳ lỗi nào nếu nó thành công. Nếu bạn thấy lỗi ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES) thì hãy đảm bảo bạn đã sử dụng password cho user zabbix chứ không phải user root .

Để server Zabbix sử dụng database này, bạn cần đặt password database trong file cấu hình server Zabbix. Mở file cấu hình trong editor :

  • sudo nano /etc/zabbix/zabbix_server.conf

Tìm phần sau của file :

/etc/zabbix/zabbix_server.conf
### Option: DBPassword                            #       Database password. Ignored for SQLite.    #       Comment this line if no password is used. #                                                 # Mandatory: no                                   # Default:                                        # DBPassword= 

Những comment này trong file giải thích cách kết nối với database . Ta cần đặt giá trị DBPassword trong file thành password cho user database của ta . Thêm dòng này bên dưới những comment đó để cấu hình database :

/etc/zabbix/zabbix_server.conf
DBPassword=your_zabbix_mysql_password 

Việc đó xử lý cấu hình server Zabbix, nhưng ta phải thực hiện một số sửa đổi đối với cài đặt PHP của bạn để giao diện web Zabbix hoạt động bình thường.

Bước 3 - Cấu hình PHP cho Zabbix

Giao diện web Zabbix được viết bằng PHP và yêu cầu một số cài đặt server PHP đặc biệt. Quá trình cài đặt Zabbix đã tạo file cấu hình Apache có chứa các cài đặt này. Nó nằm trong folder /etc/zabbix và được tải tự động bởi Apache. Ta cần thực hiện một thay đổi nhỏ đối với file này, vì vậy hãy mở nó lên.

  • sudo nano /etc/zabbix/apache.conf

Tệp chứa các cài đặt PHP đáp ứng các yêu cầu cần thiết cho giao diện web Zabbix. Thay đổi duy nhất bạn cần thực hiện là đặt múi giờ thích hợp, múi giờ này được comment theo mặc định.

/etc/zabbix/apache.conf
... <IfModule mod_php7.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     # php_value date.timezone Europe/Riga </IfModule> 

Bỏ comment múi giờ, được đánh dấu ở trên và thay đổi nó thành múi giờ của bạn. Bạn có thể sử dụng danh sách múi giờ được hỗ trợ này để tìm múi giờ phù hợp với mình. Sau đó, lưu file .

Bây giờ khởi động lại Apache để áp dụng các cài đặt mới này.

  • sudo systemctl restart apache2

Đến đây bạn có thể khởi động server Zabbix.

  • sudo systemctl start zabbix-server

Sau đó, kiểm tra xem server Zabbix có đang chạy đúng cách hay không:

  • sudo systemctl status zabbix-server

Bạn sẽ thấy trạng thái sau:

Output
● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

Cuối cùng, kích hoạt server khởi động tại thời điểm khởi động:

  • sudo systemctl enable zabbix-server

Server được cài đặt và kết nối với database . Bây giờ ta hãy cài đặt giao diện user web.

Bước 4 - Cấu hình cài đặt cho giao diện web Zabbix

Giao diện web cho phép ta xem báo cáo và thêm server mà ta muốn theo dõi, nhưng nó cần một số cài đặt ban đầu trước khi ta có thể sử dụng. Chạy trình duyệt của bạn và truy cập đị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 báo chào mừng. Nhấp vào Bước tiếp theo để tiếp tục.

Trên màn hình tiếp theo, bạn sẽ thấy bảng liệt kê tất cả các yêu cầu để chạy Zabbix.

 Yêu cầu

Tất cả các giá trị trong bảng này phải OK , vì vậy hãy xác minh chúng đúng như vậy. Đảm bảo cuộn xuống và xem xét tất cả các yêu cầu . Khi bạn đã xác minh mọi thứ đã sẵn sàng, hãy nhấp vào Bước tiếp theo để tiếp tục.

Màn hình tiếp theo yêu cầu thông tin kết nối database .

Kết nối DB

Ta đã thông báo cho server Zabbix về database của bạn , nhưng giao diện web Zabbix cũng cần quyền truy cập vào database để quản lý server và đọc dữ liệu. Do đó, hãy nhập thông tin đăng nhập MySQL bạn đã cấu hình ở Bước 2 và nhấp vào Bước tiếp theo để tiếp tục.

Trên màn hình tiếp theo, bạn có thể để các tùy chọn ở giá trị mặc định của chúng.

Chi tiết  Server  Zabbix

Tên là tùy chọn; nó được sử dụng trong giao diện web để phân biệt server này với server khác trong trường hợp bạn có nhiều server giám sát. Nhấp vào Bước tiếp theo để tiếp tục.

Màn hình tiếp theo sẽ hiển thị tóm tắt cài đặt trước để bạn có thể xác nhận mọi thứ là chính xác.

Tóm lược

Nhấp vào Bước tiếp theo để chuyển sang màn hình cuối cùng.

Cài đặt giao diện web đã hoàn tất! Quy trình này tạo file cấu hình /usr/share/zabbix/conf/zabbix.conf.php mà bạn có thể backup và sử dụng trong tương lai. Nhấp vào Hoàn tất để chuyển sang màn hình đăng nhập. User mặc định là Admin và password là zabbix .

Trước khi đăng nhập, hãy cài đặt tác nhân Zabbix trên server khác của ta .

Bước 5 - Cài đặt và cấu hình Zabbix Agent

Bây giờ ta cần cấu hình phần mềm tác nhân sẽ gửi dữ liệu giám sát đến server Zabbix.

Đăng nhập vào server thứ hai, mà ta sẽ gọi là “ server được giám sát”.

  • ssh sammy@your_monitored_server_ip_address

Sau đó, giống như trên server Zabbix, hãy chạy các lệnh sau để cài đặt gói cấu hình repository :

  • wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
  • sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb

Tiếp theo, cập nhật index gói :

  • sudo apt-get update

Sau đó cài đặt Zabbix agent:

  • sudo apt-get install zabbix-agent

Mặc dù Zabbix hỗ trợ mã hóa dựa trên certificate , việc cài đặt tổ chức phát hành certificate nằm ngoài phạm vi của hướng dẫn này, nhưng ta có thể sử dụng khóa chia sẻ trước (PSK) để bảo mật kết nối giữa server và tác nhân.

Vì vậy, trước tiên, hãy tạo một PSK:

  • 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 cần nó để cấu hình server .

  • cat /etc/zabbix/zabbix_agentd.psk

Key sẽ trông giống như sau:

Output
cd12686e166a80aa09a227ae5f97834eaa3d5ae686d2ae39590f17ef85dd6de5

Bây giờ, hãy chỉnh sửa cài đặt tác nhân Zabbix để cài đặt kết nối an toàn của nó với server Zabbix. Mở file cấu hình tác nhân trong editor của bạn:

  • sudo nano /etc/zabbix/zabbix_agentd.conf

Mỗi cài đặt trong file này được ghi lại thông qua các comment thông tin trong toàn file , nhưng bạn chỉ cần chỉnh sửa một số trong số đó.

Đầu tiên, bạn phải chỉnh sửa địa chỉ IP của server Zabbix. Tìm phần sau:

/etc/zabbix/zabbix_agentd.conf
### 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 thành IP của server Zabbix của bạn:

/etc/zabbix/zabbix_agentd.conf
Server=your_zabbix_server_ip_address 

Tiếp theo, tìm phần cấu hình kết nối an toàn với server Zabbix và bật hỗ trợ khóa chia sẻ trước. Tìm phần TSLConnect , trông giống như sau:

/etc/zabbix/zabbix_agentd.conf
### 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 

Sau đó, thêm dòng này để cấu hình hỗ trợ khóa chia sẻ trước:

/etc/zabbix/zabbix_agentd.conf
TLSConnect=psk 

Tiếp theo, tìm phần TLSAccept , trông giống như sau:

/etc/zabbix/zabbix_agentd.conf
### Option: TLSAccept #       What incoming connections to accept. #       Multiple values can be specified, separated by comma: #               unencrypted - accept connections without encryption #               psk         - accept connections secured with TLS and a pre-shared key #               cert        - accept connections secured with TLS and a certificate # # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection) # Default: # TLSAccept=unencrypted 

Cấu hình các kết nối đến để hỗ trợ khóa chia sẻ trước bằng cách thêm dòng này:

/etc/zabbix/zabbix_agentd.conf
TLSAccept=psk 

Tiếp theo, tìm phần TLSPSKIdentity , trông giống như sau:

/etc/zabbix/zabbix_agentd.conf
### Option: TLSPSKIdentity #       Unique, case sensitive string used to identify the pre-shared key. # # Mandatory: no # Default: # TLSPSKIdentity= 

Chọn một tên duy nhất để xác định khóa chia sẻ trước của bạn bằng cách thêm dòng này:

/etc/zabbix/zabbix_agentd.conf
TLSPSKIdentity=PSK 001 

Bạn sẽ sử dụng nó làm ID PSK khi thêm server của bạn thông qua giao diện web Zabbix.

Sau đó, đặt tùy chọn trỏ đến khóa chia sẻ trước đã tạo trước đó của bạn. Tìm tùy chọn TLSPSKFile :

/etc/zabbix/zabbix_agentd.conf
### Option: TLSPSKFile #       Full pathname of a file containing the pre-shared key. # # Mandatory: no # Default: # TLSPSKFile= 

Thêm dòng này để trỏ tác nhân Zabbix tới file PSK mà bạn đã tạo:

/etc/zabbix/zabbix_agentd.conf
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk 

Lưu và đóng file . Đến đây bạn có thể khởi động tác nhân Zabbix và đặt nó bắt đầu lúc khởi động:

  • sudo systemctl start zabbix-agent
  • sudo systemctl enable zabbix-agent

Để có biện pháp tốt, hãy kiểm tra xem tác nhân Zabbix đang chạy đúng cách:

  • sudo systemctl status zabbix-agent

Bạn sẽ thấy trạng thái sau, cho biết tác nhân đang chạy:

Output
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) ...

Đại lý của ta hiện đã sẵn sàng để gửi dữ liệu đến server Zabbix. Nhưng để sử dụng nó, ta phải liên kết đến nó từ console web của server .

Lưu ý: Nếu bạn đang sử dụng UFW, hãy cấu hình nó để cho phép kết nối với cổng 10050 :

  • sudo ufw allow 10050/tcp

Bạn có thể tìm hiểu thêm về UFW trong Cách cài đặt Tường lửa với UFW trên Ubuntu 16.04 .

Bước 6 - Thêm server mới vào server Zabbix

Cài đặt tác nhân trên server mà ta muốn giám sát chỉ là một nửa của quá trình. Mỗi server lưu trữ mà ta muốn theo dõi cần phải được đăng ký trên server Zabbix, điều này ta có thể thực hiện thông qua giao diện web.

Đăng nhập vào giao diện web của Server Zabbix bằng cách chuyển đến địa chỉ http:// your_zabbix_server_ip_address /zabbix/ .

Màn hình đăng nhập Zabbix

Khi bạn đã đăng nhập, hãy nhấp vào Cấu hình , sau đó nhấp vào Server trong thanh chuyển trên cùng. Sau đó nhấp vào nút Tạo server ở góc trên cùng bên phải của màn hình. Thao tác này sẽ mở trang cấu hình server lưu trữ.

Tạo  server

Điều chỉnh Tên server ĐỊA CHỈ IP để phản ánh tên server và địa chỉ IP của client của bạn. Sau đó, thêm server lưu trữ vào một group bằng cách chọn một trong các group từ danh sách hoặc bằng cách tạo group của bạn . Server có thể ở nhiều group . Group Server Linux là một lựa chọn mặc định tốt. Khi bạn đã thêm group , hãy nhấp vào tab Mẫu .

Thêm mẫu vào  server

Nhập Template OS Linux vào trường Tìm kiếm , sau đó nhấp vào Thêm để thêm mẫu này vào server .

Tiếp theo, chuyển đến tab Mã hóa . Chọn PSK cho cả Kết nối với server Kết nối từ server . Sau đó, đặt danh tính PSK 001 , là giá trị của cài đặt TLSPSKIdentity của tác nhân Zabbix mà ta đã cấu hình trước đó. Sau đó đặt
Giá trị PSK cho khóa bạn đã tạo cho đại lý Zabbix. Đó là file được lưu trữ trong file /etc/zabbix/zabbix_agentd.psk trên máy đại lý.

 Cài đặt  mã hóa.

Cuối cùng, nhấp vào nút Thêm ở cuối biểu mẫu để tạo server lưu trữ.

Bạn sẽ thấy server mới của bạn có nhãn màu xanh lục cho biết mọi thứ đang hoạt động tốt và kết nối đã được mã hóa.

Zabbix hiển thị  server  mới của bạn.

Sau vài giây, bạn có thể chuyển đến Giám sát và sau đó là Dữ liệu mới nhất để xem dữ liệu từ đại lý của bạn.

Để đảm bảo mọi thứ đang hoạt động, hãy tắt server được giám sát của bạn để bạn có thể xem cách Zabbix cảnh báo bạn về sự cố. Khi server được giám sát của bạn offline , bạn sẽ thấy cảnh báo trên trang tổng quan chính:

Zabbix hiển thị cho bạn cảnh báo về  server  đang  offline .

Nếu bạn có thêm server cần theo dõi, hãy đăng nhập vào từng server , cài đặt tác nhân Zabbix, tạo PSK, cấu hình tác nhân và thêm server vào giao diện web theo các bước tương tự bạn đã làm để thêm server lưu trữ đầu tiên của bạn .

Kết luận

Trong hướng dẫn này, bạn đã học cách cài đặt một giải pháp giám sát đơn giản và an toàn sẽ giúp bạn theo dõi trạng thái của các server của bạn . Như vậy, nó có thể cảnh báo bạn về các vấn đề và bạn có cơ hội vẽ một số biểu đồ dựa trên dữ liệu thu được để bạn có thể phân tích và lập kế hoạch cho phù hợp.


Tags:

Các tin liên quan

how-to-config-an-orientdb-cluster-on-ubuntu-16-04
2017-06-02
Cách cài đặt và cấu hình OpenLDAP và phpLDAPadmin trên Ubuntu 16.04
2017-06-01
Cách bật SFTP mà không cần truy cập Shell trên Ubuntu 16.04
2017-05-31
Cách tạo Go Executables cho nhiều nền tảng trên Ubuntu 16.04
2017-05-30
Cách cài đặt Concourse CI trên Ubuntu 16.04
2017-05-26
Cách giám sát server và dịch vụ bằng Icinga trên Ubuntu 16.04
2017-05-05
Cách thiết lập đồng bộ hóa thời gian trên Ubuntu 16.04
2017-04-28
Cách quản lý log với Graylog 2 trên Ubuntu 16.04
2017-04-25
Cách cài đặt Webmin trên Ubuntu 16.04
2017-04-21
Cách cài đặt và cấu hình OrientDB trên Ubuntu 16.04
2017-03-24