Hướng dẫn monitor PostgreSQL trên Zabbix

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 ZabbixNế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!!!

Giới thiệu Hiệp Phạm 94 bài viết
Hiệp hiện đang là thành viên nhóm tác giả của HIEPSHARING.COM. Thích tìm hiểu, nghiên cứu Ethical Hacking, SysAdmin, DevOps và những công nghệ mới. Phương châm sống của mình: "Chỉ cần bản thân không bỏ cuộc, chậm chút cũng không sao."

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*