เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเปเบšเบš PostgreSQL เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปƒเบ™ Zabbix 4.4

เบชเบฐเบšเบฒเบเบ”เบตเบ—เบธเบเป†เบ—เปˆเบฒเบ™.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ Zabbix เบกเบตเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ เปเบกเปˆเปเบšเบš DB PostgreSQL. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐ configure เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ Zabbix 4.4.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเปเบšเบš PostgreSQL เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปƒเบ™ Zabbix 4.4

เปเบฒเบ เป€เบซเบ”

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ”เบตเบเบฑเบšเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบกเปˆเปเบšเบšเบ•เบฒเบกเบ„เบนเปˆเบกเบทเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™

github.com/zabbix/zabbix/tree/master/templates/db/postgresql

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบปเบ”เบ„เบงเบฒเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบต nuances เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ™เบตเป‰.

เบเบฒเบ™เบเบฐเบเบฝเบกเปเบกเปˆเปเบšเบš

1. เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเป€เบฎเบทเบญเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

cd ~

2. เบ”เบฒเบงเป‚เบซเบผเบ” git utility เปเบฅเบฐ clone the official Zabbix repository, เป€เบŠเบดเปˆเบ‡เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ GitHub.

yum -y install git
git clone https://github.com/zabbix/zabbix.git

3. เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเปเบกเปˆเปเบšเบš PostgreSQL.

cd zabbix/templates/db/postgresql/

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเปเบ—เบ™ Zabbix

1. เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš PostgreSQL.

psql -U postgres

2. เบชเป‰เบฒเบ‡ zbx_monitor เบœเบนเป‰เปƒเบŠเป‰เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PostgreSQL.

เบชเปเบฒเบฅเบฑเบš PostgreSQL เบฎเบธเปˆเบ™ 10 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ:

CREATE USER zbx_monitor WITH PASSWORD '<ะ’ะะจ_ะŸะะ ะžะ›ะฌ>' INHERIT; GRANT pg_monitor TO zbx_monitor;

เบชเปเบฒเบฅเบฑเบš PostgreSQL เบฎเบธเปˆเบ™ 9.6 เปเบฅเบฐเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

CREATE USER zbx_monitor WITH PASSWORD '<ะ’ะะจ_ะŸะะ ะžะ›ะฌ>';
GRANT SELECT ON pg_stat_database TO zbx_monitor;

--ะ”ะปั ัะฑะพั€ะฐ ะผะตั‚ั€ะธะบ WAL ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒ ะดะพะปะถะตะฝ ะฑั‹ั‚ัŒ superuser.
ALTER USER zbx_monitor WITH SUPERUSER;

3. เบ„เบฑเบ”เบฅเบญเบเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต postgresql/ เป„เบ›เปƒเบชเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต /var/lib/zabbix/. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบกเบต zabbix/ directory เปƒเบ™ /var/lib/, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเป‰เบฒเบ‡เบกเบฑเบ™. postgresql / directory เบกเบตเป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ”เบถเบ‡เป€เบญเบปเบฒ metrics เบˆเบฒเบ PostgreSQL.

cp -r postgresql/ /var/lib/zabbix/

4. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒ template_db_postgresql.conf เป„เบ›เปƒเบชเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเบงเปเบ—เบ™ Zabbix /etc/zabbix/zabbix_agentd.d/ เปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบงเปเบ—เบ™ Zabbix เบ„เบทเบ™เปƒเปเปˆ.

cp template_db_postgresql.conf /etc/zabbix/zabbix_agentd.d/

5. เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เป„เบŸเบฅเปŒ pg_hba.conf เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Zabbix. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป„เบŸเบฅเปŒ pg_hba.conf: https://www.postgresql.org/docs/current/auth-pg-hba-conf.html.

เป€เบ›เบตเบ”เป„เบŸเบฅเปŒ:

vi /var/lib/pgsql/12/data/pg_hba.conf

