Hướng dẫn cài đặt Zabbix Server 3.4 trên CentOS 7

Hướng dẫn cài đặt Zabbix Server 3.4 trên CentOS 7Chào các bạn, như các bạn đã biết thì Zabbix là một trong những chương trình mã nguồn mở nổi tiếng giúp bạn xây dựng một hệ thống giám sát dịch vụ, thiết bị mạng,… trong doanh nghiệp. Chính vì vậy, trong bước đầu tiên để làm quen với hệ thống Zabbix đó chính là làm thể nào để cài đặt Zabbix Server trên CentOS 7. Hãy đọc bài viết nhé.

cài đặt zabbix server trên centos

Có thể bạn cũng quan tâm chủ đề khác
Top 11 công cụ mã nguồn mở giám sát hệ thống trên Linux
Reset mật khẩu Admin Zabbix bằng lệnh SQL trên Linux
Fix lỗi ‘Zabbix Server is not running’
Cấu hình hiện thông báo trigger và âm thanh báo động trên Zabbix
Phân biệt khái niệm history và trends trong Zabbix

Zabbix là gì ?

Zabbix là một giải pháp giám sát dịch vụ hệ thống mạng phân tán mã nguồn mở nổi tiếng, có nhiều tính năng độc đáo và khả năng tùy biến cao. Zabbix có khả năng phục vụ cho hệ thống mạng tầm trung và lớn của các doanh nghiệp hiện tại với mức chi phí đầu tư vừa phải.

zabbix là gì

Chi tiết có thể xem tại bài viết nàyZabbix là gì ? Tìm hiểu hệ thống giám sát mạng Zabbix

Lưu ý bài viết

Nếu bạn muốn copy các lệnh command trong bài viết này, hãy tham khảo bài viết sau : Hướng dẫn copy lệnh command trên website Cuongquach.com

1. Cài đặt LAMP Server

Đầu tiên chúng ta cần có một hệ thống Web Server và dịch vụ CSDL để có thể chạy được mã nguồn frontend Zabbix Server. Bài viết hướng dẫn cài đặt LAMP Web Server chi tiết cơ bản các bạn có thể tham khảo tại đây : Hướng dẫn cài đặt LAMP (Linux, Apache, MariaDB, PHP) trên CentOS 7

Phần này sẽ được note nhanh các lệnh cài đặt gọn lẹ một Web Server, nếu muốn chi tiết bạn hãy tham khảo bài viết trên.

Còn nếu bạn muốn triển khai các hệ thống Web Server khác như LEMP hay Litespeed , thì bạn tham khảo Google thêm nhé.

1.1 Cài đặt Apache Web Server

Cài đặt Apache và khởi động.

# yum install httpd -y
# systemctl start httpd
# systemctl enable httpd

Nếu bạn có nhu cầu cấu hình VirtualHost sử dụng cho tên miền thì như sau. Ví dụ : zabbix.cuongquachlab.com

# vi /etc/httpd/conf.d/zabbix.cuongquachlab.com.conf

NameVirtualHost *:80

<VirtualHost *:80> 
     ServerName zabbix.cuongquachlab.com
     ServerAlias www.zabbix.cuongquachlab.com
     DocumentRoot /var/www/zabbix.cuongquachlab.com/public_html/
     ErrorLog /var/log/httpd/error.log 
     CustomLog /var/log/httpd/access.log combined
</VirtualHost>

Khởi động lại Apache để áp cấu hình mới về vhost tên miền.

# systemctl restart httpd

Tạo thư mục chứa code cho tên miền ‘zabbix.cuongquachlab.com‘ , thư mục này đã được cấu hình trong phần Vhost trên.

# mkdir -p /var/www/zabbix.cuongquachlab.com/public_html/
# chown apache:apache -R /var/www/zabbix.cuongquachlab.com/public_html/

1.2 Cài đặt dịch vụ CSDL – MariaDB

Chúng ta sẽ cài đặt MariaDB phiên bản 10.2 (mới nhất tính đến thời điểm viết bài) làm dịch vụ Cơ Sở Dữ Liệu (Database). Đầu tiên là khai báo tạo repository MariaDB.

# vi /etc/yum.repos.d/MariaDB.repo

# MariaDB 10.2 CentOS repository list
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Tiến hành cài đặt sau khi khai báo MariaDB Repository.

