Hướng dẫn cài đặt Zabbix Server 3.4 trên CentOS 7 | Chà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ó 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
Contents
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.
Chi tiết có thể xem tại bài viết này: Zabbix 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) và 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
# 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 và /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”.
Ở 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/