เป€เบžเบตเปˆเบกเปœเบถเปˆเบ‡เปƒเบ™เปเบ–เบง (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบญเบฑเบ™เบ™เบตเป‰เบˆเบถเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™, เปƒเบซเป‰เป€เบžเบตเปˆเบกเบžเบฝเบ‡เปเบ•เปˆเปเบ–เบงเบ—เบณเบญเบดเบ”เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.):

host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5

เปเบฒเบ เป€เบซเบ”

เบ–เป‰เบฒ PostgreSQL เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ PGDG, เป€เบžเบตเปˆเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒ pg_isready เบเบฑเบšเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก PATH เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰ zabbix.

เป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ:

ln -s /usr/pgsql-12/bin/pg_isready /usr/bin/pg_isready

* - เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ‚เป‰เบญเบเบกเบต pgsql เบฎเบธเปˆเบ™ 12, เป€เบˆเบปเป‰เบฒเบˆเบฐเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ pgsql-12.

เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบฐเบ–เบฒเบ™เบฐ: Ping เบชเบฐเป€เบซเบกเบตเบˆเบฐเบฅเบปเบ‡.

เบเบฒเบ™เป€เบžเบตเปˆเบกเปเบกเปˆเปเบšเบšเบขเบนเปˆเปƒเบ™เบซเบ™เป‰เบฒ Zabbix

เบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบงเปˆเบฒเบœเบนเป‰เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ metrics เบˆเบฒเบ PostgreSQL เปเบฅเป‰เบงเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเปเบกเปˆเปเบšเบš. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป‚เบ”เบเบซเบเปเป‰.

  1. เป„เบ›เบซเบฒเบซเบ™เป‰เบฒ Zabbix;
  2. เป„เบ›โ€‹เบ—เบตเปˆโ€‹เบซเบ™เป‰เบฒ "เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ" => "เป€เบˆเบปเป‰เบฒเบžเบฒเบš";
  3. เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก "เบชเป‰เบฒเบ‡เป€เบˆเบปเป‰เบฒเบžเบฒเบš"เบซเบผเบทเป€เบฅเบทเบญเบเป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง;
  4. เปƒเบ™เปœเป‰เบฒเบเบฒเบ™เบชเป‰เบฒเบ‡/เปเบเป‰เป„เบ‚เป€เบˆเบปเป‰เบฒเบžเบฒเบš, เป€เบฅเบทเบญเบ โ€œเปเบกเปˆเปเบšเบš"เปเบฅเบฐเปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ"เบ•เบทเปˆเบก";
  5. เปƒเบ™ "เบเบธเปˆเบก", เป€เบฅเบทเบญเบ "เปเบกเปˆเปเบšเบš / เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™" เบˆเบฒเบเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆ, เป€เบฅเบทเบญเบเปเบกเปˆเปเบšเบš "เปเบกเปˆเปเบšเบš DB PostgreSQL", เบเบปเบ”เบ›เบธเปˆเบก"เป€เบฅเบทเบญเบ"เปเบฅเบฐเบเบปเบ”เบ›เบธเปˆเบก"เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡";

เบžเบงเบเป€เบฎเบปเบฒเบฅเปเบ–เป‰เบฒเป€เบงเบฅเบฒเปƒเบ”เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเป„เบ› "เบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒ" => "เบ‚เปเป‰เบกเบนเบ™เบซเบผเป‰เบฒเบชเบธเบ”" => "เป€เบˆเบปเป‰เบฒเบžเบฒเบš"เป€เบฅเบทเบญเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบกเบต PostgreSQL => เบ„เบฅเบดเบ"เบชเบฐเบซเบกเบฑเบเบ‚เปเป€เบญเบปเบฒ"

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเปเบšเบš PostgreSQL เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เปƒเบ™ Zabbix 4.4
เบกเบตเบ„เบงเบฒเบกเบชเบธเบ!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™