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 Server và Zabbix 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
Contents
- 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
- 2. Cài đặt Zabbix Repository tương ứng OS Release
- 3. Cài đặt Zabbix Agent
- 4. Cấu hình cơ bản dịch vụ Zabbix Agent
- 4.1 Cấu hình user monitor dịch vụ MySQL
- 5. Khởi động và kiểm tra dịch vụ Zabbix Agent đã chạy hay chưa ?
- 6. Mở port dành cho dịch vụ Zabbix trên Firewall
- 7. Cấu hình cần thiết khác
- 8. Thiết lập Zabbix Agent khởi động cùng hệ thống
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 !