# yum repolist
# yum install MariaDB-server MariaDB-client MariaDB-devel MariaDB-shared -y

Khởi động dịch vụ database MariaDB.

# systemctl start mysql.service
# systemctl enable mysql.service

Thiết lập cấu hình an toàn thông tin cơ bản cho MariaDB.

# mysql_secure_installation

1.3 Cài đặt PHP 7

Chúng ta cài đặt thông tin Repository REMI nơi chứa nguồn cài đặt rất nhiều phiên bản PHP. Chúng ta sẽ tiến hành cài đặt PHP 7 mới nhất và đã được hỗ trợ bởi Zabbix Server  3.4 frontend source ở phiên bản mới 1.10 này. (Xem thêm: Hướng dẫn cài đặt PHP 5.5, 5.6 trên CentOS)

# wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm -Uvh remi-release-7*.rpm

Bây giờ ta sẽ kích hoạt repo remi sử dụng cho PHP 7.0 . Các bạn kéo xuống phần nội dung file ở section [remi-php70] , hãy kích hoạt ‘enabled=1‘.

# vi /etc/yum.repos.d/remi-php70.repo
[remi-php70]
name=Remi's PHP 7.1 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php71/$basearch/
#mirrorlist=https://rpms.remirepo.net/enterprise/7/php71/httpsmirror
mirrorlist=http://cdn.remirepo.net/enterprise/7/php71/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
...
# yum repolist

Giờ ta tiến hành cài đặt PHP 7.0 cùng một số module PHP hỗ trợ sử dụng cho Zabbix Server Frontend.

# yum install --disablerepo=* --enablerepo=remi-php70 php php-mysql php-bcmath php-cli php-common php-devel php-embedded php-enchant php-mbstring php-mcrypt php-pdo php-xml -y

1.4 Cấu hình firewall rule

Bạn cần cấu hình firewall rule cho phép các kết nối bên ngoài vào Web Server Apache (port 80/443 TCP). Nếu bạn xài ‘iptables‘ làm firewall thì sử dụng lệnh sau :

# iptables -A INPUT -p tcp --match multiport --dports 80,443 -j ACCEPT

nếu bạn xài ‘firewalld‘ làm dịch vụ tường lửa trên CentOS 7 thì dùng lệnh sau .

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# firewall-cmd --reload

1.5 Kiểm tra Web Server chạy hay chưa

Bạn hãy tham khảo bài viết “Hướng dẫn cài đặt LAMP trên CentOS 7” ở trên để rõ chi tiết kiểm tra.

2. Cài đặt Zabbix Server 3.4

