[Zabbix] Hướng dẫn cài đặt Zabbix Agent trên CentOS/Ubuntu/Debian

Bài viết này sẽ hỗ trợ bạn cài đặt Zabbix Agent trên CentOS/Ubuntu/Debian sau khi bạn đã hoàn thành cài đặt Zabbix Server. Zabbix Agent cần được cài đặt trên các máy chủ client mà bạn cần giám sát bởi dịch vụ Zabbix Server.

Zabbix Agent sẽ hỗ trợ cho Zabbix Server thu thập các dữ liệu tài nguyên hệ thống hay ứng dụng chương trình đang chạy và cung cấp các thông tin đó cho Zabbix Server theo yêu cầu cấu hình từ quản trị viên trên Zabbix Server.

Có 2 cơ chế để trao đổi thông tin giữa Zabbix ServerZabbix Agent trên máy chủ client:
Passive Check
Active Check

Bạn có thể tham khảo bài viết này để hiểu thêm về 2 cơ chế trên : Sự khác biệt giữa Zabbix Active Check và Passive Check

Các bước cài đặt Zabbix Agent trên CentOS/Ubuntu/Debian

 1. Xác định phiên bản hệ điều hành Linux của Server/VPS

Trước khi cài đặt Zabbix Agent, cần xác định phiên bản hệ điều hành cần cài đặt là gì, kiến trúc vi xử lý của Hệ Điều Hành Linux.

+ RedHat/Centos

– Lệnh kiểm tra phiên bản hệ điều hành.

# cat /etc/redhat-release
CentOS release 6.8 (Final)

 
+ Debian/Ubuntu

# lsb_release -a

 
– Lệnh kiểm tra hệ điều hành là 32bit hay 64bit.

# arch
x86_64 <- 64bit

hoặc

x86 <- 32bit

 
2. Cài đặt Zabbix Repository tương ứng OS Release

Sau khi đã xác định được phiên bản hệ điều hành và kiến trúc CPU, bạn cần download package repo tương ứng version hệ thống Zabbix Server đang chạy và OS/Architecture tương ứng. Mình khuyên các bạn nên kiểm tra package repo trên trang chủ. Ở đây mình sẽ cài bản Zabbix Agent 3.2 do hệ thống Zabbix Server 3.2 sẽ có bài hướng dẫn.

Trang chủ download: http://www.zabbix.com/download

+ RedHat/Centos 5

– 32bit :

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/5/i386/zabbix-release-3.2-2.el5.noarch.rpm

– 64bit :

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/5/x86_64/zabbix-release-3.2-2.el5.noarch.rpm

 
+ RedHat/Centos 6

– 32bit :

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/i386/zabbix-release-3.2-1.el6.noarch.rpm

– 64bit :

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm

 
+ RedHat/Centos 7

– 64bit :

# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

 
+ Ubuntu 16.04 LTS

# 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
# sudo apt-get update

+ Ubuntu 14.04 LTS

# wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+trusty_all.deb
# sudo dpkg -i zabbix-release_3.2-1+trusty_all.deb
# sudo apt-get update

 
+ Debian 8

# wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie_all.deb
# sudo dpkg -i zabbix-release_3.2-1+jessie_all.deb
# sudo apt-get update

 
+ Debian 7

# wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+wheezy_all.deb
# sudo dpkg -i zabbix-release_3.2-1+wheezy_all.deb
# sudo apt-get update

 
3. Cài đặt Zabbix Agent

Sau khi cài đặt Zabbix Repository hoàn tất trên OS mà bạn muốn, chạy lệnh sau để tiến hành cài đặt Zabbix Agent (zabbix-agent) :

+ Centos/RedHat

# yum -y install zabbix-agent

 
+ Ubuntu/Debian

# sudo apt-get install zabbix-agent

 
4. Cấu hình cơ bản dịch vụ Zabbix Agent

File cấu hình Zabbix Agent ở đường dẫn : /etc/zabbix/zabbix_agentd.conf

Tiếp tục hoạt động cài đặt Zabbix Agent trên CentOS/Ubuntu/Debian là thao tác cấu hình thông tin cơ bản trong dịch vụ Zabbix Agent bằng cách chỉnh sửa file /etc/zabbix/zabbix_agentd.conf với các nội dung được liệt kê phía dưới. Lưu ý, ở dưới là các nội dung cấu hình tối thiểu để Zabbix Agent có thể kết nối với Zabbix Server và trao đổi dữ liệu giữa 2 bên máy chủ và client.

# vi /etc/zabbix/zabbix_agentd.conf
..
SourceIP=<agent-ip>
ListenIP=<agent-ip>
ListenPort=10050
Server=<zabbix-server-ip>
ServerActive=<zabbix-server-ip>
Hostname=<agent-hostname>
Include=/etc/zabbix/zabbix_agentd.d/
..

 
Chú thích :

+ SourceIP : IP của Zabbix Agent, tức là IP của Server/VPS bạn cần cấu hình. Trong trường hợp Khách Hàng có nhiều IP trên hệ thống thì cần chỉ định rõ IP nào sẽ được sử dụng để giao tiếp với Zabbix Server.
+ ListenIP : IP này sẽ được Zabbix Agent lắng nghe và là IP mà Zabbix Server gửi gói tin đến máy chủ client nhằm mục đích monitor. Thường thì SourceIP=ListenIP.
+ ListenPort : port mà Zabbix Agent dùng để lắng nghe, ở đây ta để mặc định 10050.
+ Server : bật chế độ Zabbix Monitor Passive ở Zabbix Agent.
+ ServerActive : bật chế độ Zabbix Monitor Active ở Zabbix Agent.
+ Hostname : tên hostname của Server/VPS, có thể xác định bằng lệnh (#hostname) trên Linux. Ví dụ như : zabbix.cuongquach.com
+ $<zabbix-server-ip> : là giá trị IP của 2 Monitor Zabbix Server.

Ở nội dung này mình sẽ không đề cập đến việc cấu hình item zabbix trên máy chủ client agent nhé.

 4.1 Cấu hình user monitor dịch vụ MySQL

Nếu bạn có sử dụng dịch vụ MySQL Database thì có thể cần làm thêm bước tạo user giám sát dịch vụ MySQL. Ta sẽ tạo user MySQL giám sát dịch vụ MySQL với thông tin mật khẩu là một chuỗi kí tự random string nhằm mục đích bảo mật thông tin dễ đoán hoặc có thể do bạn tự quyết định. Ta có thể khởi tạo mật khẩu khó đoán bằng lệnh sau :

# < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-15};echo;
vBvJUI4wiyaR2XB

 
Tiến hành khởi tạo user dành cho hoạt động giám sát MySQL của dịch vụ Zabbix Agent.

# mysql -uroot -p
mysql> GRANT PROCESS, SHOW DATABASES, REPLICATION CLIENT ON *.* TO 'monitoring'@'localhost' IDENTIFIED BY 'vBvJUI4wiyaR2XB';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

 
Cấu hình để dịch vụ Zabbix nhận biết sử dụng thông tin user nào để giám sát tình trạng MySQL.

# vi /usr/share/zabbix/conf/my.cnf
[client]
user=monitoring
password=vBvJUI4wiyaR2XB

# chown -R zabbix:zabbix /usr/share/zabbix

 
5. Khởi động và kiểm tra dịch vụ Zabbix Agent đã chạy hay chưa ?

Khởi động dịch vụ Zabbix Agent.

+ CentOS 5/6 và Ubuntu 14.04

# service zabbix-agent restart

 
+ CentOS 7 và Ubuntu 16.04

# systemctl restart zabbix-agent

 
Kiểm tra xem dịch vụ Zabbix Agent đã chạy và lắng nghe trên port 10050 chưa bằng các lệnh kiểm tra tiến trình và lệnh kiểm tra socket trên Linux/Unix .

# ps aux | grep zabbix | grep -v "grep"
zabbix 28130 0.0 0.0 77056 688 ? S Jan13 0:00 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 28134 0.0 0.0 77056 1296 ? S Jan13 1:59 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 28135 0.0 0.0 77056 952 ? S Jan13 2:28 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 28136 0.0 0.0 77056 932 ? S Jan13 2:32 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 28137 0.0 0.0 77056 944 ? S Jan13 2:33 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 28138 0.0 0.0 77064 740 ? S Jan13 0:12 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf

Kiểm tra dịch vụ đã lắng nghe trên port 10050 hay chưa ?

# ss -ln | grep "10050"
LISTEN 0 128 :::10050 :::* 
LISTEN 0 128 *:10050 *:*

# netstat -tpnl | grep "10050"
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 28130/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN 28130/zabbix_agentd

 
6. Mở port dành cho dịch vụ Zabbix trên Firewall

Dịch vụ Zabbix Server và Zabbix Agent hoạt động giao tiếp mặc định trên port 10050, nên yêu cầu phía Agent phải mở port 10050 chiều vào (incomming port) và port chiều ra (outgoing port ).

Việc này phụ thuộc vào hệ thống dịch vụ tường lửa phía máy chủ Agent là gì, thì người quản trị viên phải có sự điều chỉnh cho phù hợp với nội dung yêu cầu. Sau đây là 2 ví dụ cơ bản với dịch vụ tường lửa trên Linux.

VD 1 : phía Agent sử dụng CSF làm firewall
– Chỉnh sửa nội dung file cấu hình CSF : /etc/csf/csf.conf

# vi /etc/csf/csf.conf
TCP_IN = “20,21,22,25,80,10050”
TCP_OUT = “20,21,22,53,80,10050”

 
– Reload lại dịch vụ Firewall CSF.

# csf -r

 
VD 2 : phía Agent sử dụng Iptables làm Firewall thôi.

# iptables -I INPUT -p tcp --dport 10050 -j ACCEPT
# iptables -I OUTPUT -p tcp --sport 10050 -j ACCEPT

 
7. Cấu hình cần thiết khác

Tắt dịch vụ SELinux ở hệ thống Zabbix Agent, nhớ reboot lại.

# vi /etc/selinux/config
SELINUX=disabled

 
Nếu bạn xài CSF Firewall thì bạn nên whitelist tiến trình binary của Zabbix vào danh sách không theo dõi hoạt động bất thường trên Server/VPS từ phía CSF, ta sẽ làm như sau :

# which zabbix_agentd
/usr/sbin/zabbix_agentd
# vi /etc/csf/csf.pignore
exe:/usr/sbin/zabbix_agentd

 
Reload lại dịch vụ CSF Firewall.

# csf -r

 
8. Thiết lập Zabbix Agent khởi động cùng hệ thống

+ Centos/RHEL 5/6

# chkconfig zabbix-agent on

 
+ CentOS 7

# systemctl enable zabbix-agent


+ Ubuntu/Debian

# sudo update-rc.d zabbix-agent defaults

 
Như vậy là bạn đã hoàn tất việc cài đặt Zabbix Agent trên CentOS/Ubuntu/Debian hệ thống máy chủ client, nhiệm vụ cuối cùng là hãy thêm thông tin máy chủ vừa cài zabbix Agent này vào trên hệ thống Zabbix Server thông qua giao diện quản lý trên Zabbix Server (mình sẽ đề cập ở một bài nhỏ khác). Chúc các bạn thành công !

Previous articleFix lỗi “Fatal error: Python.h: No such file or Directory” khi xài pip
Next article[Ebook] Mastering Zabbix 2nd Edition – Download 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 !