Mở đầu
Trong những bài viết trước, mình đã hướng dẫn chi tiết các bước để xây dựng Zabbix Server trên nền tảng RHEL/CentOS và thiết lập giám sát một số OS phổ biến như Linux, Windows.
Với phiên bản 5.0 ở thời điểm hiện tại, Zabbix đã hỗ trợ giám sát thêm nhiều services không thể thiếu trong môi trường doanh nghiệp như: docker, mariadb, elasticsearch,…
Tiếp tục trong chuỗi bài viết về Zabbix, hôm nay mình sẽ hướng dẫn thiết lập giám sát PostgreSQL server trên CentOS 7 – một trong những mã nguồn mở về database phổ dụng nhất hiện nay.
Môi trường cần chuẩn bị
Môi trường cần chuẩn bị?
PostgreSQL server 9.x hoặc 10.x với Zabbix Agent được kích hoạt sẵn trên CentOS 7. Với Zabbix Agent, các bạn có thể tham khảo lại bài viết mình đã chia sẻ trước đây:
Hướng dẫn cài đặt Zabbix Agent trên server Linux
Cài đặt và cấu hình
1. Tạo user với quyền read-only để zabbix agent có thể truy cập vào PostgreSQL.
Truy cập vào PostgreSQL server với user postgres
su - postgres $ psql
- Với phiên bản PostgreSQL 10 trở về sau:
CREATE USER zabbix_monitor WITH PASSWORD '<PASSWORD>' INHERIT; GRANT pg_monitor TO zabbix_monitor;
- Với phiên bản PostSQL 9.6 trở về trước:
CREATE USER zabbix_monitor WITH PASSWORD '<PASSWORD>' INHERIT; GRANT SELECT ON pg_stat_database TO zabbix_monitor; -- To collect WAL metrics, the user must have a `superuser` role. ALTER USER zabbix_monitor WITH SUPERUSER;
2. Mở kết nối từ Zabbix Agent đến PostgreSQL server.
– Mở và thêm dòng
host all zabbix_monitor 127.0.0.1/32 trust
vào file pg_hba.conf để chấp nhận user zabbix_monitor truy cập vào PostgreSQL server.
Reload PostgreSQL service để áp dụng thay đổi
systemctl reload postgresql-9.6.service
3. Tạo file chứa thông tin kết nối đến PostgreSQL
– Tạo file .pgpass in thư mục gốc của Zabbix agent /var/lib/zabbix và thêm các thông tin instance, port, database, user và password theo cấu trúc sau:
*:5432:postgres:zabbix_monitor:<PASSWORD>
Lưu ý: Thay thế zabbix_monitor:<PASSWORD> bằng user và password trên hệ thống của bạn.
– Thiết lập quyền 0600 cho file .pgapass
chmod 0600 /var/lib/zabbix/.pgpass
4. Tạo thu mục chứa các file cần thiết để thu thập metrics từ PostgreSQL
– Clone source zabbix từ git.zabbix.com bằng lệnh sau:
# git clone https://git.zabbix.com/scm/zbx/zabbix.git
– Sau khi đã clone hoàn tất, copy thư mục postgresql/ vào thư mục gốc của Zabbix agent /var/lib/zabbix
cp -arv zabbix/browse/templates/db/postgresql/ /var/lib/zabbix
– Copy file template_db_postgresql.conf vào thư mục cấu hình Zabbix agent /etc/zabbix/zabbix_agentd.d/
cp -arv zabbix/browse/templates/db/postgresql/template_db_postgresql.conf /etc/zabbix/zabbix_agentd.d/
– Restart Zabbix agent
# systemctl restart zabbix-agent
5. Thêm đường dẫn biến môi trường cho user zabbix
– Tìm đường dẫn chứa file pg_isready
# find / -name pg_isready
Kết quả trả về từ lệnh trên như sau:
– Thêm path mới vào path đã tồn tại trên hệ thống bằng cách tạo mới file /etc/sysconfig/zabbix-agent với nội dung như sau:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.6/bin:/root/bin export PATH
– Khởi động lại Zabbix agent để cập nhật biến môi trường mới thêm vào.
# systemctl restart zabbix-agent
6. Thêm PostgreSQL server cần được giám sát vào Zabbix Server.
Đăng nhập vào trang quản trị (giao diện web) của Zabbix Server để thêm Docker host.
Tại giao diện chính, truy cập đến tab Configuration -> Hosts -> Create Host -> Host, nhập Host name (hostname dạng FQDN của server cần giám sát) và Visible name (cùng giá trị với Host name).
Tiếp theo, thêm host này vào một nhóm (group) các server được giám sát và nhập chính xác IP của nó vào trường “Agent interfaces“.
Kế tiếp, di chuyển sang tab Templates và nhấn chọn Select để mở cửa sổ các mẫu có sẵn do Zabbix cung cấp, chọn template “Template DB PostgreSQL”.
Sau khi thêm thành công PostgreSQL server vào Zabbix server, đợi vài phút để server nhận kết nối từ agent, ngay tại giao diện của Zabbix Frontend, kiểm tra latest data của PostgreSQL server, nếu kết quả như hình bên dưới đồng nghĩa bạn đã thiết lập thành công.
Lời kết
Như vậy là mình đã hoàn tất bài viết các bước chi tiết để cấu hình giám sát PostgreSQL server vào Zabbix. Nếu có đóng góp ý kiến hoặc thắc mắc về nội dung bài viết, các bạn có thể bình luận ngay bên dưới.
Rất mong các bạn theo dõi những bài viết tiếp theo của mình trong chủ đề Zabbix trong thời gian tới nhé.
Chúc các bạn thành công!!!
Để lại một phản hồi