Chúng ta có 2 phương án cài đặt Zabbix Server : 1 là cài qua repository Zabbix (https://www.zabbix.com/download)2 là biên dịch mã nguồn Zabbix Server. Mình sẽ chỉ hướng dẫn hình thức cài đặt biên dịch mã nguồn chuẩn nhé.

2.1 Các thiết lập cài đặt cần thiết

Tạo user “zabbix” để chạy dịch vụ Zabbix Server Monitor.

# groupadd zabbix
# useradd -m -s /sbin/nologin -g zabbix zabbix

Tạo thư mục dành cho việc chứa file .pid của Zabbix Server và file log của Zabbix Server cùng Zabbix Agentd local.

# mkdir -p /var/log/zabbix/
# touch /var/log/zabbix/zabbix_server.log
# chown zabbix: /var/log/zabbix/ -R
# chmod 660 /var/log/zabbix/zabbix_server.log

– Kiểm tra phiên bản phần mềm hỗ trợ cần thiết , cũng như cài đặt các thư viện cần thiết
+ cURL 7.20.0 trở lên

# curl --version
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3

+ Cài đặt thư viện các gói cần thiết

# yum groupinstall “Development Tools” -y
# yum install libxml2 libxslt libxml2-devel net-snmp-devel curl-devel libevent libevent-devel -y

2.2 Download source Zabbix Server và cài đặt

Ta download bản cài đặt source Zabbix Server 3.4 . Bạn có thể lấy đường dẫn link download source tại đây : https://www.zabbix.com/download_sources

zabbix download

# cd /opt/
# wget -O zabbix-3.4.9.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.9/zabbix-3.4.9.tar.gz/download

Giải nén source và tiến hành biên dịch cài đặt. Lệnh configure với các option hỗ trợ quy định sau dùng để cấu hình cài đặt source Zabbix làm server và agent local, cũng như sử dụng MariaDB (Mysql) làm CSDL.

# tar xvf zabbix-3.4.9.tar.gz
# cd zabbix-3.4.9
# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
# make
# make install

Lưu ý:
– Chúng ta cài đặt luôn Zabbix Agent trên chính server Zabbix nhằm để Zabbix tự giám sát được tình trạng hệ thống của chính nó qua chương trình Zabbix Agent hỗ trợ. Chứ bản thân nó không thể giám sát các hoạt động hệ thống OS đang chạy chương trình Zabbix Server.

Sau khi cài đặt compile xong thì mặc định file daemon binary (zabbix_server, zabbix_agentd, zabbix_proxy) sẽ nằm ở đường dẫn thư mục /usr/local/sbin/ ; còn các file binary client (zabbix_get, zabbix_sender) sẽ nằm ở thư mục /usr/local/bin/ . Nếu bạn muốn thay đổi đường dẫn thì setup đường dẫn lúc biên dịch.

Nội dung file systemd service dành cho Zabbix Server trên CentOS 7, bạn phải tự tạo file này để khởi động dịch vụ do khi compile thì sẽ không có. Cẩn thận kiểm tra lại đường dẫn các file binary, file cấu hình, file pid xem có trùng khớp không.

# vi /lib/systemd/system/zabbix_server.service
[Unit]
Description=Zabbix Server
After=syslog.target network.target mysqld.service

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/zabbix_server -c /usr/local/etc/zabbix_server.conf
ExecReload=/usr/local/sbin/zabbix_server -R config_cache_reload
RemainAfterExit=yes
PIDFile=/var/run/zabbix_server.pid

[Install]
WantedBy=multi-user.target

Tiếp đến là nội dung file systemd service dành cho dịch vụ Zabbix Agentd trên local Zabbix Server. Cẩn thận kiểm tra lại đường dẫn các file binary, file cấu hình, file pid xem có trùng khớp không.

# vi /lib/systemd/system/zabbix_agentd.service
[Unit]
Description=Zabbix Agent
After=syslog.target network.target network-online.target
Wants=network.target network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
RemainAfterExit=yes
PIDFile=/var/run/zabbix_agentd.pid

[Install]
WantedBy=multi-user.target

Lúc này chúng ta hãy khoan khởi động dịch vụ Zabbix Server và Zabbix Agentd lên do chưa hoàn thành các phần cấu hình khác.

2.3 Cài đặt Database Zabbix Server

Đối với dịch vụ Zabbix Server hoặc Zabbix Proxy thì để Zabbix frontend php lấy dữ liệu phục vụ người dùng thi ta cần cài đặt template mẫu schema CSDL cho zabbix. Các template CSDL mẫu nằm ở thư mục source cài đặt “zabbix-3.4.9/database/mysql/“ tương đương option compile dịch vụ DB là MySQL.

# cd /opt/zabbix-3.4.9/database/mysql
# mysql
mysql> create database zabbix_db character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_db.* to 'zabbix_admin'@'localhost' identified by 'fQ7PVhO8LseaPG3b';
mysql> flush privileges;
mysql> quit;

Tiến hành import các mẫu table Database cho db zabbix_db .

# mysql -u zabbix_admin -p'fQ7PVhO8LseaPG3b' zabbix_db < schema.sql
# mysql -u zabbix_admin -p'fQ7PVhO8LseaPG3b' zabbix_db < images.sql
# mysql -u zabbix_admin -p'fQ7PVhO8LseaPG3b' zabbix_db < data.sql

2.4 Cấu hình thông tin dịch vụ của Zabbix Server.

+ Cấu hình dịch vụ Zabbix Server

Dưới đây là các cấu hình cơ bản đối với dịch vụ Zabbix Server, các phần cấu hình này trong file cấu hình có các comment lý giải chú thích ý nghĩa nội dung. Bây giờ chúng ta sẽ  chủ ý các keyword cấu hình các thông số cơ bản và thông tin truy cập database vừa tạo trên. Ở bài khác chúng ta sẽ đến với nội dung diễn giải các cấu hình trong Zabbix Server.

# vi /usr/local/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=250
DebugLevel=3
PidFile=/var/run/zabbix_server.pid

DBHost=localhost
DBName=zabbix_db
DBUser=zabbix_admin
DBPassword=fQ7PVhO8LseaPG3b
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306

CacheSize=32M
StartPingers=5

StartPollers=40
StartPollersUnreachable=40
StartTrappers=15
StartPingers=40
StartDiscoverers=10

AlertScriptsPath=/usr/local/share/zabbix/alertscripts
ExternalScripts=/usr/local/share/zabbix/externalscripts

+ Cấu hình dịch vụ Zabbix Agentd

# vi /usr/local/etc/zabbix_agentd.conf

PidFile=/var/run/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix_server

2.5 Khởi động cả 2 dịch vụ

– Lúc này ta đã có thể khởi động dịch vụ Zabbix Server.

# systemctl start zabbix_server.service
# systemctl start zabbix_agentd.service
# systemctl enable zabbix_server.service
# systemctl enable zabbix_agentd.service

Nếu có phát sinh lỗi bạn hãy coi file log /var/log/zabbix/zabbix_server.log/var/log/zabbix/zabbix_agentd.log để fix nhé.

2.6 Copy source Zabbix frontend

Bộ mã nguồn PHP frontend của Zabbix Server nằm ở source “zabbix-3.0.1/frontend/php/

# cd /opt/
# cp -rp zabbix-3.4.9/frontend/php/* /var/www/zabbix.cuongquachlab.com/public_html/
# chown apache: -R /var/www/zabbix.cuongquachlab.com/

Tinh chỉnh một số cấu hình php.ini của PHP 7 để đáp ứng được yêu cầu tối thiểu của mã nguồn PHP Zabbix Frontend.

# vi /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Ho_Chi_Minh

Khởi động lại dịch vụ Apache để áp cấu hình php mới.

# systemctl restart httpd

3. Thiết lập cấu hình Zabbix Server trên giao diện

Giờ thì bạn đã có thể tiến hành truy cập Zabbix Server trên giao diện web được rồi. Đường dẫn web như mình đề cặp ở ví dụ lab sẽ là : http://zabbix.cuongquachlab.com/

Giao diện đầu tiên của Zabbix Server frontend đó là chào mừng bạn đến với việc cấu hình zabbix server giao diện web đầu tiên. Bạn cần phải thực hiện cấu hình, khai báo thông tin,… trước khi có thể sử dụng hoàn toàn Zabbix Server giao diện web. “Next step”.

cài đặt zabbix server

Ở bước này, Zabbix Server sẽ kiểm tra các thông số đã đạt điều kiện tối thiểu hay chưa ?! “Next step”.

Tiếp tục phần khai báo thông tin kết nối Cơ Sở Dữ Liệu. Hãy điền thông tin mà ta đã khởi tạo ở trên cho database ‘zabbix_db‘.

Khai báo thông tin dịch vụ Zabbix Server đang lắng nghe port nào, để mã nguồn frontend PHP biết đường kết nối hoạt động.

Giao diện tổng kết thông tin để thiết lập cài đặt cho cấu hình mã nguồn PHP Trang quản lý Frontend Zabbix.

Zabbix Server thông báo việc thiết lập tinh chỉnh cho trang quản lý Zabbix frontend đã hoàn tất.

Giờ bạn đã tới màn hình đăng nhập giao diện web quản lý Zabbix Server. Thông tin mặc định để đăng nhập là:

User: Admin
Pass: zabbix

Sau cùng bạn đã đăng nhập vào được trang quản lý dịch vụ Zabbix Server. Hoàn tất việc cài đặt Zabbix Server .

Tổng kết

Vậy là sau khi được hướng dẫn khá là phức tạp về hình thức biên dịch mã nguồn Zabbix Server. Bạn đã biết cách cài đặt hoàn chỉnh một Zabbix Server trên CentOS 7, từ giờ chỉ cần tiến hành nghiên cứu làm sao để giám sát các hệ thống dịch vụ khác .

Nguồn: https://cuongquach.com/

Previous articleJenkins: Tổng quan giao diện quản lý Jenkins CI/CD
Next articleGiáo trình Javascript Tiếng Việt cơ bản (PDF)
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !