ນີ້ແມ່ນຄໍາສັ່ງ check_postgres_locksp ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
check_postgres - ສະຄຣິບຕິດຕາມ Postgres ສໍາລັບ Nagios, MRTG, Cacti, ແລະອື່ນໆ
ເອກະສານນີ້ອະທິບາຍ check_postgres ເວີຊັນ 2.22.0
ສະຫຼຸບສັງລວມ
## ສ້າງ symlinks ທັງຫມົດ
check_postgres --symlinks
## ກວດເບິ່ງການເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ Postgres 'pluto':
check_postgres --action=ການເຊື່ອມຕໍ່ --db=pluto
## ສິ່ງດຽວກັນ, ແຕ່ການໃຊ້ symlink
check_postgres_connection --db=ພລູໂຕ
## ເຕືອນຖ້າ > 100 ລັອກ, ສໍາຄັນຖ້າ > 200, ຫຼື > 20 ພິເສດ
check_postgres_locks --warning=100 --critical="total=200:exclusive=20"
## ສະແດງຈໍານວນການເຊື່ອມຕໍ່ idle ໃນປັດຈຸບັນຢູ່ໃນພອດ 6543:
check_postgres_txn_idle --port=6543 --output=ງ່າຍດາຍ
## ມີຫຼາຍການປະຕິບັດແລະທາງເລືອກອື່ນ, ກະລຸນາສືບຕໍ່ອ່ານ.
ຂ່າວ ແລະເອກະສານຫຼ້າສຸດສາມາດພົບໄດ້ຢູ່ສະເໝີທີ່:
http://bucardo.org/check_postgres/
ລາຍລະອຽດ
check_postgres ແມ່ນສະຄິບ Perl ທີ່ດໍາເນີນການທົດສອບທີ່ແຕກຕ່າງກັນຫຼາຍຕໍ່ກັບຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
ຖານຂໍ້ມູນ Postgres. ມັນໃຊ້ໂປແກມ psql ເພື່ອລວບລວມຂໍ້ມູນ, ແລະສົ່ງຜົນໄດ້ຮັບ
ຜົນໄດ້ຮັບໃນຫນຶ່ງໃນສາມຮູບແບບ: Nagios, MRTG, ຫຼືງ່າຍດາຍ.
ຜົນຜະລິດ Modes
ຜົນຜະລິດສາມາດປ່ຽນແປງໄດ້ໂດຍການໃຊ້ຕົວເລືອກ "--output". ຜົນຜະລິດເລີ່ມຕົ້ນແມ່ນ nagios,
ເຖິງແມ່ນວ່ານີ້ສາມາດປ່ຽນແປງຢູ່ເທິງສຸດຂອງສະຄິບຖ້າທ່ານຕ້ອງການ. ທາງເລືອກໃນປະຈຸບັນ
ທາງເລືອກແມ່ນ nagios, mrtg, ແລະ ງ່າຍດາຍ. ເພື່ອຫຼີກເວັ້ນການຕ້ອງເຂົ້າໄປໃນການໂຕ້ຖຽງຜົນຜະລິດແຕ່ລະຄົນ
ເວລາ, ປະເພດຂອງຜົນຜະລິດໄດ້ຖືກກໍານົດໂດຍອັດຕະໂນມັດຖ້າບໍ່ມີ --output argument ໄດ້ຖືກມອບໃຫ້, ແລະຖ້າ
ໄດເລກະທໍລີປະຈຸບັນມີຫນຶ່ງໃນທາງເລືອກຜົນຜະລິດໃນຊື່ຂອງມັນ. ສໍາລັບຕົວຢ່າງ, ການສ້າງ a
ໄດເລກະທໍລີທີ່ມີຊື່ mrtg ແລະສ້າງມັນດ້ວຍ symlinks ຜ່ານ --symlinks ການໂຕ້ຖຽງຈະ
ໃຫ້ແນ່ໃຈວ່າການດໍາເນີນການໃດໆຈາກໄດເລກະທໍລີນັ້ນຈະເປັນຄ່າເລີ່ມຕົ້ນຂອງ "mrtg" ສະເຫມີ.
ໃນຖານະເປັນທາງລັດສໍາລັບ --output=simple, ທ່ານສາມາດເຂົ້າ --simple, ເຊິ່ງ overrides ໄດ້
ເຄັດລັບການຕັ້ງຊື່ໄດເລກະທໍລີ.
Nagios output
ຮູບແບບຜົນຜະລິດເລີ່ມຕົ້ນແມ່ນສໍາລັບ Nagios, ເຊິ່ງເປັນເສັ້ນດຽວຂອງຂໍ້ມູນ, ພ້ອມກັບ
ສີ່ລະຫັດອອກສະເພາະ:
0 (ຕົກລົງ)
1 (ຄຳເຕືອນ)
2 (ສຳຄັນ)
3 (ບໍ່ຮູ້)
ເສັ້ນຜົນຜະລິດແມ່ນຫນຶ່ງໃນຄໍາຂ້າງເທິງ, ຈໍ້າສອງເມັດ, ແລະຫຼັງຈາກນັ້ນຄໍາອະທິບາຍສັ້ນໆກ່ຽວກັບສິ່ງທີ່
ໄດ້ຖືກວັດແທກ. ຂໍ້ມູນສະຖິຕິເພີ່ມເຕີມ, ເຊັ່ນດຽວກັນກັບເວລາທັງຫມົດຂອງຄໍາສັ່ງ
ເອົາ, ສາມາດອອກໄດ້ເຊັ່ນດຽວກັນ: ເບິ່ງເອກະສານກ່ຽວກັບການໂຕ້ຖຽງ --showperf,
--perflimit, ແລະ --ເວລາສະແດງ.
ຍທຂ output
ຜົນຜະລິດ MRTG ແມ່ນສີ່ເສັ້ນ, ມີເສັ້ນທໍາອິດສະເຫມີໄປໃຫ້ຈໍານວນດຽວຂອງ
ຄວາມສຳຄັນ. ໃນເວລາທີ່ເປັນໄປໄດ້, ຕົວເລກນີ້ສະແດງໃຫ້ເຫັນເປັນມູນຄ່າຕົວຈິງເຊັ່ນ: ຈໍານວນຂອງ
bytes, ແຕ່ມັນອາດຈະເປັນ 1 ຫຼື a 0 ສໍາລັບການປະຕິບັດທີ່ສົ່ງຄືນ "ຄວາມຈິງ" ຫຼື "ຜິດ", ເຊັ່ນ:
ເປັນ check_postgres_version. ແຖວທີສອງແມ່ນສະຖິຕິເພີ່ມເຕີມແລະຖືກນໍາໃຊ້ພຽງແຕ່ສໍາລັບ
ການກະທໍາບາງຢ່າງ. ເສັ້ນທີສາມຊີ້ໃຫ້ເຫັນເຖິງ "ເວລາຫວ່າງ" ແລະບໍ່ໄດ້ຖືກນໍາໃຊ້. ແຖວທີສີ່ແມ່ນ ກ
ຄໍາອະທິບາຍແລະປົກກະຕິແລ້ວຊີ້ໃຫ້ເຫັນຊື່ຂອງຖານຂໍ້ມູນສະຖິຕິຈາກແຖວທໍາອິດ
ໄດ້ຖືກດຶງມາຈາກ, ແຕ່ອາດຈະແຕກຕ່າງກັນຂຶ້ນຢູ່ກັບການປະຕິບັດ.
ການປະຕິບັດບາງຢ່າງຍອມຮັບທາງເລືອກ --mrtg ການໂຕ້ຖຽງເພື່ອຄວບຄຸມຜົນຜະລິດຕື່ມອີກ.
ເບິ່ງເອກະສານກ່ຽວກັບແຕ່ລະການປະຕິບັດສໍາລັບລາຍລະອຽດກ່ຽວກັບຜົນຜະລິດ MRTG ທີ່ແນ່ນອນສໍາລັບແຕ່ລະອັນ.
ງ່າຍດາຍ output
ຜົນຜະລິດທີ່ງ່າຍດາຍແມ່ນພຽງແຕ່ສະບັບຕັດຂອງ MRTG ຫນຶ່ງ, ແລະພຽງແຕ່ກັບຄືນ
ຕົວເລກທໍາອິດແລະບໍ່ມີຫຍັງອີກ. ນີ້ແມ່ນເປັນປະໂຫຍດຫຼາຍໃນເວລາທີ່ທ່ານພຽງແຕ່ຕ້ອງການທີ່ຈະກວດສອບລັດ
ຂອງບາງສິ່ງບາງຢ່າງ, ໂດຍບໍ່ຄໍານຶງເຖິງຂອບເຂດໃດກໍ່ຕາມ. ທ່ານສາມາດຫັນປ່ຽນຜົນຜະລິດຕົວເລກໂດຍ
ການຕໍ່ທ້າຍ KB, MB, GB, TB, ຫຼື EB ກັບອາກິວເມັນຜົນຜະລິດ, ຕົວຢ່າງ:
--output=ງ່າຍດາຍ,MB
Cacti output
ຜົນຜະລິດ Cacti ປະກອບດ້ວຍຫນຶ່ງຫຼືຫຼາຍລາຍການຢູ່ໃນເສັ້ນດຽວກັນ, ມີຊື່ງ່າຍດາຍ, a
ຈໍ້າສອງເມັດ, ແລະຫຼັງຈາກນັ້ນຕົວເລກ. ໃນປັດຈຸບັນ, ການປະຕິບັດພຽງແຕ່ກັບຜົນຜະລິດ Cacti ຢ່າງຊັດເຈນແມ່ນ
'dbstats', ແລະການໃຊ້ທາງເລືອກ --output ແມ່ນບໍ່ຈໍາເປັນໃນກໍລະນີນີ້, ເພາະວ່າ Cacti ແມ່ນພຽງແຕ່ຫນຶ່ງ.
ຜົນຜະລິດສໍາລັບການດໍາເນີນການນີ້. ສໍາລັບການປະຕິບັດອື່ນໆຈໍານວນຫຼາຍ, ການນໍາໃຊ້ --simple ແມ່ນພຽງພໍທີ່ຈະເຮັດໃຫ້ Cacti
happy
DATABASE ການຕິດຕໍ່ OPTIONS
ການປະຕິບັດທັງຫມົດຍອມຮັບຊຸດທາງເລືອກຖານຂໍ້ມູນທົ່ວໄປ.
-H NAME or --host=NAME
ເຊື່ອມຕໍ່ຫາແມ່ຂ່າຍທີ່ລະບຸໂດຍ NAME. ສາມາດເປັນລາຍຊື່ທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ.
ອະນຸຍາດໃຫ້ອະນຸຍາດໃຫ້ເປັນເຈົ້າພາບ argument ຫຼາຍ. ຖ້າບໍ່ມີເຈົ້າພາບຖືກມອບໃຫ້, ເລີ່ມຕົ້ນເປັນ "PGHOST"
ສະພາບແວດລ້ອມ variable ຫຼືບໍ່ມີ host ທັງຫມົດ (ເຊິ່ງຊີ້ໃຫ້ເຫັນເຖິງການນໍາໃຊ້ socket Unix ທ້ອງຖິ່ນ).
ທ່ານອາດຈະໃຊ້ "--dbhost".
-p PORT or --port=PORT
ເຊື່ອມຕໍ່ໂດຍໃຊ້ໝາຍເລກ PORT ທີ່ລະບຸ. ສາມາດເປັນລາຍຊື່ຜອດທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ
ຕົວເລກ, ແລະການໂຕ້ຖຽງພອດຫຼາຍແມ່ນອະນຸຍາດໃຫ້. ຖ້າບໍ່ມີໝາຍເລກພອດແມ່ນໃຫ້, ຄ່າເລີ່ມຕົ້ນ
ກັບຕົວແປສະພາບແວດລ້ອມ "PGPORT". ຖ້າບໍ່ໄດ້ຕັ້ງ, ມັນຈະເປັນຄ່າເລີ່ມຕົ້ນເປັນ 5432. ເຈົ້າອາດຈະ
ຍັງໃຊ້ "--dbport"
-db NAME or --dbname=NAME
ລະບຸວ່າຖານຂໍ້ມູນໃດທີ່ຈະເຊື່ອມຕໍ່ກັບ. ສາມາດເປັນລາຍຊື່ທີ່ແຍກດ້ວຍໝາຍຈຸດຂອງຊື່, ແລະ
ອະນຸຍາດໃຫ້ມີການໂຕ້ຖຽງ dbname ຫຼາຍ. ຖ້າບໍ່ມີທາງເລືອກ dbname ຖືກສະຫນອງໃຫ້, ເລີ່ມຕົ້ນເປັນ
ສະພາບແວດລ້ອມ "PGDATABASE" ຕົວແປ. ຖ້າອັນນັ້ນບໍ່ໄດ້ຕັ້ງ, ມັນຈະຕັ້ງເປັນ 'postgres'.
ຖ້າ psql ເປັນເວີຊັນ 8 ຫຼືຫຼາຍກວ່ານັ້ນ, ແລະ 'template1' ຖ້າບໍ່ດັ່ງນັ້ນ.
-u USERNAME or --dbuser=USERNAME
ຊື່ຂອງຜູ້ໃຊ້ຖານຂໍ້ມູນທີ່ຈະເຊື່ອມຕໍ່ເປັນ. ສາມາດເປັນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ
ຊື່ຜູ້ໃຊ້, ແລະການໂຕ້ຖຽງ dbuser ຫຼາຍແມ່ນອະນຸຍາດໃຫ້. ຖ້າຫາກວ່ານີ້ບໍ່ໄດ້ສະຫນອງໃຫ້, ມັນ
ຄ່າເລີ່ມຕົ້ນເປັນຕົວແປສະພາບແວດລ້ອມ "PGUSER", ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະເປັນຄ່າເລີ່ມຕົ້ນເປັນ 'postgres'.
--dbpass=PASSWORD
ໃຫ້ລະຫັດຜ່ານເພື່ອເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ. ການນໍາໃຊ້ທາງເລືອກນີ້ແມ່ນສູງ
ທໍ້ຖອຍໃຈ. ແທນທີ່ຈະ, ຫນຶ່ງຄວນໃຊ້ໄຟລ໌ .pgpass ຫຼື pg_service.conf.
--dbservice=NAME
ຊື່ຂອງການບໍລິການພາຍໃນໄຟລ໌ pg_service.conf. ກ່ອນເວີຊັນ 9.0 ຂອງ
Postgres, ນີ້ແມ່ນໄຟລ໌ທົ່ວໂລກ, ປົກກະຕິແລ້ວພົບຢູ່ໃນ /etc/pg_service.conf. ຖ້າຫາກວ່າທ່ານ
ໂດຍໃຊ້ເວີຊັນ 9.0 ຫຼືສູງກວ່າຂອງ Postgres, ທ່ານສາມາດໃຊ້ໄຟລ໌ ".pg_service.conf" ໃນ
ໄດເລກະທໍລີເຮືອນຂອງຜູ້ໃຊ້ທີ່ໃຊ້ script, ຕົວຢ່າງ nagios.
ໄຟລ໌ນີ້ມີບັນຊີລາຍຊື່ງ່າຍດາຍຂອງທາງເລືອກການເຊື່ອມຕໍ່. ນອກນັ້ນທ່ານຍັງສາມາດຜ່ານເພີ່ມເຕີມ
ຂໍ້ມູນໃນເວລາທີ່ໃຊ້ຕົວເລືອກນີ້ເຊັ່ນ --dbservice="maindatabase sslmode=require"
ເອກະສານສໍາລັບເອກະສານນີ້ສາມາດພົບໄດ້ທີ່
http://www.postgresql.org/docs/current/static/libpq-pgservice.html
ຕົວເລືອກການເຊື່ອມຕໍ່ຖານຂໍ້ມູນສາມາດຈັດກຸ່ມໄດ້: --host=a,b --host=c --port=1234
--port=3344 ຈະເຊື່ອມຕໍ່ກັບ a-1234, b-1234, ແລະ c-3344. ໃຫ້ສັງເກດວ່າເມື່ອຕັ້ງ, ທາງເລືອກ
ປະຕິບັດຈົນກ່ວາມັນມີການປ່ຽນແປງອີກເທື່ອຫນຶ່ງ.
ຕົວຢ່າງ:
--host=a,b --port=5433 --db=c
ເຊື່ອມຕໍ່ສອງຄັ້ງກັບພອດ 5433, ໂດຍໃຊ້ຖານຂໍ້ມູນ c, ເພື່ອໂຮດ a ແລະ b: a-5433-c b-5433-c
--host=a,b --port=5433 --db=c,d
ເຊື່ອມຕໍ່ສີ່ຄັ້ງ: a-5433-c a-5433-d b-5433-c b-5433-d
--host=a,b --host=foo --port=1234 --port=5433 --db=e,f
ເຊື່ອມຕໍ່ຫົກຄັ້ງ: a-1234-e a-1234-f b-1234-e b-1234-f foo-5433-e foo-5433-f
--host=a,b --host=x --port=5432,5433 --dbuser=alice --dbuser=bob -db=baz
ເຊື່ອມຕໍ່ສາມຄັ້ງ: a-5432-alice-baz b-5433-alice-baz x-5433-bob-baz
--dbservice="foo" --port=5433
ເຊື່ອມຕໍ່ໂດຍໃຊ້ບໍລິການທີ່ມີຊື່ 'foo' ໃນໄຟລ໌ pg_service.conf, ແຕ່ overrides ພອດ.
ອື່ນໆ OPTIONS
ຕົວເລືອກອື່ນໆລວມມີ:
--action=NAME
ບອກວ່າພວກເຮົາດໍາເນີນການຫຍັງ. ຕ້ອງການເວັ້ນເສຍແຕ່ວ່າການນໍາໃຊ້ໄຟລ໌ symlinked, ໃນນັ້ນ
ກໍລະນີຊື່ຂອງໄຟລ໌ໄດ້ຖືກນໍາໃຊ້ເພື່ອຄິດອອກການປະຕິບັດ.
--warning=VAL or -w VAL
ກໍານົດຂອບເຂດທີ່ການແຈ້ງເຕືອນຖືກຍິງອອກ. ທາງເລືອກທີ່ຖືກຕ້ອງສໍາລັບການນີ້
ທາງເລືອກແມ່ນຂຶ້ນກັບການປະຕິບັດທີ່ໃຊ້.
--critical=VAL or -c VAL
ກໍານົດຂອບເຂດທີ່ການແຈ້ງເຕືອນທີ່ສໍາຄັນຖືກຍິງອອກ. ທາງເລືອກທີ່ຖືກຕ້ອງສໍາລັບການນີ້
ທາງເລືອກແມ່ນຂຶ້ນກັບການປະຕິບັດທີ່ໃຊ້.
-t VAL or --timeout=VAL
ກໍານົດເວລາຫມົດເວລາໃນວິນາທີຫຼັງຈາກນັ້ນ script ຈະຍົກເລີກອັນໃດກໍ່ຕາມທີ່ມັນກໍາລັງເຮັດແລະ
ສົ່ງຄືນສະຖານະທີ່ບໍ່ຮູ້ຈັກ. ເວລາໝົດເວລາແມ່ນຕໍ່ກຸ່ມ Postgres, ບໍ່ແມ່ນທັງໝົດ
script. ຄ່າເລີ່ມຕົ້ນແມ່ນ 10; ຫນ່ວຍງານແມ່ນສະເຫມີໄປໃນວິນາທີ.
--assume-standby-mode
ຖ້າລະບຸ, ທໍາອິດໃຫ້ກວດເບິ່ງວ່າເຄື່ອງແມ່ຂ່າຍຢູ່ໃນໂຫມດສະແຕນບາຍຈະດໍາເນີນການຫຼືບໍ່ (--datadir
ແມ່ນຕ້ອງການ), ຖ້າເປັນດັ່ງນັ້ນ, ການກວດສອບທັງຫມົດທີ່ຮຽກຮ້ອງໃຫ້ມີການສອບຖາມ SQL ຈະຖືກລະເລີຍແລະ "Server
ຢູ່ໃນໂໝດສະແຕນບາຍ" ດ້ວຍສະຖານະ OK ຈະຖືກສົ່ງຄືນແທນ.
ຕົວຢ່າງ:
postgres@db$./check_postgres --action=version --warning=8.1 --datadir /var/lib/postgresql/8.3/main/ --assume-standby-mode
POSTGRES_VERSION OK: ເຊີບເວີຢູ່ໃນໂໝດສະແຕນບາຍ | ເວລາ=0.00
--ສົມມຸດ-ຜະລິດ
ຖ້າລະບຸ, ກວດເບິ່ງວ່າເຊີບເວີໃນໂຫມດການຜະລິດຖືກປະຕິບັດຫຼືບໍ່ (--datadir ແມ່ນຕ້ອງການ).
ທາງເລືອກແມ່ນມີຄວາມກ່ຽວຂ້ອງພຽງແຕ່ສໍາລັບ ("symlink: check_postgres_checkpoint").
ຕົວຢ່າງ:
postgres@db$./check_postgres --action=checkpoint --datadir /var/lib/postgresql/8.3/main/ --assume-prod
POSTGRES_CHECKPOINT OK: ດ່ານສຸດທ້າຍແມ່ນ 72 ວິນາທີກ່ອນ | age=72;;300 ໂໝດ=ແມ່ບົດ
-h or - ຊ່ວຍ
ສະແດງຫນ້າຈໍການຊ່ວຍເຫຼືອທີ່ມີສະຫຼຸບສັງລວມຂອງການດໍາເນີນການທັງຫມົດແລະທາງເລືອກ.
--ຜູ້ຊາຍ
ສະແດງຄູ່ມືທັງໝົດ.
-V or - ການປ່ຽນແປງ
ສະແດງສະບັບປະຈຸບັນ.
-v or -- verbose
ກໍານົດລະດັບ verbosity. ສາມາດໂທຫາຫຼາຍກວ່າຫນຶ່ງຄັ້ງເພື່ອເພີ່ມລະດັບ. ການຕັ້ງຄ່າມັນເປັນ
ສາມຫຼືສູງກວ່າ (ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ການອອກ "-v -v -v") ເປີດຂໍ້ມູນການດີບັກ
ສໍາລັບໂຄງການນີ້ທີ່ຖືກສົ່ງໄປຫາ stderr.
--showperf=VAL
ກໍານົດວ່າພວກເຮົາສົ່ງຂໍ້ມູນປະສິດທິພາບເພີ່ມເຕີມໃນຮູບແບບ Nagios ມາດຕະຖານ (ໃນຕອນທ້າຍ
ຂອງ string, ຫຼັງຈາກສັນຍາລັກທໍ່, ການນໍາໃຊ້ name=value). VAL ຄວນເປັນ 0 ຫຼື 1. ຄ່າເລີ່ມຕົ້ນ
ແມ່ນ 1. ພຽງແຕ່ມີຜົນຖ້າໃຊ້ໂຫມດຜົນຜະລິດ Nagios.
--perflimit=i
ກໍານົດຈໍາກັດກ່ຽວກັບການຈໍານວນຫຼາຍລາຍການທີ່ມີຄວາມສົນໃຈທີ່ຈະຖືກລາຍງານຄືນໃນເວລາທີ່ການນໍາໃຊ້
showperf ທາງເລືອກ. ນີ້ພຽງແຕ່ມີຜົນກະທົບສໍາລັບການດໍາເນີນການທີ່ສົ່ງຄືນຈໍານວນຂະຫນາດໃຫຍ່ຂອງ
ລາຍການ, ເຊັ່ນ table_size. ຄ່າເລີ່ມຕົ້ນແມ່ນ 0, ຫຼືບໍ່ມີຂອບເຂດຈໍາກັດ. ຈົ່ງລະມັດລະວັງໃນເວລາໃຊ້ນີ້
ກັບ --ລວມ or --ຍົກເວັ້ນ ທາງເລືອກ, ເນື່ອງຈາກວ່າຂໍ້ຈໍາກັດເຫຼົ່ານັ້ນແມ່ນເຮັດແລ້ວ ຫຼັງຈາກ ໄດ້
ການສອບຖາມໄດ້ຖືກດໍາເນີນການ, ແລະດັ່ງນັ້ນຂອບເຂດຈໍາກັດຂອງທ່ານອາດຈະບໍ່ລວມເອົາລາຍການທີ່ທ່ານຕ້ອງການ. ພຽງແຕ່ໃຊ້ເວລາ
ຜົນກະທົບຖ້າໃຊ້ໂຫມດຜົນຜະລິດ Nagios.
--showtime=VAL
ກໍານົດເວລາທີ່ຈະດໍາເນີນການແຕ່ລະຄໍາຖາມສະແດງໃຫ້ເຫັນຢູ່ໃນຜົນໄດ້ຮັບ. VAL ຄວນເປັນ 0
ຫຼື 1. ຄ່າເລີ່ມຕົ້ນແມ່ນ 1. ບໍ່ມີຜົນເວັ້ນເສຍແຕ່ showperf ເປີດຢູ່. ມີຜົນພຽງແຕ່ຖ້າໃຊ້
ໂໝດຜົນຜະລິດ Nagios.
--ທົດສອບ
ເປີດໃຊ້ໂໝດທົດສອບ. ເບິ່ງພາກສ່ວນ "TEST MODE" ຂ້າງລຸ່ມນີ້.
--PGBINDIR=ເສັ້ນທາງ
ບອກສະຄຣິບບ່ອນທີ່ຈະຊອກຫາ psql binaries. ເປັນປະໂຫຍດຖ້າທ່ານມີຫຼາຍກວ່າຫນຶ່ງ
ສະບັບຂອງ PostgreSQL ປະຕິບັດໄດ້ໃນລະບົບຂອງທ່ານ, ຫຼືຖ້າຫາກວ່າບໍ່ມີຢູ່ໃນຂອງທ່ານ
ເສັ້ນທາງ. ໃຫ້ສັງເກດວ່າທາງເລືອກນີ້ແມ່ນຢູ່ໃນຕົວພິມໃຫຍ່ທັງຫມົດ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ທາງເລືອກນີ້ແມ່ນ ບໍ່
ອະນຸຍາດໃຫ້. ເພື່ອເປີດໃຊ້ງານມັນ, ທ່ານຕ້ອງປ່ຽນ $NO_PSQL_OPTION ຢູ່ໃກ້ກັບເທິງສຸດຂອງສະຄຣິບ
ເຖິງ 0. ຫຼີກເວັ້ນການໃຊ້ທາງເລືອກນີ້ຖ້າທ່ານສາມາດ, ແລະແທນທີ່ຈະໃຊ້ຕົວແປສະພາບແວດລ້ອມ
ຄ ຫຼືຕົວແປ $PGBINDIR ທີ່ມີລະຫັດຍາກ, ຍັງຢູ່ໃກ້ກັບເທິງສຸດຂອງສະຄຣິບ, ເພື່ອຕັ້ງຄ່າ
ເສັ້ນທາງໄປຫາ PostgreSQL ທີ່ຈະໃຊ້.
--PSQL=PATH
(ຄັດຄ້ານ, ນີ້ ທາງເລືອກ ອາດຈະ be ລົບອອກ in a ໃນອະນາຄົດ ປ່ອຍ!) ບອກສະຄຣິບຢູ່ໃສ
ເພື່ອຊອກຫາໂຄງການ psql. ເປັນປະໂຫຍດຖ້າຫາກວ່າທ່ານມີຫຼາຍກວ່າຫນຶ່ງສະບັບຂອງ psql
ສາມາດປະຕິບັດໄດ້ໃນລະບົບຂອງເຈົ້າ, ຫຼືຖ້າບໍ່ມີໂປຼແກຼມ psql ຢູ່ໃນເສັ້ນທາງຂອງເຈົ້າ. ໃຫ້ສັງເກດວ່ານີ້
ທາງເລືອກແມ່ນຢູ່ໃນຕົວພິມໃຫຍ່ທັງຫມົດ. ໂດຍຄ່າເລີ່ມຕົ້ນ, ທາງເລືອກນີ້ແມ່ນ ບໍ່ ອະນຸຍາດໃຫ້. ເພື່ອເປີດໃຊ້ງານມັນ, ເຈົ້າ
ຕ້ອງປ່ຽນ $NO_PSQL_OPTION ຢູ່ໃກ້ກັບເທິງສຸດຂອງສະຄຣິບເປັນ 0. ຫຼີກເວັ້ນການໃຊ້ອັນນີ້
ທາງເລືອກຖ້າຫາກວ່າທ່ານສາມາດ, ແລະແທນທີ່ຈະ hard-code ສະຖານທີ່ psql ຂອງທ່ານເຂົ້າໄປໃນຕົວແປ $PSQL,
ຍັງຢູ່ໃກ້ກັບດ້ານເທິງຂອງສະຄຣິບ.
--symlinks
ສ້າງ symlinks ກັບໂຄງການຕົ້ນຕໍສໍາລັບແຕ່ລະປະຕິບັດ.
--output=VAL
ກໍານົດຮູບແບບຜົນຜະລິດ, ສໍາລັບການນໍາໃຊ້ໃນໂຄງການຕ່າງໆ. ຄ່າເລີ່ມຕົ້ນແມ່ນ
'ນາໂກຍ'. ທາງເລືອກທີ່ມີຢູ່ແມ່ນ 'nagios', 'mrtg', 'simple' ແລະ 'cacti'.
--mrtg=VAL
ໃຊ້ພຽງແຕ່ສໍາລັບ MRTG ຫຼືຜົນຜະລິດທີ່ງ່າຍດາຍ, ສໍາລັບການປະຕິບັດສະເພາະຈໍານວນຫນຶ່ງ.
--debugoutput=VAL
ສົ່ງຄ່າສະຕຣິງທີ່ແນ່ນອນທີ່ສົ່ງຄືນໂດຍ psql, ເພື່ອໃຊ້ໃນການດີບັກ. ມູນຄ່າແມ່ນຫນຶ່ງຫຼື
ຕົວອັກສອນເພີ່ມເຕີມ, ເຊິ່ງກໍານົດວ່າຜົນໄດ້ຮັບຖືກສະແດງຫຼືບໍ່, ບ່ອນທີ່ 'a' = ທັງຫມົດ, 'c'
= ສໍາຄັນ, 'w' = ເຕືອນ, 'o' = ok, ແລະ 'u' = ບໍ່ຮູ້. ຕົວອັກສອນສາມາດຖືກລວມເຂົ້າກັນໄດ້.
--get_method=VAL
ອະນຸຍາດໃຫ້ສະເພາະຂອງວິທີການທີ່ໃຊ້ເພື່ອດຶງຂໍ້ມູນສໍາລັບ "new_version_cp",
"new_version_pg", "new_version_bc", "new_version_box", ແລະ "new_version_tnm".
ໂຄງການຕໍ່ໄປນີ້ໄດ້ຖືກພະຍາຍາມ, ເພື່ອຄວ້າຂໍ້ມູນຈາກເວັບ: GET,
wget, fetch, curl, lynx, links. ເພື່ອບັງຄັບໃຊ້ພຽງແຕ່ຫນຶ່ງ (ແລະດັ່ງນັ້ນຈຶ່ງເອົາອອກ
overhead ຂອງການພະຍາຍາມອື່ນໆທັງຫມົດຈົນກ່ວາຫນຶ່ງຂອງວຽກງານເຫຼົ່ານັ້ນ), ໃສ່ຊື່ຫນຶ່ງເປັນ
ການໂຕ້ຖຽງເພື່ອ get_method. ຕົວຢ່າງ, ກ່ອງ BSD ອາດຈະເຂົ້າໄປໃນແຖວຕໍ່ໄປນີ້
ໄຟລ໌ ".check_postgresrc" ຂອງເຂົາເຈົ້າ:
get_method=fetch
--language=VAL
ກໍານົດພາສາທີ່ຈະໃຊ້ສໍາລັບຂໍ້ຄວາມອອກທັງຫມົດ. ປົກກະຕິແລ້ວ, ນີ້ແມ່ນກວດພົບໂດຍ
ການກວດສອບຕົວແປສະພາບແວດລ້ອມ LC_ALL, LC_MESSAGES, ແລະ LANG, ແຕ່ການຕັ້ງຄ່ານີ້
ທາງເລືອກຈະ override ການກວດຫາດັ່ງກ່າວ.
ກິດຈະກໍາ
script ດໍາເນີນການຫນຶ່ງຫຼືຫຼາຍການປະຕິບັດ. ອັນນີ້ສາມາດເຮັດໄດ້ດ້ວຍທຸງ --action, ຫຼືໂດຍ
ການນໍາໃຊ້ symlink ກັບໄຟລ໌ຕົ້ນຕໍທີ່ມີຊື່ຂອງການປະຕິບັດພາຍໃນຂອງມັນ. ສໍາລັບ
ຕົວຢ່າງ, ເພື່ອດໍາເນີນການ "timesync", ທ່ານອາດຈະມີບັນຫາ:
check_postgres --action=timesync
ຫຼືໃຊ້ໂຄງການທີ່ມີຊື່:
check_postgres_timesync
symlinks ທັງຫມົດແມ່ນຖືກສ້າງຂຶ້ນສໍາລັບທ່ານໃນໄດເລກະທໍລີປະຈຸບັນຖ້າໃຊ້ທາງເລືອກ --symlinks
perl check_postgres --symlinks
ຖ້າຊື່ໄຟລ໌ມີຢູ່ແລ້ວ, ມັນຈະບໍ່ຖືກຂຽນທັບ. ຖ້າໄຟລ໌ມີຢູ່ແລະເປັນ a
symlink, ທ່ານສາມາດບັງຄັບໃຫ້ຂຽນທັບໂດຍການໃຊ້ "--action=build_symlinks_force"
ການປະຕິບັດສ່ວນໃຫຍ່ໃຊ້ເວລາ a --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກ, ຊີ້ບອກວ່າພວກເຮົາປ່ຽນຈຸດໃດ
ຈາກ OK ໄປຫາ WARNING, ແລະຈຸດໃດທີ່ພວກເຮົາໄປຫາ CRITICAL. ໃຫ້ສັງເກດວ່າເນື່ອງຈາກວ່າວິຈານແມ່ນ
ກວດສອບກ່ອນສະເໝີ, ການຕັ້ງຄ່າເຕືອນໄພເທົ່າທຽມກັບຄວາມສຳຄັນແມ່ນເປັນວິທີທີ່ມີປະສິດທິຜົນ
ປິດການເຕືອນໄພ ແລະໃຫ້ຄວາມສຳຄັນສະເໝີ.
ການປະຕິບັດທີ່ສະຫນັບສະຫນູນໃນປະຈຸບັນແມ່ນ:
archive_ready
("symlink: check_postgres_archive_ready") ກວດເບິ່ງຈໍານວນໄຟລ໌ WAL ທີ່ມີນາມສະກຸນ .ພ້ອມ
ມີຢູ່ໃນ pg_xlog/archive_status ໄດເລກະທໍລີ, ເຊິ່ງຖືກພົບເຫັນຈາກຂອງທ່ານ data_directory.
ການປະຕິບັດນີ້ຕ້ອງໄດ້ຮັບການດໍາເນີນການເປັນ superuser, ໃນຄໍາສັ່ງທີ່ຈະເຂົ້າເຖິງເນື້ອໃນຂອງ
pg_xlog/archive_status ໄດເລກະທໍລີ. ສະບັບຕໍາ່ສຸດທີ່ຈະໃຊ້ການດໍາເນີນການນີ້ແມ່ນ Postgres 8.1.
ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນພຽງແຕ່ຈໍານວນຂອງ .ພ້ອມ ໄຟລ໌ໃນ
pg_xlog/archive_status ໄດເລກະທໍລີ. ໂດຍປົກກະຕິແລ້ວ, ຄ່າເຫຼົ່ານີ້ຄວນຈະຕໍ່າ, ເປີດເຄື່ອງ
ກົນໄກການຈັດເກັບ, ພວກເຮົາມັກຈະຕ້ອງການໃຫ້ມັນເກັບໄຟລ໌ WAL ໄວເທົ່າທີ່ຈະໄວໄດ້.
ຖ້າຄໍາສັ່ງເກັບລົ້ມເຫລວ, ຈໍານວນ WAL ໃນຂອງເຈົ້າ pg_xlog ໄດເລກະທໍລີຈະເຕີບໂຕຈົນກ່ວາ
ເຮັດໃຫ້ພື້ນທີ່ດິສກ໌ໝົດໄປ ແລະບັງຄັບໃຫ້ PostgreSQL ຢຸດທັນທີ.
ຕົວຢ່າງ 1: ກວດເບິ່ງວ່າຈໍານວນໄຟລ໌ WAL ທີ່ກຽມພ້ອມແມ່ນ 10 ຫຼືນ້ອຍກວ່າຢູ່ໃນ host "pluto"
check_postgres_archive_ready --host=pluto --critical=10
ສໍາລັບຜົນຜະລິດ MRTG, ລາຍງານຈໍານວນໄຟລ໌ WAL ທີ່ກຽມພ້ອມໃນແຖວ 1.
autovac_freeze
("symlink: check_postgres_autovac_freeze") ກວດເບິ່ງວ່າແຕ່ລະຖານຂໍ້ມູນໃກ້ກັບຖານຂໍ້ມູນເທົ່າໃດ.
ໄປສະນີ autovacuum_freeze_max_age ການຕັ້ງຄ່າ. ການປະຕິບັດນີ້ຈະເຮັດວຽກພຽງແຕ່ສໍາລັບຖານຂໍ້ມູນ
ຮຸ່ນ 8.2 ຫຼືສູງກວ່າ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງ ເລືອກ ຄວນ ຈະ ໄດ້ ຮັບ ການ ສະ ແດງ ອອກ ເປັນ
ເປີເຊັນ. 'ອາຍຸ' ຂອງທຸລະກໍາໃນແຕ່ລະຖານຂໍ້ມູນແມ່ນປຽບທຽບກັບ
ການຕັ້ງຄ່າ autovacuum_freeze_max_age (200 ລ້ານຕາມຄ່າເລີ່ມຕົ້ນ) ເພື່ອສ້າງເປັນຮູບກົມ
ເປີເຊັນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 90% ສໍາລັບການເຕືອນໄພແລະ 95% ສໍາລັບການສໍາຄັນ. ຖານຂໍ້ມູນ
ສາມາດໄດ້ຮັບການກັ່ນຕອງໂດຍການນໍາໃຊ້ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ "ການກັ່ນຕອງພື້ນຖານ"
ສ່ວນ ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນເມື່ອຖານຂໍ້ມູນໃດໆໃນພອດ 5432 ສູງກວ່າ 97%
check_postgres_autovac_freeze --port=5432 --warning="97%"
ສໍາລັບຜົນຜະລິດ MRTG, ອັດຕາສ່ວນລວມສູງສຸດແມ່ນລາຍງານຢູ່ໃນເສັ້ນທໍາອິດ, ແລະ
ອາຍຸສູງສຸດແມ່ນລາຍງານຢູ່ໃນແຖວທີສອງ. ຖານຂໍ້ມູນທັງໝົດທີ່ມີສ່ວນຮ້ອຍຈາກ
ເສັ້ນທໍາອິດໄດ້ຖືກລາຍງານຢູ່ໃນເສັ້ນທີສີ່, ແຍກອອກໂດຍສັນຍາລັກທໍ່.
ຫລັງ
("symlink: check_postgres_backends") ກວດເບິ່ງຈໍານວນການເຊື່ອມຕໍ່ປະຈຸບັນສໍາລັບຫນຶ່ງຫຼື
ຖານຂໍ້ມູນຫຼາຍກວ່າ, ແລະທາງເລືອກຈະປຽບທຽບມັນກັບສູງສຸດອະນຸຍາດໃຫ້, ທີ່ກໍານົດໂດຍ
ຕົວແປການຕັ້ງຄ່າ Postgres ການເຊື່ອມຕໍ່ສູງສຸດ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກໃນການ
ສາມາດເອົາຫນຶ່ງໃນສາມຮູບແບບ. ຫນ້າທໍາອິດ, ຈໍານວນງ່າຍດາຍສາມາດໄດ້ຮັບການ, ເຊິ່ງເປັນຕົວແທນ
ຈໍານວນຂອງການເຊື່ອມຕໍ່ທີ່ຈະໄດ້ຮັບການເຕືອນ. ທາງເລືອກນີ້ບໍ່ໄດ້ໃຊ້
ການເຊື່ອມຕໍ່ສູງສຸດ ການຕັ້ງຄ່າ. ອັນທີສອງ, ອັດຕາສ່ວນຂອງການເຊື່ອມຕໍ່ທີ່ມີຢູ່ສາມາດໄດ້ຮັບ.
ອັນທີສາມ, ສາມາດໃຫ້ຕົວເລກລົບທີ່ສະແດງເຖິງຈໍານວນການເຊື່ອມຕໍ່ທີ່ຍັງເຫຼືອ
ຈົນກ່ວາ ການເຊື່ອມຕໍ່ສູງສຸດ ບັນລຸໄດ້. ຄ່າເລີ່ມຕົ້ນຂອງ --ເຕືອນ ແລະ --ວິຈານ ມີ
'90%' ແລະ '95%'. ນອກນັ້ນທ່ານຍັງສາມາດກັ່ນຕອງຖານຂໍ້ມູນໂດຍການນໍາໃຊ້ --ລວມ ແລະ --ຍົກເວັ້ນ
ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ເພື່ອເບິ່ງພຽງແຕ່ຂະບວນການທີ່ບໍ່ເຄື່ອນໄຫວ, ທ່ານສາມາດນໍາໃຊ້ໄດ້ -- ໜຽວ ການໂຕ້ຖຽງ. ໃຫ້ສັງເກດວ່າຜູ້ໃຊ້ທີ່ທ່ານ
ກໍາລັງເຊື່ອມຕໍ່ເປັນຕ້ອງເປັນ superuser ສໍາລັບການນີ້ເຮັດວຽກຢ່າງຖືກຕ້ອງ.
ຕົວຢ່າງ 1: ໃຫ້ຄໍາເຕືອນເມື່ອຈໍານວນການເຊື່ອມຕໍ່ຂອງ host quirm ຮອດ 120, ແລະ a
ທີ່ສໍາຄັນຖ້າມັນຮອດ 150.
check_postgres_backends --host=quirm --warning=120 --critical=150
ຕົວຢ່າງ 2: ໃຫ້ຄວາມສໍາຄັນເມື່ອພວກເຮົາບັນລຸ 75% ຂອງການຕັ້ງຄ່າ max_connections ຂອງພວກເຮົາໃນໂຮດ
lancre ຫຼື lancre2.
check_postgres_backends --warning='75%' --critical='75%' --host=lancre,lancre2
ຕົວຢ່າງ 3: ໃຫ້ຄຳເຕືອນເມື່ອມີຊ່ອງເຊື່ອມຕໍ່ອີກພຽງ 10 ອັນທີ່ເຫຼືອຢູ່ໃນໂຮສ
plasmid, ແລະທີ່ສໍາຄັນໃນເວລາທີ່ພວກເຮົາມີພຽງແຕ່ 5 ຊ້າຍ.
check_postgres_backends --warning=-10 --critical=-5 --host=plasmid
ຕົວຢ່າງ 4: ກວດເບິ່ງຖານຂໍ້ມູນທັງໝົດຍົກເວັ້ນທີ່ມີ "ການທົດສອບ" ໃນຊື່ຂອງເຂົາເຈົ້າ, ແຕ່ອະນຸຍາດໃຫ້ມີອັນນັ້ນ
ມີຊື່ວ່າ "pg_greatest". ເຊື່ອມຕໍ່ເປັນພອດ 5432 ໃນສອງໂຮສທໍາອິດ, ແລະເປັນພອດ 5433 ເປີດ
ອັນທີສາມ. ພວກເຮົາຕ້ອງການສະເຫມີຖິ້ມຄວາມສໍາຄັນໃນເວລາທີ່ພວກເຮົາບັນລຸ 30 ຫຼືຫຼາຍກວ່າການເຊື່ອມຕໍ່.
check_postgres_backends --dbhost=hong,kong --dbhost=fooey --dbport=5432 --dbport=5433 --warning=30 --critical=30 --exclude="~test" --include="pg_greatest,~prod "
ສໍາລັບຜົນຜະລິດ MRTG, ຈໍານວນຂອງການເຊື່ອມຕໍ່ໄດ້ຖືກລາຍງານຢູ່ໃນເສັ້ນທໍາອິດ, ແລະສີ່
line ໃຫ້ຊື່ຂອງຖານຂໍ້ມູນ, ບວກກັບ maximum_connections ໃນປັດຈຸບັນ. ຖ້າຫຼາຍກວ່າ
ຖານຂໍ້ມູນຫນຶ່ງໄດ້ຖືກສອບຖາມ, ຫນຶ່ງທີ່ມີຈໍານວນການເຊື່ອມຕໍ່ສູງສຸດແມ່ນຜົນຜະລິດ.
ອ້າປາກ
("symlink: check_postgres_bloat") ກວດເບິ່ງປະລິມານຂອງ bloat ໃນຕາຕະລາງແລະດັດສະນີ. (ທ້ອງອືດ
ໂດຍທົ່ວໄປແລ້ວແມ່ນຈໍານວນຂອງພື້ນທີ່ທີ່ບໍ່ໄດ້ນໍາໃຊ້ທີ່ຕາຍແລ້ວເອົາຂຶ້ນໃນຕາຕະລາງຫຼືດັດຊະນີ. ຊ່ອງນີ້ແມ່ນ
ປົກກະຕິແລ້ວຈະຖືກຍຶດຄືນໂດຍໃຊ້ຄໍາສັ່ງ VACUUM.) ການປະຕິບັດນີ້ຮຽກຮ້ອງໃຫ້ມີສະຖິຕິນັ້ນ
ການເກັບກໍາຂໍ້ມູນຖືກເປີດໃຊ້ໃນຖານຂໍ້ມູນເປົ້າຫມາຍ, ແລະຮຽກຮ້ອງໃຫ້ການວິເຄາະແມ່ນດໍາເນີນການ
ເລື້ອຍໆ. ໄດ້ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກສາມາດຖືກນໍາໃຊ້ເພື່ອກັ່ນຕອງອອກວ່າຕາຕະລາງໃດ
ເບິ່ງທີ່. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກສາມາດຖືກກໍານົດເປັນຂະຫນາດ, ເປີເຊັນ, ຫຼືທັງສອງ. ຖືກຕ້ອງ
ຫົວໜ່ວຍຂະໜາດແມ່ນ bytes, kilobytes, megabytes, gigabytes, terabytes, exabytes, petabytes, ແລະ
zettabytes. ທ່ານສາມາດຫຍໍ້ທັງຫມົດທີ່ມີຕົວອັກສອນທໍາອິດ. ລາຍການທີ່ບໍ່ມີຫົວຫນ່ວຍແມ່ນ
ຖືວ່າເປັນ 'ໄບຕ໌'. ຄ່າເລີ່ມຕົ້ນແມ່ນ '1 GB' ແລະ '5 GB'. ຄ່າເປັນຕົວແທນຂອງ
ຈໍານວນ "bytes ທີ່ເສຍໄປ", ຫຼືຄວາມແຕກຕ່າງລະຫວ່າງສິ່ງທີ່ຖືກນໍາໃຊ້ຕົວຈິງໂດຍຕາຕະລາງແລະ
index, ແລະສິ່ງທີ່ພວກເຮົາຄິດໄລ່ວ່າມັນຄວນຈະເປັນ.
ກະລຸນາຮັບຊາບວ່າການກະທຳນີ້ມີສອງຄ່າທີ່ຂຽນລະຫັດໄວ້ເພື່ອຫຼີກລ່ຽງສັນຍານເຕືອນທີ່ບໍ່ຖືກຕ້ອງຢູ່ໃນຂະໜາດນ້ອຍກວ່າ
ການພົວພັນ. ຕາຕະລາງຕ້ອງມີຢ່າງຫນ້ອຍ 10 ຫນ້າ, ແລະດັດສະນີຢ່າງຫນ້ອຍ 15, ກ່ອນທີ່ມັນຈະເປັນ
ພິຈາລະນາໂດຍການທົດສອບນີ້. ຖ້າທ່ານຕ້ອງການປັບຄ່າເຫຼົ່ານີ້ແທ້ໆ, ທ່ານສາມາດຊອກຫາໄດ້
ຕົວແປ $MINPAGES ແລະ $MINIPAGES ຢູ່ເທິງສຸດຂອງລາຍການຍ່ອຍ "check_bloat". ເຫຼົ່ານີ້
ຄ່າຖືກລະເລີຍຖ້າຢ່າງໃດກໍ່ຕາມ --ຍົກເວັ້ນ or --ລວມ ຖືກນໍາໃຊ້.
ມີພຽງແຕ່ 10 ອັນດັບການພົວພັນທີ່ຫົດຫູ່ທີ່ສຸດທີ່ສະແດງໃຫ້ເຫັນ. ທ່ານສາມາດປ່ຽນຕົວເລກນີ້ໄດ້ໂດຍການໃຊ້
--perflimit ທາງເລືອກໃນການກໍານົດຂອບເຂດຂອງທ່ານເອງ.
schema ທີ່ມີຊື່ວ່າ 'information_schema' ແມ່ນຖືກຍົກເວັ້ນຈາກການທົດສອບນີ້, ຍ້ອນວ່າຕາຕະລາງດຽວເທົ່ານັ້ນ.
ບັນຈຸມີຂະຫນາດນ້ອຍແລະບໍ່ປ່ຽນແປງ.
ກະລຸນາສັງເກດວ່າຄ່າທີ່ຄໍານວນໂດຍການປະຕິບັດນີ້ແມ່ນບໍ່ຊັດເຈນ, ແລະຄວນຈະຖືກນໍາໃຊ້ເປັນ
ຄໍາແນະນໍາເທົ່ານັ້ນ. ຄວາມພະຍາຍາມທີ່ຍິ່ງໃຫຍ່ໄດ້ຖືກດໍາເນີນເພື່ອຄາດຄະເນຂະຫນາດທີ່ຖືກຕ້ອງຂອງຕາຕະລາງ, ແຕ່ໃນ
ສຸດທ້າຍມັນເປັນພຽງແຕ່ການຄາດຄະເນ. ຂະຫນາດດັດຊະນີທີ່ຖືກຕ້ອງແມ່ນເປັນການຄາດເດົາຫຼາຍກ່ວາ
ຂະຫນາດຕາຕະລາງທີ່ຖືກຕ້ອງ, ແຕ່ທັງສອງຄວນໃຫ້ຄວາມຄິດທີ່ຫຍາບຄາຍຂອງສິ່ງທີ່ bloated.
ຕົວຢ່າງ 1: ເຕືອນຖ້າຕາຕະລາງໃດນຶ່ງໃນພອດ 5432 ເກີນ 100 MB ບວມ, ແລະສຳຄັນກວ່າ 200.
MB
check_postgres_bloat --port=5432 --warning='100 M' --critical='200 M'
ຕົວຢ່າງ 2: ໃຫ້ວິຈານຖ້າຕາຕະລາງ 'orders' ໃນ host 'sami' ມີຫຼາຍກວ່າ 10 megs ຂອງ bloat.
check_postgres_bloat --host=sami --include=orders --critical='10 MB'
ຕົວຢ່າງ 3: ໃຫ້ຄໍາສໍາຄັນຖ້າຕາຕະລາງ 'q4' ໃນຖານຂໍ້ມູນ 'ການຂາຍ' ແມ່ນເກີນ 50% bloated
check_postgres_bloat --db=sales --include=q4 --critical='50%'
ຕົວຢ່າງ 4: ໃຫ້ຄໍາສໍາຄັນຕາຕະລາງໃດນຶ່ງແມ່ນເກີນ 20%. ແລະ ມີຫຼາຍກວ່າ 150 MB ຂອງ bloat:
check_postgres_bloat --port=5432 --critical='20% ແລະ 150 M'
ຕົວຢ່າງ 5: ໃຫ້ຄໍາສໍາຄັນຕາຕະລາງໃດນຶ່ງແມ່ນເກີນ 40%. or ມີຫຼາຍກວ່າ 500 MB ຂອງ bloat:
check_postgres_bloat --port=5432 --warning='500 M ຫຼື 40%'
ສໍາລັບຜົນຜະລິດ MRTG, ແຖວທໍາອິດໃຫ້ຈໍານວນທີ່ສູນເສຍສູງສຸດຂອງ bytes ສໍາລັບຕາຕະລາງ,
ແລະແຖວທີສອງໃຫ້ຈໍານວນສູງສຸດຂອງ bytes ທີ່ເສຍໄປສໍາລັບດັດສະນີ. ສີ່
line ໃຫ້ຊື່ຖານຂໍ້ມູນ, ຊື່ຕາຕະລາງ, ແລະຂໍ້ມູນຊື່ດັດສະນີ. ຖ້າທ່ານຕ້ອງການ
output the bloat ratio ແທນ (ວິທີການຂະຫນາດໃຫຍ່ຫຼາຍເທົ່າຂອງການພົວພັນແມ່ນປຽບທຽບກັບວິທີການ
ຂະຫນາດໃຫຍ່ມັນຄວນຈະເປັນ), ພຽງແຕ່ຜ່ານໃນ "--mrtg=ratio".
ດ່ານ
("symlink: check_postgres_checkpoint") ກໍານົດໄລຍະເວລານັບຕັ້ງແຕ່ດ່ານສຸດທ້າຍມີ.
ໄດ້ດໍາເນີນການ. ນີ້ຕ້ອງດໍາເນີນການຢູ່ໃນເຄື່ອງແມ່ຂ່າຍດຽວກັນກັບຖານຂໍ້ມູນທີ່ກໍາລັງຖືກກວດສອບ (ເຊັ່ນ:
-h ທຸງຈະບໍ່ເຮັດວຽກ). ການກວດສອບນີ້ແມ່ນຫມາຍເຖິງການດໍາເນີນການຢູ່ໃນເຄື່ອງແມ່ຂ່າຍ "ສະແຕນບາຍທີ່ອົບອຸ່ນ" ທີ່ເປັນ
ການປະມວນຜົນໄຟລ໌ WAL ທີ່ສົ່ງມາຢ່າງຫ້າວຫັນ, ແລະມີຈຸດປະສົງເພື່ອກວດເບິ່ງວ່າການສະແຕນບາຍທີ່ອົບອຸ່ນຂອງທ່ານ
'ອົບອຸ່ນ' ແທ້ໆ. ໄດເຣັກທໍຣີຂໍ້ມູນຕ້ອງຖືກຕັ້ງ, ບໍ່ວ່າຈະເປັນຕົວແປສະພາບແວດລ້ອມ
"PGDATA", ຫຼືຖ່າຍທອດການໂຕ້ຖຽງ "--datadir". ມັນກັບຄືນຈໍານວນວິນາທີນັບຕັ້ງແຕ່
ດ່ານສຸດທ້າຍແມ່ນດໍາເນີນການ, ຕາມການກໍານົດໂດຍການແຍກການໂທຫາ "pg_controldata". ເພາະວ່າ
ນີ້, pg_controldata ທີ່ສາມາດປະຕິບັດໄດ້ຕ້ອງມີຢູ່ໃນເສັ້ນທາງປະຈຸບັນ. ອີກທາງເລືອກ,
ທ່ານສາມາດລະບຸ "PGBINDIR" ເປັນລະບົບທີ່ມັນອາໃສຢູ່ໃນ. ມັນເປັນໄປໄດ້ທີ່ຈະນໍາໃຊ້
ທາງເລືອກພິເສດ --ສົມມຸດ-ຜະລິດ or --assume-standby-mode, ຖ້າຫາກວ່າຮູບແບບທີ່ພົບເຫັນບໍ່ແມ່ນ
ຄາດວ່າຈະເປັນອັນນຶ່ງທີ່ມີຄວາມສໍາຄັນຖືກປ່ອຍອອກມາ.
ຢ່າງໜ້ອຍຕ້ອງຕັ້ງຄຳເຕືອນ ຫຼືຂໍ້ໂຕ້ແຍ້ງທີ່ວິຈານ.
ຄຳສັ່ງນີ້ຕ້ອງການວັນທີ::ໂມດູນ Parse.
ສໍາລັບ MRTG ຫຼືຜົນຜະລິດທີ່ງ່າຍດາຍ, ສົ່ງຄືນຈໍານວນວິນາທີ.
cluster_id
("symlink: check_postgres_cluster-id") ກວດເບິ່ງວ່າຕົວລະບຸລະບົບຖານຂໍ້ມູນສະໜອງໃຫ້.
ໂດຍ pg_controldata ແມ່ນຄືກັນກັບຄັ້ງສຸດທ້າຍທີ່ທ່ານກວດເບິ່ງ. ອັນນີ້ຕ້ອງແລ່ນຢູ່ໃນເຊີບເວີດຽວກັນ
ເປັນຖານຂໍ້ມູນທີ່ກໍາລັງກວດສອບ (ເຊັ່ນ: ທຸງ -h ຈະບໍ່ເຮັດວຽກ). ບໍ່ວ່າຈະເປັນ
--ເຕືອນ ຫຼື --ວິຈານ ທາງເລືອກຄວນໄດ້ຮັບການໃຫ້, ແຕ່ບໍ່ແມ່ນທັງສອງ. ມູນຄ່າຂອງແຕ່ລະຄົນແມ່ນ
ຕົວລະບຸກຸ່ມ, ຄ່າຈຳນວນເຕັມ. ທ່ານສາມາດແລ່ນດ້ວຍ "--critical=0" ພິເສດ.
ທາງເລືອກເພື່ອຊອກຫາຕົວລະບຸກຸ່ມທີ່ມີຢູ່ແລ້ວ.
ຕົວຢ່າງ 1: ຊອກຫາຕົວລະບຸເບື້ອງຕົ້ນ
check_postgres_cluster_id --critical=0 --datadir=/var//lib/postgresql/9.0/main
ຕົວຢ່າງ 2: ໃຫ້ແນ່ໃຈວ່າກຸ່ມແມ່ນຄືກັນ ແລະເຕືອນຖ້າບໍ່ແມ່ນ, ການນໍາໃຊ້ຜົນໄດ້ຮັບຈາກຂ້າງເທິງ.
check_postgres_cluster_id --critical=5633695740047915135
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ 1 ຫຼື 0 ທີ່ຊີ້ບອກເຖິງຄວາມສໍາເລັດຂອງຄວາມລົ້ມເຫຼວຂອງຕົວລະບຸເຖິງ.
ກົງກັນ. ຕົວລະບຸຈະຕ້ອງຖືກສະໜອງໃຫ້ເປັນອາກິວເມັນ "--mrtg". ແຖວທີສີ່ສະເໝີ
ໃຫ້ຕົວລະບຸປັດຈຸບັນ.
ສັນຍາ
("symlink: check_postgres_commitratio") ກວດເບິ່ງອັດຕາສ່ວນຄໍາຫມັ້ນສັນຍາຂອງຖານຂໍ້ມູນທັງຫມົດແລະ
ຈົ່ມເມື່ອພວກເຂົາຕໍ່າເກີນໄປ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການຄໍາສັ່ງນີ້ຫຼາຍກ່ວາຫນຶ່ງຄັ້ງຕໍ່
ກຸ່ມຖານຂໍ້ມູນ. ຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງດ້ວຍ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ
ພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ພວກເຂົາຍັງສາມາດຖືກກັ່ນຕອງໂດຍເຈົ້າຂອງ
ຖານຂໍ້ມູນທີ່ມີ --includeuser ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງ "USER NAME
ພາກສ່ວນການກັ່ນຕອງ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ການເຕືອນໄພແລະທາງເລືອກທີ່ສໍາຄັນຄວນຈະຖືກກໍານົດເປັນເປີເຊັນ. ບໍ່ມີ
ຄ່າເລີ່ມຕົ້ນສໍາລັບການດໍາເນີນການນີ້: ການເຕືອນໄພແລະສໍາຄັນຕ້ອງໄດ້ຮັບການລະບຸໄວ້. ມູນຄ່າການເຕືອນໄພ
ບໍ່ສາມາດໃຫຍ່ກວ່າຄ່າສຳຄັນໄດ້. ຜົນໄດ້ຮັບກັບຄືນຖານຂໍ້ມູນທັງຫມົດຈັດຮຽງຕາມ
commitratio, ຂະຫນາດນ້ອຍສຸດທໍາອິດ.
ຕົວຢ່າງ: ເຕືອນຖ້າຖານຂໍ້ມູນໃດນຶ່ງໃນ host flagg ມີຫນ້ອຍກວ່າ 90% ໃນ commitratio, ແລະສໍາຄັນ.
ຖ້າໜ້ອຍກວ່າ 80%.
check_postgres_database_commitratio --host=flagg --warning='90%' --critical='80%'
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນອັດຕາສ່ວນຂອງຖານຂໍ້ມູນທີ່ມີ commitratio ນ້ອຍສຸດ
ແຖວທໍາອິດ, ແລະຊື່ຂອງຖານຂໍ້ມູນໃນແຖວທີສີ່.
ການເຊື່ອມຕໍ່
("symlink: check_postgres_connection") ພຽງແຕ່ເຊື່ອມຕໍ່, ອອກ 'SELECT ລຸ້ນ()', ແລະ
ໃບ. ໃຊ້ເວລາບໍ່ --ເຕືອນ or --ວິຈານ ຕົວເລືອກ
ສໍາລັບຜົນຜະລິດ MRTG, ພຽງແຕ່ອອກ 1 (ການເຊື່ອມຕໍ່ທີ່ດີ) ຫຼື 0 (ການເຊື່ອມຕໍ່ທີ່ບໍ່ດີ) ໃນຄັ້ງທໍາອິດ.
ເສັ້ນ.
custom_query
("symlink: check_postgres_custom_query") ດໍາເນີນການສອບຖາມແບບກຳນົດເອງຂອງການເລືອກຂອງເຈົ້າ, ແລະວິເຄາະ
ຜົນໄດ້ຮັບ. ການສອບຖາມຕົວມັນເອງຖືກສົ່ງຜ່ານໂດຍການໂຕ້ຖຽງ "ສອບຖາມ", ແລະຄວນຈະເປັນ
ເກັບຮັກສາໄວ້ງ່າຍດາຍເທົ່າທີ່ເປັນໄປໄດ້. ຖ້າເປັນໄປໄດ້, ຫໍ່ມັນໄວ້ໃນມຸມເບິ່ງຫຼືຫນ້າທີ່ເກັບຮັກສາໄວ້
ສິ່ງທີ່ງ່າຍຕໍ່ການຈັດການ. ຄໍາຖາມຄວນສົ່ງຄືນຫນຶ່ງຫຼືສອງຖັນ. ມັນ ຈຳ ເປັນ
ຫນຶ່ງໃນຄໍລໍາມີຊື່ "ຜົນໄດ້ຮັບ" ແລະເປັນລາຍການທີ່ຈະຖືກກວດສອບຂອງທ່ານ
ການເຕືອນໄພແລະຄຸນຄ່າທີ່ສໍາຄັນ. ຖັນທີສອງແມ່ນສໍາລັບຂໍ້ມູນການປະຕິບັດແລະຊື່ໃດໆ
ສາມາດນໍາໃຊ້ໄດ້: ນີ້ຈະເປັນ 'ມູນຄ່າ' ພາຍໃນພາກຂໍ້ມູນການປະຕິບັດ.
ຕ້ອງລະບຸຢ່າງໜ້ອຍໜຶ່ງຄຳເຕືອນ ຫຼືຂໍ້ໂຕ້ແຍ້ງທີ່ວິຈານ. ສິ່ງເຫຼົ່ານີ້ແມ່ນກໍານົດຈະຂຶ້ນກັບ
ກ່ຽວກັບປະເພດຂອງການສອບຖາມທີ່ທ່ານກໍາລັງແລ່ນ. ມີສີ່ປະເພດຂອງ custom_queries ທີ່ສາມາດເປັນ
ແລ່ນ, ລະບຸໂດຍການໂຕ້ຖຽງ "valtype". ຖ້າບໍ່ມີອັນໃດຖືກລະບຸໄວ້, ຄຳສັ່ງນີ້ຈະເລີ່ມເປັນ
'ຈຳນວນເຕັມ'. ສີ່ປະເພດແມ່ນ:
integer: ເປັນການປຽບທຽບຈຳນວນເຕັມທີ່ງ່າຍດາຍ. ຖັນທຳອິດຄວນເປັນຈຳນວນເຕັມທີ່ງ່າຍດາຍ,
ແລະຄ່າເຕືອນໄພ ແລະຄ່າສຳຄັນຄວນຄືກັນ.
string: ຄໍາເຕືອນແລະສໍາຄັນແມ່ນສະຕຣິງ, ແລະຖືກກະຕຸ້ນພຽງແຕ່ຖ້າຄ່າຢູ່ໃນ
ຖັນທຳອິດກົງກັບມັນແທ້ໆ. ນີ້ແມ່ນຕົວພິມນ້ອຍໃຫຍ່ທີ່ລະອຽດອ່ອນ.
ທີ່ໃຊ້ເວລາ: ການເຕືອນໄພແລະທີ່ສໍາຄັນແມ່ນເວລາ, ແລະສາມາດມີຫົວຫນ່ວຍຂອງວິນາທີ, ນາທີ,
ຊົ່ວໂມງ, ຫຼືມື້. ແຕ່ລະຄົນອາດຈະໄດ້ຮັບການລາຍລັກອັກສອນຫຼືຫຍໍ້ເປັນພຽງແຕ່ຕົວອັກສອນທໍາອິດ. ຖ້າ
ບໍ່ມີຫນ່ວຍໃດຖືກມອບໃຫ້, ວິນາທີແມ່ນສົມມຸດ. ຖັນທຳອິດຄວນເປັນຈຳນວນເຕັມ
ເປັນຕົວແທນຂອງຈໍານວນວິນາທີທີ່ຈະກວດສອບ.
ຂະຫນາດ: ຄໍາເຕືອນແລະທີ່ສໍາຄັນແມ່ນຂະຫນາດ, ແລະສາມາດມີຫນ່ວຍງານຂອງ bytes, kilobytes,
ເມກາໄບ, ກິກະໄບ, ເທຣາໄບທ໌, ຫຼື exabytes. ແຕ່ລະຄົນອາດຈະຖືກຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດ.
ຖ້າບໍ່ມີຫົວຫນ່ວຍຖືກໃຫ້, bytes ແມ່ນສົມມຸດ. ຖັນທຳອິດຄວນເປັນຈຳນວນເຕັມ
ເປັນຕົວແທນຂອງຈໍານວນ bytes ທີ່ຈະກວດສອບ.
ໂດຍປົກກະຕິ, ການແຈ້ງເຕືອນຈະຖືກກະຕຸ້ນຖ້າຄ່າທີ່ສົ່ງຄືນມາ ຫຼາຍກວ່າ ກ່ວາ ຫຼືເທົ່າກັບ
ຄ່າທີ່ສໍາຄັນຫຼືຄໍາເຕືອນ. ຢ່າງໃດກໍຕາມ, ທາງເລືອກຂອງ -- ປີ້ນ ຈະກະຕຸ້ນເຕືອນຖ້າຫາກວ່າ
ມູນຄ່າກັບຄືນແມ່ນ ຕ່ໍາ ກ່ວາ ຫຼືເທົ່າກັບມູນຄ່າທີ່ສໍາຄັນຫຼືຄໍາເຕືອນ.
ຕົວຢ່າງ 1: ເຕືອນຖ້າຄວາມສຳພັນໃດນຶ່ງທີ່ເກີນ 100 ໜ້າໃສ່ຊື່ "rad", ໃສ່ຈຳນວນໜ້າ.
ພາຍໃນພາກສ່ວນຂໍ້ມູນການປະຕິບັດ.
check_postgres_custom_query --valtype=string -w "rad" --query=
"SELECT relname AS ຜົນ, relpages AS pages FROM pg_class WHERE relpages > 100"
ຕົວຢ່າງ 2: ໃຫ້ຄຳວິຈານຖ້າຟັງຊັນ "foobar" ຕອບຕົວເລກເກີນ 5MB:
check_postgres_custom_query --critical='5MB'--valtype=size --query="SELECT foobar() AS ຜົນໄດ້ຮັບ"
ຕົວຢ່າງ 2: ເຕືອນຖ້າຟັງຊັນ "snazzo" ຕອບໜ້ອຍກວ່າ 42:
check_postgres_custom_query --critical=42 --query="SELECT snazzo() AS results" --reverse
ຖ້າຫາກວ່າທ່ານມາກັບ custom_query ທີ່ເປັນປະໂຫຍດ, ພິຈາລະນາການສົ່ງໃນ patch ກັບໂຄງການນີ້ເພື່ອ
ເຮັດໃຫ້ມັນເຂົ້າໄປໃນການປະຕິບັດມາດຕະຖານທີ່ຄົນອື່ນສາມາດນໍາໃຊ້ໄດ້.
ການກະທຳນີ້ຍັງບໍ່ຮອງຮັບ MRTG ຫຼືຜົນຜະລິດທີ່ງ່າຍດາຍເທື່ອ.
database_size
("symlink: check_postgres_database_size") ກວດເບິ່ງຂະຫນາດຂອງຖານຂໍ້ມູນທັງຫມົດແລະຈົ່ມ.
ເມື່ອພວກເຂົາໃຫຍ່ເກີນໄປ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການຄໍາສັ່ງນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງຕໍ່ຖານຂໍ້ມູນ
ກຸ່ມ. ຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງດ້ວຍ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ
ພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ພວກເຂົາຍັງສາມາດຖືກກັ່ນຕອງໂດຍເຈົ້າຂອງ
ຖານຂໍ້ມູນທີ່ມີ --includeuser ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງ "ການກັ່ນຕອງຊື່ຜູ້ໃຊ້"
ສ່ວນ ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມ.
ການເຕືອນໄພແລະທາງເລືອກທີ່ສໍາຄັນສາມາດຖືກກໍານົດເປັນ bytes, kilobytes, megabytes,
gigabytes, terabytes, ຫຼື exabytes. ແຕ່ລະຄົນອາດຈະຖືກຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດເຊັ່ນດຽວກັນ.
ຖ້າບໍ່ມີຫົວໜ່ວຍໃຫ້, ຫົວໜ່ວຍຈະສົມມຸດວ່າເປັນໄບຕ໌. ບໍ່ມີຄ່າເລີ່ມຕົ້ນສໍາລັບການນີ້
ການປະຕິບັດ: ການເຕືອນໄພແລະຄວາມສໍາຄັນຕ້ອງໄດ້ຮັບການລະບຸ. ຄ່າເຕືອນບໍ່ສາມາດໃຫຍ່ກວ່າໄດ້
ຫຼາຍກ່ວາມູນຄ່າທີ່ສໍາຄັນ. ຜົນຜະລິດຈະສົ່ງຄືນຖານຂໍ້ມູນທັງໝົດຈັດຮຽງຕາມຂະໜາດໃຫຍ່ສຸດກ່ອນ,
ສະແດງໃຫ້ເຫັນທັງສອງ bytes ດິບແລະສະບັບ "ງາມ" ຂອງຂະຫນາດ.
ຕົວຢ່າງ 1: ເຕືອນຖ້າຖານຂໍ້ມູນໃດນຶ່ງໃນ host flagg ມີຂະໜາດເກີນ 1 TB, ແລະສໍາຄັນຖ້າເກີນ
1.1 ວັນນະໂຣກ.
check_postgres_database_size --host=flagg --warning='1 TB' --critical='1.1 t'
ຕົວຢ່າງ 2: ໃຫ້ວິຈານຖ້າຖານຂໍ້ມູນ template1 ໃນພອດ 5432 ເກີນ 10 MB.
check_postgres_database_size --port=5432 --include=template1 --warning='10MB' --critical='10MB'
ຕົວຢ່າງ 3: ໃຫ້ຄໍາເຕືອນຖ້າຖານຂໍ້ມູນໃດນຶ່ງໃນ host 'tardis' ເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ 'tom' ແມ່ນແລ້ວ.
5 GB
check_postgres_database_size --host=tardis --includeuser=tom --warning='5 GB' --critical='10 GB'
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຂະຫນາດໃນ bytes ຂອງຖານຂໍ້ມູນທີ່ໃຫຍ່ທີ່ສຸດໃນແຖວທໍາອິດ, ແລະ
ຊື່ຂອງຖານຂໍ້ມູນຢູ່ໃນແຖວທີສີ່.
dbstats
("symlink: check_postgres_dbstats") ລາຍງານຂໍ້ມູນຈາກມຸມມອງ pg_stat_database,
ແລະໃຫ້ຜົນຜະລິດໃນລັກສະນະທີ່ເປັນມິດກັບ Cacti. ບໍ່ມີຜົນຜະລິດອື່ນໆແມ່ນສະຫນັບສະຫນູນ, ຍ້ອນວ່າຜົນຜະລິດແມ່ນ
ຂໍ້ມູນຂ່າວສານແລະບໍ່ປ່ອຍຕົວມັນເອງກັບການແຈ້ງເຕືອນ, ເຊັ່ນ: ໃຊ້ກັບ Nagios. ຖ້າບໍ່ມີທາງເລືອກ
ໄດ້ຖືກມອບໃຫ້, ຖານຂໍ້ມູນທັງຫມົດຖືກສົ່ງຄືນ, ຫນຶ່ງຕໍ່ແຖວ. ທ່ານສາມາດປະກອບມີຖານຂໍ້ມູນສະເພາະ
ໂດຍການນໍາໃຊ້ທາງເລືອກ "--include", ຫຼືທ່ານສາມາດນໍາໃຊ້ທາງເລືອກ "--dbname".
ສິບເອັດລາຍການຖືກສົ່ງຄືນໃນແຕ່ລະແຖວ, ໃນຊື່ຮູບແບບ: ຄ່າ, ແຍກດ້ວຍອັນດຽວ
ຊ່ອງ. ລາຍການແມ່ນ:
ຫລັງ
ຈຳນວນຂອງ backends ທີ່ໃຊ້ໃນຂະນະນີ້ສຳລັບຖານຂໍ້ມູນນີ້.
ສັນຍາ
ຈໍານວນຄໍາຫມັ້ນສັນຍາທັງຫມົດສໍາລັບຖານຂໍ້ມູນນີ້ນັບຕັ້ງແຕ່ມັນຖືກສ້າງຂື້ນຫຼືຕັ້ງໃຫມ່.
ຍ້ອນຫຼັງ
ຈໍານວນທັງຫມົດຂອງ rollbacks ສໍາລັບຖານຂໍ້ມູນນີ້ນັບຕັ້ງແຕ່ມັນໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນຫຼືປັບໃຫມ່.
ອ່ານ
ຈໍານວນທັງຫມົດຂອງຕັນດິດອ່ານ.
ມົນຕີຈໍານວນທັງຫມົດຂອງ hits buffer.
ret ຈຳນວນແຖວທັງໝົດທີ່ສົ່ງຄືນ.
ດຶງ
ຈຳນວນແຖວທັງໝົດທີ່ດຶງມາ.
ins ຈໍານວນແຖວທັງໝົດທີ່ໃສ່.
upd ຈຳນວນແຖວທັງໝົດທີ່ອັບເດດແລ້ວ.
del ຈໍານວນແຖວທັງໝົດທີ່ຖືກລຶບ.
dbname
ຊື່ຂອງຖານຂໍ້ມູນ.
ໃຫ້ສັງເກດວ່າ ret, fetch, ins, upd, ແລະລາຍການ del ຈະເປັນ 0 ສະເໝີ ຖ້າ Postgres ເປັນເວີຊັນ 8.2.
ຫຼືຕ່ໍາກວ່າ, ເນື່ອງຈາກວ່າສະຖິຕິເຫຼົ່ານັ້ນບໍ່ມີຢູ່ໃນສະບັບເຫຼົ່ານັ້ນ.
ຖ້າການໂຕ້ຖຽງ dbname ຖືກມອບໃຫ້, ເຈັດລາຍການເພີ່ມເຕີມຈະຖືກສົ່ງຄືນ:
idxscan
ຈໍານວນທັງຫມົດຂອງການສະແກນດັດສະນີຜູ້ໃຊ້.
idxtupread
ຈໍານວນທັງຫມົດຂອງລາຍການດັດສະນີຜູ້ໃຊ້ກັບຄືນມາ.
idxtupfetch
ຈຳນວນແຖວທັງໝົດທີ່ດຶງມາໂດຍການສະແກນດັດຊະນີຜູ້ໃຊ້ແບບງ່າຍໆ.
idxblksread
ຈໍານວນທັງຫມົດຂອງ disk blocks ອ່ານສໍາລັບດັດຊະນີຜູ້ໃຊ້ທັງຫມົດ.
idxblkshit
ຈໍານວນທັງຫມົດຂອງ hits buffer ສໍາລັບດັດຊະນີຜູ້ໃຊ້ທັງຫມົດ.
seqscan
ຈຳນວນທັງໝົດຂອງການສະແກນຕາມລຳດັບຕໍ່ກັບຕາຕະລາງຜູ້ໃຊ້ທັງໝົດ.
seqtupread
ຈໍານວນທັງຫມົດຂອງ tuples ກັບຄືນມາຈາກຕາຕະລາງຜູ້ໃຊ້ທັງຫມົດ.
ຕົວຢ່າງ 1: ຈັບສະຖິຕິສໍາລັບຖານຂໍ້ມູນທີ່ມີຊື່ວ່າ "ຜະລິດຕະພັນ" ໃນ host "willow":
check_postgres_dbstats --dbhost willow --dbname ຜະລິດຕະພັນ
ຜົນຜະລິດທີ່ໄດ້ຮັບກັບຄືນມາຈະເປັນດັ່ງນີ້ (ທັງຫມົດໃນເສັ້ນຫນຶ່ງ, ບໍ່ໄດ້ຫໍ່):
backends:82 commits:58374408 rollbacks:1651 ອ່ານ:268435543 hit:2920381758 idxscan:310931294 idxtupread:2777040927
idxtupfetch:1840241349 idxblksread:62860110 idxblkshit:1107812216 seqscan:5085305 seqtupread:5370500520
ret:0 fetch:0 ins:0 upd:0 del:0 dbname:willow
disabled_triggers
("symlink: check_postgres_disabled_triggers") ກວດສອບຈໍານວນຂອງ triggers ທີ່ພິການ
ພາຍໃນຖານຂໍ້ມູນ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນຈໍານວນຂອງຕົວກະຕຸ້ນດັ່ງກ່າວ
ພົບເຫັນ, ແລະທັງສອງຄ່າເລີ່ມຕົ້ນເປັນ "1", ໃນການນໍາໃຊ້ປົກກະຕິທີ່ມີ triggers ປິດການເປັນອັນຕະລາຍ
ເຫດການ. ຖ້າຖານຂໍ້ມູນທີ່ຖືກກວດສອບແມ່ນ 8.3 ຫຼືສູງກວ່າ, ການກວດສອບແມ່ນສໍາລັບຈໍານວນຂອງ
ຕົວກະຕຸ້ນທີ່ຢູ່ໃນສະຖານະ 'ພິການ' (ກົງກັນຂ້າມກັບ 'ສະເຫມີ' ຫຼື 'replica'). ໄດ້
output ຈະສະແດງຊື່ຂອງຕາຕະລາງແລະຊື່ຂອງ trigger ສໍາລັບແຕ່ລະຄົນພິການ
ຜົນກະທົບຕໍ່.
ຕົວຢ່າງ 1: ໃຫ້ແນ່ໃຈວ່າບໍ່ມີຕົວກະຕຸ້ນທີ່ພິການ
check_postgres_disabled_triggers
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຈໍານວນຂອງ triggers ທີ່ພິການຢູ່ໃນແຖວທໍາອິດ.
disk_space
("symlink: check_postgres_disk_space") ກວດເບິ່ງພື້ນທີ່ດິສກ໌ທີ່ມີຢູ່ທີ່ໃຊ້ໂດຍ
Postgres. ການກະທໍານີ້ຮຽກຮ້ອງໃຫ້ທ່ານມີການປະຕິບັດ "./bin/df"ມີໃຫ້ລາຍງານ
ໃນຂະຫນາດແຜ່ນ, ແລະມັນຍັງຈໍາເປັນຕ້ອງໄດ້ຮັບການດໍາເນີນການເປັນ superuser, ສະນັ້ນມັນສາມາດກວດສອບໄດ້
data_directory ຕັ້ງຢູ່ໃນ Postgres. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນໃຫ້
ໃນທັງສອງຂະຫນາດຫຼືອັດຕາສ່ວນຫຼືທັງສອງ. ຖ້າໃຊ້ຂະຫນາດ, ປະເພດຫນ່ວຍມາດຕະຖານແມ່ນ
ອະນຸຍາດ: bytes, kilobytes, gigabytes, megabytes, gigabytes, terabytes, ຫຼື exabytes. ແຕ່ລະ
ອາດຈະຖືກຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດເທົ່ານັ້ນ; ບໍ່ມີຫົວໜ່ວຍໃດສະແດງເຖິງ 'ໄບຕ໌'. ໄດ້
ຄ່າເລີ່ມຕົ້ນແມ່ນ '90%' ແລະ '95%'.
ຄໍາສັ່ງນີ້ກວດເບິ່ງສິ່ງຕໍ່ໄປນີ້ເພື່ອກໍານົດທັງຫມົດຂອງແຜ່ນທາງດ້ານຮ່າງກາຍທີ່ແຕກຕ່າງກັນ
ຖືກນໍາໃຊ້ໂດຍ Postgres.
data_directory - ແຜ່ນທີ່ໄດເລກະທໍລີຂໍ້ມູນຫຼັກເປີດຢູ່.
log ລະບົບ - ແຜ່ນທີ່ໄຟລ໌ບັນທຶກແມ່ນກ່ຽວກັບການ.
WAL ເອກະສານ ລະບົບ - ແຜ່ນທີ່ບັນທຶກການຂຽນລ່ວງຫນ້າແມ່ນກ່ຽວກັບການ (ເຊັ່ນ symlinked pg_xlog)
ພື້ນທີ່ໂຕະ - ແຕ່ລະ tablespace ທີ່ຢູ່ໃນແຜ່ນແຍກຕ່າງຫາກ.
ຜົນໄດ້ຮັບສະແດງໃຫ້ເຫັນເຖິງຂະຫນາດທັງຫມົດທີ່ໃຊ້ແລະມີຢູ່ໃນແຕ່ລະແຜ່ນ, ເຊັ່ນດຽວກັນກັບ
ເປີເຊັນ, ຕາມລໍາດັບໂດຍອັດຕາສ່ວນສູງສຸດຫາຕ່ໍາສຸດທີ່ໃຊ້. ແຕ່ລະລາຍການຂ້າງເທິງແຜນທີ່ເປັນໄຟລ໌
ລະບົບ: ເຫຼົ່ານີ້ສາມາດຖືກລວມຫຼືຍົກເວັ້ນ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
ລາຍລະອຽດ.
ຕົວຢ່າງ 1: ໃຫ້ແນ່ໃຈວ່າບໍ່ມີລະບົບໄຟລ໌ເກີນ 90% ສໍາລັບຖານຂໍ້ມູນໃນພອດ 5432.
check_postgres_disk_space --port=5432 --warning='90%' --critical='90%'
ຕົວຢ່າງ 2: ກວດເບິ່ງວ່າລະບົບໄຟລ໌ທັງໝົດເລີ່ມຕົ້ນດ້ວຍ /dev/sda ມີຂະໜາດນ້ອຍກວ່າ 10 GB ແລະ
11 GB (ຄໍາເຕືອນແລະສໍາຄັນ)
check_postgres_disk_space --port=5432 --warning='10 GB' --critical='11 GB' --include="~^/dev/sda"
ຕົວຢ່າງ 4: ໃຫ້ແນ່ໃຈວ່າບໍ່ມີລະບົບໄຟລ໌ທັງສອງເກີນ 50% ແລະ ມີຫຼາຍກວ່າ 15 GB
check_postgres_disk_space --critical='50% ແລະ 15 GB'
ຕົວຢ່າງ 5: ອອກຄໍາເຕືອນຖ້າລະບົບໄຟລ໌ໃດນຶ່ງເຕັມເກີນ 70%. or ມີຫຼາຍກ່ວາ 1T
check_postgres_disk_space --warning='1T ຫຼື 75'
ສໍາລັບຜົນຜະລິດ MRTG, ຕອບຂະຫນາດໃນ bytes ຂອງລະບົບໄຟລ໌ໃນແຖວທໍາອິດ, ແລະ
ຊື່ຂອງລະບົບໄຟລ໌ໃນແຖວທີສີ່.
fsm_pages
("symlink: check_postgres_fsm_pages") ກວດເບິ່ງວ່າກຸ່ມຢູ່ໃກ້ກັບ Postgres ຫຼາຍປານໃດ
max_fsm_pages ການຕັ້ງຄ່າ. ການປະຕິບັດນີ້ຈະເຮັດວຽກພຽງແຕ່ສໍາລັບຖານຂໍ້ມູນ 8.2 ຫຼືສູງກວ່າ, ແລະມັນ
ຕ້ອງການໂມດູນການປະກອບສ່ວນ pg_freespacemap ໄດ້ຮັບການຕິດຕັ້ງ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ
ທາງເລືອກຄວນສະແດງອອກເປັນເປີເຊັນ. ຈໍານວນຂອງຫນ້າທີ່ນໍາໃຊ້ໃນ free-space-map
ຖືກກໍານົດໂດຍການເບິ່ງຢູ່ໃນມຸມເບິ່ງ pg_freespacemap_relations, ແລະແລ່ນສູດ
ອີງໃສ່ສູດທີ່ໃຊ້ສໍາລັບການອອກຊ່ອງຫວ່າງຫນ້າໃນແຜນທີ່ຊ່ອງຫວ່າງໃນ verbose ສູນຍາກາດ
ຄໍາສັ່ງ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 85% ສໍາລັບການເຕືອນໄພແລະ 95% ສໍາລັບການສໍາຄັນ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນເມື່ອກຸ່ມຂອງພວກເຮົາໄດ້ໃຊ້ພື້ນທີ່ຫວ່າງເຖິງ 76% ຂອງໜ້າເວັບ,
ກັບ pg_freespacemap ຕິດຕັ້ງຢູ່ໃນຖານຂໍ້ມູນ robert
check_postgres_fsm_pages --dbname=robert --warning="76%"
ໃນຂະນະທີ່ທ່ານຈໍາເປັນຕ້ອງຜ່ານໃນຊື່ຂອງຖານຂໍ້ມູນທີ່ pg_freespacemap ຖືກຕິດຕັ້ງ, ທ່ານ
ພຽງແຕ່ຕ້ອງການດໍາເນີນການກວດສອບນີ້ຫນຶ່ງຄັ້ງຕໍ່ກຸ່ມ. ນອກຈາກນັ້ນ, ການກວດສອບຂໍ້ມູນນີ້ກໍ່ຕ້ອງການ
ໄດ້ຮັບ locks ພິເສດໃນແຜນທີ່ພື້ນທີ່ຫວ່າງ, ສະນັ້ນມັນແນະນໍາໃຫ້ທ່ານບໍ່ດໍາເນີນການນີ້
ກວດສອບທີ່ມີໄລຍະສັ້ນ.
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນເປີເຊັນຂອງແຜນທີ່ພື້ນທີ່ຫວ່າງຢູ່ໃນແຖວທໍາອິດ, ແລະຕົວເລກ
ຂອງຫນ້າທີ່ໃຊ້ໃນປັດຈຸບັນຢູ່ໃນແຖວທີສອງ.
fsm_relations
("symlink: check_postgres_fsm_relations") ກວດເບິ່ງວ່າກຸ່ມຢູ່ໃກ້ກັບ Postgres
max_fsm_relations ການຕັ້ງຄ່າ. ການປະຕິບັດນີ້ຈະເຮັດວຽກພຽງແຕ່ສໍາລັບຖານຂໍ້ມູນ 8.2 ຫຼືສູງກວ່າ, ແລະ
ມັນຮຽກຮ້ອງໃຫ້ມີໂມດູນການປະກອບສ່ວນ pg_freespacemap ໄດ້ຮັບການຕິດຕັ້ງ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ
ທາງເລືອກຄວນສະແດງອອກເປັນເປີເຊັນ. ຈໍານວນການພົວພັນທີ່ນໍາໃຊ້ໃນການຟຣີ
space-map ຖືກກໍານົດໂດຍການເບິ່ງຢູ່ໃນມຸມເບິ່ງ pg_freespacemap_relations. ຄ່າເລີ່ມຕົ້ນ
ຄຸນຄ່າແມ່ນ 85% ສໍາລັບການເຕືອນໄພແລະ 95% ສໍາລັບການສໍາຄັນ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນເມື່ອກຸ່ມຂອງພວກເຮົາໄດ້ນຳໃຊ້ເຖິງ 80% ຂອງການພົວພັນພື້ນທີ່ຫວ່າງແລ້ວ,
ດ້ວຍ pg_freespacemap ທີ່ຕິດຕັ້ງຢູ່ໃນຖານຂໍ້ມູນ dylan
check_postgres_fsm_relations --dbname=dylan --warning="75%"
ໃນຂະນະທີ່ທ່ານຈໍາເປັນຕ້ອງຜ່ານໃນຊື່ຂອງຖານຂໍ້ມູນທີ່ pg_freespacemap ຖືກຕິດຕັ້ງ, ທ່ານ
ພຽງແຕ່ຕ້ອງການດໍາເນີນການກວດສອບນີ້ຫນຶ່ງຄັ້ງຕໍ່ກຸ່ມ. ນອກຈາກນັ້ນ, ການກວດສອບຂໍ້ມູນນີ້ກໍ່ຕ້ອງການ
ໄດ້ຮັບ locks ພິເສດໃນແຜນທີ່ພື້ນທີ່ຫວ່າງ, ສະນັ້ນມັນແນະນໍາໃຫ້ທ່ານບໍ່ດໍາເນີນການນີ້
ກວດສອບທີ່ມີໄລຍະສັ້ນ.
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນເປີເຊັນຂອງ free-space-map ໃນແຖວທໍາອິດ, ຈໍານວນຂອງ
ການພົວພັນທີ່ນໍາໃຊ້ໃນປັດຈຸບັນໃນເສັ້ນທີ່ສອງ.
ອັດຕານິຍົມ
("symlink: check_postgres_hitratio") ກວດເບິ່ງອັດຕາສ່ວນ hit ຂອງຖານຂໍ້ມູນທັງຫມົດແລະຈົ່ມ.
ໃນເວລາທີ່ພວກເຂົາຕ່ໍາເກີນໄປ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການຄໍາສັ່ງນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງຕໍ່ຖານຂໍ້ມູນ
ກຸ່ມ. ຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງດ້ວຍ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ
ພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ພວກເຂົາຍັງສາມາດຖືກກັ່ນຕອງໂດຍເຈົ້າຂອງ
ຖານຂໍ້ມູນທີ່ມີ --includeuser ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງ "ການກັ່ນຕອງຊື່ຜູ້ໃຊ້"
ສ່ວນ ສຳ ລັບລາຍລະອຽດເພີ່ມເຕີມ.
ການເຕືອນໄພແລະທາງເລືອກທີ່ສໍາຄັນຄວນຈະຖືກກໍານົດເປັນເປີເຊັນ. ບໍ່ມີ
ຄ່າເລີ່ມຕົ້ນສໍາລັບການດໍາເນີນການນີ້: ການເຕືອນໄພແລະສໍາຄັນຕ້ອງໄດ້ຮັບການລະບຸໄວ້. ມູນຄ່າການເຕືອນໄພ
ບໍ່ສາມາດໃຫຍ່ກວ່າຄ່າສຳຄັນໄດ້. ຜົນໄດ້ຮັບກັບຄືນຖານຂໍ້ມູນທັງຫມົດຈັດຮຽງຕາມ
hitratio, ນ້ອຍທີ່ສຸດທໍາອິດ.
ຕົວຢ່າງ: ເຕືອນຖ້າຖານຂໍ້ມູນໃດນຶ່ງໃນ host flagg ມີຫນ້ອຍກວ່າ 90% ໃນ hitratio, ແລະສໍາຄັນຖ້າ
ຫນ້ອຍກວ່າ 80%.
check_postgres_hitratio --host=flagg --warning='90%' --critical='80%'
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນອັດຕາສ່ວນຂອງຖານຂໍ້ມູນທີ່ມີ hitratio ນ້ອຍສຸດໃນ
ແຖວທໍາອິດ, ແລະຊື່ຂອງຖານຂໍ້ມູນຢູ່ໃນແຖວທີສີ່.
hot_standby_delay
("symlink: check_hot_standby_delay") ກວດສອບການທົດລອງການສະຕຣີມຊ້າໂດຍການຄິດໄລ່.
delta ລະຫວ່າງຕໍາແຫນ່ງ xlog ໃນປັດຈຸບັນຂອງເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບແລະສະຖານທີ່ replay ຂອງ a
ສໍາລອງເຊື່ອມຕໍ່ກັບມັນ. ເຊີບເວີ slave ຕ້ອງຢູ່ໃນໂໝດ hot_standby (ເຊັ່ນ: ອ່ານເທົ່ານັ້ນ),
ດັ່ງນັ້ນ, ສະບັບຕໍາ່ສຸດທີ່ທີ່ຈະນໍາໃຊ້ການປະຕິບັດນີ້ແມ່ນ Postgres 9.0. ໄດ້ --ເຕືອນ ແລະ
--ວິຈານ ທາງເລືອກແມ່ນ delta ລະຫວ່າງສະຖານທີ່ xlog. ເນື່ອງຈາກຄ່າເຫຼົ່ານີ້ແມ່ນ byte
ຊົດເຊີຍໃນ WAL ພວກເຂົາຄວນຈະກົງກັບປະລິມານການເຮັດທຸລະກໍາທີ່ຄາດໄວ້ຂອງຄໍາຮ້ອງສະຫມັກຂອງທ່ານ
ເພື່ອປ້ອງກັນທາງບວກທີ່ບໍ່ຖືກຕ້ອງຫຼືທາງລົບ.
ຕົວເລືອກທໍາອິດ "--dbname", "--host", ແລະ "--port", ແລະອື່ນໆແມ່ນພິຈາລະນາຕົ້ນສະບັບ; ໄດ້
ອັນທີສອງເປັນຂອງທາດ.
ຄ່າໄບຕ໌ຄວນອີງໃສ່ປະລິມານການເຮັດທຸລະກຳທີ່ຈຳເປັນເພື່ອໃຫ້ມີການຖ່າຍທອດ
replication disconnect ຈາກຕົ້ນສະບັບເນື່ອງຈາກວ່າ lag ຫຼາຍເກີນໄປ, ກໍານົດໂດຍ Postgres ໄດ້
ຕົວແປການຕັ້ງຄ່າ wal_keep_segments. ສໍາລັບຫົວໜ່ວຍເວລາ, ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນ 'ວິນາທີ',
'ນາທີ', 'ຊົ່ວໂມງ', ຫຼື 'ມື້'. ແຕ່ລະຄົນອາດຈະໄດ້ຮັບການລາຍລັກອັກສອນຫຼືຫຍໍ້ເປັນພຽງແຕ່
ຈົດຫມາຍສະບັບທໍາອິດ. ເມື່ອລະບຸທັງສອງ, ໃນຮູບແບບ 'ໄບ ແລະ ທີ່ໃຊ້ເວລາ', ທັງສອງເງື່ອນໄຂຕ້ອງເປັນ
ເປັນຄວາມຈິງສໍາລັບເກນທີ່ຈະບັນລຸໄດ້.
ທ່ານຕ້ອງໃຫ້ຂໍ້ມູນກ່ຽວກັບວິທີເຂົ້າຫາຖານຂໍ້ມູນໂດຍການໃຫ້ເຄື່ອງໝາຍຈຸດທີ່ແຍກອອກ
ລາຍຊື່ໄປຫາ --dbhost ແລະ --dbport ຕົວກໍານົດການ, ເຊັ່ນ "--dbport=5432,5543". ຖ້າບໍ່ໃຫ້,
ການປະຕິບັດລົ້ມເຫລວ.
ຕົວຢ່າງ 1: ເຕືອນຖານຂໍ້ມູນທີ່ມີການຈໍາລອງທ້ອງຖິ່ນຢູ່ໃນພອດ 5433 ແມ່ນຢູ່ເບື້ອງຫຼັງການຫຼິ້ນ xlog ໃດໆ.
ທີ່ທັງຫມົດ
check_hot_standby_delay --dbport=5432,5433 --warning='1'
ຕົວຢ່າງ 2: ໃຫ້ການວິພາກວິຈານ ຖ້າທຸລະກຳຫຼ້າສຸດ replica1 ໄດ້ຮັບແມ່ນຫຼາຍກວ່າ 10
ນາທີກ່ອນ
check_hot_standby_delay --dbhost=master,replica1 --critical='10 ນາທີ'
ຕົວຢ່າງ 3: ອະນຸຍາດໃຫ້ replica1 ເປັນ 1 WAL segment ຢູ່ເບື້ອງຫຼັງ, ຖ້າແມ່ແບບເຫັນໃນທັນທີ.
ກິດຈະກໍາຫຼາຍກ່ວາການເຊື່ອມຕໍ່ replication streaming ສາມາດຈັດການ, ຫຼື 10 ນາທີຫລັງ,
ຖ້າແມ່ບົດເຫັນກິດຈະກໍາຫນ້ອຍຫຼາຍແລະບໍ່ໄດ້ດໍາເນີນການທຸລະກໍາໃດໆ, ແຕ່ບໍ່ແມ່ນ
ທັງສອງ, ເຊິ່ງຈະຊີ້ບອກເຖິງບັນຫາທີ່ຍືນຍົງກັບການເຊື່ອມຕໍ່ການຈໍາລອງ.
check_hot_standby_delay --dbhost=master,replica1 --warning='1048576 ແລະ 2 min' --critical='16777216 ແລະ 10 min'
index_size
table_size
relation_size
(symlinks: "check_postgres_index_size", "check_postgres_table_size", ແລະ
"check_postgres_relation_size") ການປະຕິບັດ table_size ແລະ index_size ແມ່ນງ່າຍດາຍ
ການປ່ຽນແປງຂອງ relation_size ການປະຕິບັດ, ເຊິ່ງກວດສອບຄວາມສໍາພັນທີ່ເພີ່ມຂຶ້ນເຊັ່ນກັນ
ໃຫຍ່. ການພົວພັນ (ໃນຄໍາສັບຕ່າງໆອື່ນໆ, ຕາຕະລາງແລະດັດສະນີ) ສາມາດຖືກກັ່ນຕອງດ້ວຍ --ລວມ
ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ການພົວພັນສາມາດ
ຍັງຖືກກັ່ນຕອງໂດຍຜູ້ໃຊ້ທີ່ເປັນເຈົ້າຂອງພວກມັນ, ໂດຍໃຊ້ --includeuser ແລະ --excludeuser
ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງຊື່ຜູ້ໃຊ້" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ຄຸນຄ່າສໍາລັບການ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນຂະຫນາດໄຟລ໌, ແລະອາດຈະມີຫົວຫນ່ວຍຂອງ
bytes, kilobytes, megabytes, gigabytes, terabytes, ຫຼື exabytes. ແຕ່ລະຄົນສາມາດຫຍໍ້ໄດ້
ກັບຈົດຫມາຍສະບັບທໍາອິດ. ຖ້າບໍ່ມີຫົວຫນ່ວຍຖືກໃຫ້, bytes ແມ່ນສົມມຸດ. ບໍ່ມີຄ່າເລີ່ມຕົ້ນ
ຄ່າ: ທັງຄໍາເຕືອນແລະທາງເລືອກທີ່ສໍາຄັນຕ້ອງໄດ້ຮັບການໃຫ້. ຂໍ້ຄວາມກັບຄືນສະແດງໃຫ້ເຫັນເຖິງ
ຂະຫນາດຂອງການພົວພັນທີ່ໃຫຍ່ທີ່ສຸດທີ່ພົບເຫັນ.
ຖ້າ --showperf ທາງເລືອກແມ່ນເປີດໃຊ້ງານ, ທັງຫມົດ ຂອງຄວາມສໍາພັນກັບຂະຫນາດຂອງເຂົາເຈົ້າຈະໄດ້ຮັບການໃຫ້.
ເພື່ອປ້ອງກັນການນີ້, ມັນແນະນໍາໃຫ້ທ່ານຕັ້ງຄ່າ --perflimit ທາງເລືອກ, ເຊິ່ງຈະເຮັດໃຫ້ເກີດ
ຄໍາຖາມເພື່ອເຮັດ "ຄໍາສັ່ງໂດຍຂະຫນາດ DESC LIMIT (perflimit)".
ຕົວຢ່າງ 1: ໃຫ້ຄໍາສໍາຄັນຖ້າຕາຕະລາງໃດມີຂະຫນາດໃຫຍ່ກວ່າ 600MB ໃນ host burrick.
check_postgres_table_size --critical='600 MB' --warning='600 MB' --host=burrick
ຕົວຢ່າງ 2: ເຕືອນຖ້າຜະລິດຕະພັນໃນຕາຕະລາງມີຂະໜາດເກີນ 4 GB, ແລະໃຫ້ຄວາມສຳຄັນຢູ່ທີ່ 4.5 GB.
check_postgres_table_size --host=burrick --warning='4 GB' --critical='4.5 GB' --include=ຜະລິດຕະພັນ
ຕົວຢ່າງ 3: ເຕືອນຖ້າດັດຊະນີໃດໆທີ່ບໍ່ໄດ້ເປັນເຈົ້າຂອງໂດຍ postgres ໄປເກີນ 500 MB.
check_postgres_index_size --port=5432 --excludeuser=postgres -w 500MB -c 600MB
ສໍາລັບຜົນຜະລິດ MRTG, ຕອບຂະຫນາດໃນ bytes ຂອງການພົວພັນທີ່ໃຫຍ່ທີ່ສຸດ, ແລະຊື່ຂອງ
ຖານຂໍ້ມູນແລະຄວາມສໍາພັນເປັນແຖວທີສີ່.
last_analyze
Last_vacuum
last_autoanalyze
last_autovacuum
(symlinks: "check_postgres_last_analyze", "check_postgres_last_vacuum",
"check_postgres_last_autoanalyze", ແລະ "check_postgres_last_autovacuum") ກວດເບິ່ງໄລຍະເວລາ
ມັນແມ່ນນັບຕັ້ງແຕ່ສູນຍາກາດ (ຫຼືການວິເຄາະ) ຖືກດໍາເນີນການຄັ້ງສຸດທ້າຍໃນແຕ່ລະຕາຕະລາງໃນຫນຶ່ງຫຼືຫຼາຍຖານຂໍ້ມູນ.
ການນໍາໃຊ້ການປະຕິບັດເຫຼົ່ານີ້ຮຽກຮ້ອງໃຫ້ຖານຂໍ້ມູນເປົ້າຫມາຍແມ່ນຮຸ່ນ 8.3 ຫຼືຫຼາຍກວ່ານັ້ນ, ຫຼືວ່າ
ຮຸ່ນແມ່ນ 8.2 ແລະຕົວແປການຕັ້ງຄ່າ stats_row_level ໄດ້ຖືກເປີດໃຊ້. ຕາຕະລາງ
ສາມາດໄດ້ຮັບການກັ່ນຕອງດ້ວຍ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ "ການກັ່ນຕອງພື້ນຖານ"
ພາກສ່ວນສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ຕາ ຕະ ລາງ ຍັງ ສາ ມາດ ໄດ້ ຮັບ ການ ກັ່ນ ຕອງ ໂດຍ ເຈົ້າ ຂອງ ຂອງ ເຂົາ ເຈົ້າ ໂດຍ ການ ນໍາ ໃຊ້ ຂອງ
--includeuser ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "USER NAME FILTERING" ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ
ລາຍລະອຽດ.
ຫນ່ວຍງານສໍາລັບ --ເຕືອນ ແລະ --ວິຈານ ຖືກກໍານົດເປັນເວລາ. ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນວິນາທີ,
ນາທີ, ຊົ່ວໂມງ, ແລະມື້; ທັງຫມົດສາມາດຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດ. ຖ້າບໍ່ມີຫນ່ວຍງານ
ໃຫ້, 'ວິນາທີ' ແມ່ນສົມມຸດ. ຄ່າເລີ່ມຕົ້ນແມ່ນ '1 ມື້' ແລະ '2 ມື້'. ກະລຸນາບັນທຶກ
ວ່າມີກໍລະນີທີ່ຊ່ອງຂໍ້ມູນນີ້ບໍ່ໄດ້ຮັບການເພີ່ມອັດຕະໂນມັດ. ຖ້າແນ່ນອນ
ຕາຕະລາງແມ່ນໃຫ້ທ່ານມີບັນຫາ, ໃຫ້ແນ່ໃຈວ່າພວກເຂົາມີແຖວຕາຍເພື່ອສູນຍາກາດ, ຫຼືພຽງແຕ່
ຍົກເວັ້ນພວກເຂົາຈາກການທົດສອບ.
schema ທີ່ມີຊື່ວ່າ 'information_schema' ແມ່ນຖືກຍົກເວັ້ນຈາກການທົດສອບນີ້, ຍ້ອນວ່າຕາຕະລາງດຽວເທົ່ານັ້ນ.
ບັນຈຸມີຂະຫນາດນ້ອຍແລະບໍ່ປ່ຽນແປງ.
ກະລຸນາຮັບຊາບວ່າເວີຊັນທີ່ບໍ່ແມ່ນ 'ອັດຕະໂນມັດ' ຈະກວດສອບເວີຊັນອັດຕະໂນມັດເຊັ່ນກັນ. ໃນອື່ນໆ
ຄໍາສັບຕ່າງໆ, ການນໍາໃຊ້ last_vacuum ຈະລາຍງານກ່ຽວກັບການສູນຍາກາດສຸດທ້າຍ, ບໍ່ວ່າຈະເປັນສູນຍາກາດປົກກະຕິ,
ຫຼືຫນຶ່ງດໍາເນີນການໂດຍ autovacuum daemon.
ຕົວຢ່າງ 1: ເຕືອນຖ້າໂຕະໃດບໍ່ໄດ້ສູນຍາກາດພາຍໃນ 3 ມື້, ແລະໃຫ້ຄຳວິຈານຢູ່ທີ່
ອາທິດ, ສໍາລັບເຈົ້າພາບ wormwood
check_postgres_last_vacuum --host=wormwood --warning='3d' --critical='7d'
ຕົວຢ່າງ 2: ຄືກັນກັບຂ້າງເທິງ, ແຕ່ໃຫ້ຂ້າມຕາຕະລາງທີ່ເປັນຂອງຜູ້ໃຊ້ 'eve' ຫຼື 'mallory'
check_postgres_last_vacuum --host=wormwood --warning='3d' --critical='7d' --excludeusers=eve,mallory
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ (ໃນແຖວທໍາອິດ) ຈໍານວນເວລາຫນ້ອຍສຸດເປັນວິນາທີນັບຕັ້ງແຕ່ a
ຕາຕະລາງໄດ້ຖືກສູນຍາກາດຫຼືການວິເຄາະຄັ້ງສຸດທ້າຍ. ແຖວທີສີ່ສົ່ງຄືນຊື່ຂອງຖານຂໍ້ມູນແລະ
ຊື່ຕາຕະລາງ.
ຜູ້ຟັງ
("symlink: check_postgres_listener") ຢືນຢັນວ່າມີຄົນຟັງຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ
ສະຕຣິງສະເພາະ (ໃຊ້ລະບົບ LISTEN/NOTIFY), ໂດຍການເບິ່ງຕາຕະລາງ pg_listener.
ພຽງແຕ່ຫນຶ່ງຂອງການເຕືອນໄພຫຼືສໍາຄັນແມ່ນຈໍາເປັນ. ຮູບແບບແມ່ນສະຕຣິງທີ່ງ່າຍດາຍທີ່ເປັນຕົວແທນຂອງ
ຟັງເປົ້າໝາຍ, ຫຼືຕົວອັກສອນ tilde ຕິດຕາມດ້ວຍສະຕຣິງເພື່ອກວດສອບການສະແດງອອກເປັນປົກກະຕິ.
ກະລຸນາຮັບຊາບວ່າການກວດສອບນີ້ຈະບໍ່ສາມາດໃຊ້ໄດ້ກັບເວີຊັນຂອງ Postgres 9.0 ຫຼືສູງກວ່າ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນຖ້າບໍ່ມີໃຜຟັງສາຍ bucardo_mcp_ping ໃນພອດ
5555 ແລະ 5556
check_postgres_listener --port=5555,5556 --warning=bucardo_mcp_ping
ຕົວຢ່າງ 2: ໃຫ້ການວິພາກວິຈານ ຖ້າບໍ່ມີການຮ້ອງຂໍ LISTEN ທີ່ເຄື່ອນໄຫວທີ່ກົງກັບ 'grimm' ໃນ
ຖານຂໍ້ມູນ oskar
check_postgres_listener --db oskar --critical=~grimm
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ 1 ຫຼື a 0 ໃນຄັ້ງທໍາອິດ, ສະແດງເຖິງຄວາມສໍາເລັດຫຼືຄວາມລົ້ມເຫລວ. ຊື່
ຂອງແຈ້ງການຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ໂດຍຜ່ານ --mrtg ທາງເລືອກ.
locks
("symlink: check_postgres_locks") ກວດເບິ່ງຈໍານວນທັງຫມົດຂອງ locks ໃນຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ.
ຖານຂໍ້ມູນ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງຕໍ່ກຸ່ມຖານຂໍ້ມູນ. ຖານຂໍ້ມູນສາມາດເຮັດໄດ້
ຈະຖືກກັ່ນຕອງດ້ວຍ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ".
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກທີ່ສາມາດໄດ້ຮັບການລະບຸຕົວເລກທີ່ງ່າຍດາຍ, ເຊິ່ງເປັນຕົວແທນ
ຈໍານວນທັງຫມົດຂອງ locks, ຫຼືພວກເຂົາເຈົ້າສາມາດແບ່ງອອກຕາມປະເພດຂອງ lock ໄດ້. ຊື່ລັອກທີ່ຖືກຕ້ອງ
ແມ່ນ 'ລວມ', 'ລໍຖ້າ', ຫຼືຊື່ຂອງປະເພດລັອກທີ່ໃຊ້ໂດຍ Postgres. ຊື່ເຫຼົ່ານີ້ແມ່ນ
case-insensitive ແລະບໍ່ຕ້ອງການສ່ວນ "lock" ໃນຕອນທ້າຍ, ດັ່ງນັ້ນ exclusive ຈະກົງກັນ
'ExclusiveLock'. ຮູບແບບແມ່ນ name=number, ມີລາຍການທີ່ແຕກຕ່າງກັນທີ່ແຍກອອກໂດຍຈໍ້າສອງເມັດ ຫຼື
semicolons (ຫຼືສັນຍາລັກອື່ນໆ).
ຕົວຢ່າງ 1: ເຕືອນຖ້າຈໍານວນລັອກແມ່ນ 100 ຫຼືຫຼາຍກວ່ານັ້ນ, ແລະສໍາຄັນຖ້າ 200 ຫຼືຫຼາຍກວ່ານັ້ນ, ເປີດ
ເຈົ້າພາບ garrett
check_postgres_locks --host=garrett --warning=100 --critical=200
ຕົວຢ່າງ 2: ໃນ host artemus, ເຕືອນຖ້າມີ 200 locks ຫຼືຫຼາຍກວ່ານັ້ນ, ແລະໃຫ້ຄວາມສໍາຄັນຖ້າຫາກວ່າ.
ມີ locks ທັງໝົດຫຼາຍກວ່າ 250 ອັນ, ຫຼືຖ້າມີຫຼາຍກວ່າ 20 locks ສະເພາະ, ຫຼືຫຼາຍກວ່າ 5 ເຊື່ອມຕໍ່.
ກໍາລັງລໍຖ້າລັອກ.
check_postgres_locks --host=artemus --warning=200 --critical="total=250:waiting=5:exclusive=20"
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຈໍານວນຂອງ locks ໃນແຖວທໍາອິດ, ແລະຊື່ຂອງ
ຖານຂໍ້ມູນໃນແຖວທີສີ່.
logfile
("symlink: check_postgres_logfile") ຮັບປະກັນວ່າ logfile ຢູ່ໃນສະຖານທີ່ທີ່ຄາດໄວ້.
ແລະກໍາລັງຖືກເຂົ້າສູ່ລະບົບ. ການປະຕິບັດນີ້ອອກຄໍາສັ່ງທີ່ຖິ້ມຄວາມຜິດພາດໃນແຕ່ລະ
ຖານຂໍ້ມູນມັນຖືກກວດສອບ, ແລະຮັບປະກັນວ່າຂໍ້ຄວາມສະແດງຢູ່ໃນບັນທຶກ. ມັນສະແກນ
ການຕັ້ງຄ່າ log_* ຕ່າງໆພາຍໃນ Postgres ເພື່ອຊອກຫາບ່ອນທີ່ບັນທຶກຄວນຈະຢູ່. ຖ້າເຈົ້າ
ກໍາລັງໃຊ້ syslog, ມັນເຮັດການສະແກນ rough (ແຕ່ບໍ່ foolproof) ຂອງ /etc/syslog.conf.
ອີກທາງເລືອກ, ທ່ານສາມາດໃຫ້ຊື່ຂອງ logfile ກັບ --logfile ທາງເລືອກ. ນີ້ແມ່ນ
ເປັນປະໂຫຍດໂດຍສະເພາະຖ້າບັນທຶກມີລະບົບການຫມຸນແບບກຳນົດເອງທີ່ຂັບເຄື່ອນເປັນໂຄງການພາຍນອກ.
ໄດ້ --logfile ທາງເລືອກສະຫນັບສະຫນູນຕົວອັກສອນ escape ດັ່ງຕໍ່ໄປນີ້: "%Y %m %d %H", ເຊິ່ງ
ເປັນຕົວແທນຂອງປີ, ເດືອນ, ວັນທີ, ແລະຊົ່ວໂມງຕາມລໍາດັບ. ຄວາມຜິດພາດແມ່ນສະເຫມີໄປ
ລາຍງານວ່າສຳຄັນ ເວັ້ນເສຍແຕ່ວ່າຕົວເລືອກການເຕືອນຈະຖືກສົ່ງຜ່ານເປັນຄ່າທີ່ບໍ່ແມ່ນສູນ.
ນອກເຫນືອຈາກການນໍາໃຊ້ສະເພາະນັ້ນ, ທາງເລືອກ "--warning" ແລະ "--critical" ຄວນ ບໍ່ be
ໃຊ້ແລ້ວ.
ຕົວຢ່າງ 1: ໃນພອດ 5432, ໃຫ້ແນ່ໃຈວ່າ logfile ຈະຖືກຂຽນໃສ່ໄຟລ໌
/home/greg/pg8.2.log
check_postgres_logfile --port=5432 --logfile=/home/greg/pg8.2.log
ຕົວຢ່າງ 2: ຄືກັນກັບຂ້າງເທິງ, ແຕ່ຍົກຂຶ້ນມາ, ບໍ່ແມ່ນການວິພາກວິຈານ
check_postgres_logfile --port=5432 --logfile=/home/greg/pg8.2.log -w 1
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ 1 ຫຼື 0 ໃນແຖວທໍາອິດ, ສະແດງເຖິງຄວາມສໍາເລັດຫຼືຄວາມລົ້ມເຫລວ. ໃນ
ກໍລະນີຂອງຄວາມລົ້ມເຫຼວ, ເສັ້ນທີສີ່ຈະໃຫ້ລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຄວາມລົ້ມເຫຼວທີ່ພົບ.
new_version_bc
("symlink: check_postgres_new_version_bc") ກວດເບິ່ງວ່າ Bucardo ລຸ້ນໃໝ່ກວ່າຫຼືບໍ່
ໂຄງການແມ່ນມີຢູ່. ສະບັບປະຈຸບັນແມ່ນໄດ້ຮັບໂດຍການແລ່ນ "bucardo_ctl --version".
ຖ້າມີການຍົກລະດັບທີ່ສໍາຄັນ, ການເຕືອນໄພຈະຖືກສົ່ງຄືນ. ຖ້າຫາກວ່າການປັບປຸງການປັບປຸງແມ່ນ
ມີ, ທີ່ສໍາຄັນແມ່ນກັບຄືນມາ. (Bucardo ເປັນນາຍທີ່ຈະເປັນສໍາລອງ, ແລະນາຍເພື່ອເປັນນາຍ
ລະບົບການຈໍາລອງສໍາລັບ Postgres: ເບິ່ງ http://bucardo.org ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ). ເບິ່ງນຳ
ຂໍ້ມູນກ່ຽວກັບທາງເລືອກ "--get_method".
new_version_box
("symlink: check_postgres_new_version_box") ກວດເບິ່ງວ່າສະບັບໃຫມ່ຂອງ boxinfo ຫຼືບໍ່
ໂຄງການແມ່ນມີຢູ່. ສະບັບປະຈຸບັນແມ່ນໄດ້ຮັບໂດຍການແລ່ນ "boxinfo.pl --version".
ຖ້າມີການຍົກລະດັບທີ່ສໍາຄັນ, ການເຕືອນໄພຈະຖືກສົ່ງຄືນ. ຖ້າຫາກວ່າການປັບປຸງການປັບປຸງແມ່ນ
ມີ, ທີ່ສໍາຄັນແມ່ນກັບຄືນມາ. (boxinfo ແມ່ນໂຄງການສໍາລັບການ grabbing ທີ່ສໍາຄັນ
ຂໍ້ມູນຈາກເຄື່ອງແມ່ຂ່າຍແລະວາງມັນເຂົ້າໄປໃນຮູບແບບ HTML: ເບິ່ງ
http://bucardo.org/wiki/boxinfo ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ). ເບິ່ງຂໍ້ມູນກ່ຽວກັບການ
"--get_method" ທາງເລືອກ.
new_version_cp
("symlink: check_postgres_new_version_cp") ກວດເບິ່ງວ່າໂຄງການນີ້ເວີຊັນໃໝ່ກວ່າຫຼືບໍ່
(check_postgres) ສາມາດໃຊ້ໄດ້, ໂດຍ grabbing ສະບັບຈາກໄຟລ໌ຂໍ້ຄວາມຂະຫນາດນ້ອຍກ່ຽວກັບຕົ້ນຕໍ
ຫນ້າຂອງຫນ້າທໍາອິດສໍາລັບໂຄງການ. ສົ່ງຄືນການເຕືອນໄພຖ້າຫາກວ່າສະບັບທີ່ສົ່ງກັບຄືນມາບໍ່ໄດ້
ກົງກັບອັນທີ່ເຈົ້າກຳລັງແລ່ນຢູ່. ໄລຍະທີ່ແນະນຳໃຫ້ກວດແມ່ນມື້ລະເທື່ອ. ເບິ່ງຍັງ
ຂໍ້ມູນກ່ຽວກັບທາງເລືອກ "--get_method".
new_version_pg
("symlink: check_postgres_new_version_pg") ກວດເບິ່ງວ່າມີການປັບປຸງໃຫມ່ຂອງ Postgres ຫຼືບໍ່
ສໍາລັບແຕ່ລະຖານຂໍ້ມູນທີ່ເຊື່ອມຕໍ່ກັບ. ໃຫ້ສັງເກດວ່ານີ້ພຽງແຕ່ກວດສອບການດັດແກ້, e.g. ໄປຈາກ
8.3.6 ຫາ 8.3.7. ການແກ້ໄຂແມ່ນສະເຫມີ 100% binary ເຂົ້າກັນໄດ້ແລະມີສ່ວນຮ່ວມບໍ່ມີການ dump ແລະ
ຟື້ນຟູເພື່ອຍົກລະດັບ. ການແກ້ໄຂແມ່ນເຮັດເພື່ອແກ້ໄຂຂໍ້ບົກພ່ອງ, ສະນັ້ນການຍົກລະດັບໄວເທົ່າທີ່ຈະໄວໄດ້
ແມ່ນແນະນໍາໃຫ້ສະເຫມີ. ສົ່ງຄືນຄຳເຕືອນຖ້າທ່ານບໍ່ມີການແກ້ໄຂຫຼ້າສຸດ. ມັນແມ່ນ
ແນະນຳໃຫ້ໃຊ້ການກວດນີ້ຢ່າງໜ້ອຍມື້ລະເທື່ອ. ເບິ່ງຂໍ້ມູນກ່ຽວກັບການ
"--get_method" ທາງເລືອກ.
new_version_tnm
("symlink: check_postgres_new_version_tnm") ກວດເບິ່ງວ່າ tail_n_mail ລຸ້ນໃໝ່ກວ່າຫຼືບໍ່
ໂຄງການແມ່ນມີຢູ່. ສະບັບປະຈຸບັນແມ່ນໄດ້ຮັບໂດຍການແລ່ນ "tail_n_mail --version".
ຖ້າມີການຍົກລະດັບທີ່ສໍາຄັນ, ການເຕືອນໄພຈະຖືກສົ່ງຄືນ. ຖ້າຫາກວ່າການປັບປຸງການປັບປຸງແມ່ນ
ມີ, ທີ່ສໍາຄັນແມ່ນກັບຄືນມາ. (tail_n_mail ເປັນເຄື່ອງມືຕິດຕາມກວດກາບັນທຶກທີ່ສາມາດສົ່ງ
mail ເມື່ອເຫດການທີ່ຫນ້າສົນໃຈປາກົດຢູ່ໃນບັນທຶກຂອງ Postgres ຂອງທ່ານ. ເບິ່ງ:
http://bucardo.org/wiki/Tail_n_mail ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ). ເບິ່ງຂໍ້ມູນໃນ
ທາງເລືອກ "--get_method".
pgb_pool_cl_active
pgb_pool_cl_ລໍຖ້າ
pgb_pool_sv_active
pgb_pool_sv_idle
pgb_pool_sv_used
pgb_pool_sv_tested
pgb_pool_sv_login
pgb_pool_maxwait
(symlinks: "check_postgres_pgb_pool_cl_active", "check_postgres_pgb_pool_cl_waiting",
"check_postgres_pgb_pool_sv_active", "check_postgres_pgb_pool_sv_idle",
"check_postgres_pgb_pool_sv_used", "check_postgres_pgb_pool_sv_tested",
"check_postgres_pgb_pool_sv_login", ແລະ "check_postgres_pgb_pool_maxwait")
ກວດສອບສະຖິຕິສະນຸກເກີຂອງ pgbouncer. ແຕ່ລະສະນຸກເກີມີຊຸດຂອງການເຊື່ອມຕໍ່ "ລູກຄ້າ",
ໂດຍອ້າງອີງໃສ່ການເຊື່ອມຕໍ່ຈາກລູກຄ້າພາຍນອກ, ແລະການເຊື່ອມຕໍ່ "ເຄື່ອງແມ່ຂ່າຍ", ໂດຍອ້າງອີງໃສ່
ການເຊື່ອມຕໍ່ກັບ PostgreSQL ຕົວຂອງມັນເອງ. ການປະຕິບັດ check_postgres ທີ່ກ່ຽວຂ້ອງແມ່ນຖືກນໍາຫນ້າໂດຍ "cl_"
ແລະ "sv_", ຕາມລໍາດັບ. ການເຊື່ອມຕໍ່ລູກຄ້າທີ່ໃຊ້ວຽກແມ່ນການເຊື່ອມຕໍ່ເຫຼົ່ານັ້ນທີ່ເຊື່ອມຕໍ່ໃນປັດຈຸບັນ
ດ້ວຍການເຊື່ອມຕໍ່ເຊີບເວີທີ່ໃຊ້ວຽກ. ການເຊື່ອມຕໍ່ລູກຄ້າອາດຈະເປັນ "ລໍຖ້າ", ຊຶ່ງຫມາຍຄວາມວ່າພວກເຂົາ
ຍັງບໍ່ທັນໄດ້ຮັບການຈັດສັນການເຊື່ອມຕໍ່ເຄື່ອງແມ່ຂ່າຍ. ການເຊື່ອມຕໍ່ເຊີບເວີແມ່ນ "ການເຄື່ອນໄຫວ" (ເຊື່ອມຕໍ່
ກັບລູກຄ້າ), "idle" (ຢືນໂດຍການເຊື່ອມຕໍ່ລູກຄ້າເພື່ອເຊື່ອມຕໍ່ກັບ), "ໃຊ້" (ພຽງແຕ່
ຍົກເລີກການເຊື່ອມຕໍ່ຈາກລູກຄ້າ, ແລະຍັງບໍ່ໄດ້ກັບຄືນໄປຫາ idle pool), "ທົດສອບ" (ປະຈຸບັນແມ່ນ
ທົດສອບ) ແລະ "ເຂົ້າສູ່ລະບົບ" (ໃນຂະບວນການເຂົ້າສູ່ລະບົບ). ຄ່າ maxwait ສະແດງໃຫ້ເຫັນໄລຍະເວລາໃນ
ວິນາທີການເຊື່ອມຕໍ່ລູກຄ້າທີ່ເກົ່າແກ່ທີ່ສຸດໄດ້ລໍຖ້າ.
pgbouncer_backends
("symlink: check_postgres_pgbouncer_backends") ກວດເບິ່ງຈໍານວນການເຊື່ອມຕໍ່ປະຈຸບັນ
ສໍາລັບຫນຶ່ງຫຼືຫຼາຍຖານຂໍ້ມູນໂດຍຜ່ານ pgbouncer, ແລະທາງເລືອກທີ່ຈະປຽບທຽບມັນສູງສຸດ
ອະນຸຍາດ, ເຊິ່ງຖືກກໍານົດໂດຍຕົວແປການຕັ້ງຄ່າ pgbouncer max_client_conn. ໄດ້
--ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກສາມາດເອົາຫນຶ່ງໃນສາມຮູບແບບ. ຫນ້າທໍາອິດ, ຕົວເລກທີ່ງ່າຍດາຍສາມາດ
ຈະຖືກມອບໃຫ້, ເຊິ່ງສະແດງເຖິງຈໍານວນຂອງການເຊື່ອມຕໍ່ທີ່ການແຈ້ງເຕືອນຈະຖືກມອບໃຫ້.
ທາງເລືອກນີ້ບໍ່ໄດ້ໃຊ້ ການເຊື່ອມຕໍ່ສູງສຸດ ການຕັ້ງຄ່າ. ອັນທີສອງ, ອັດຕາສ່ວນທີ່ມີຢູ່
ການເຊື່ອມຕໍ່ສາມາດໄດ້ຮັບການມອບໃຫ້. ອັນທີສາມ, ສາມາດໃຫ້ຕົວເລກລົບທີ່ເປັນຕົວແທນ
ຈໍານວນການເຊື່ອມຕໍ່ທີ່ຍັງເຫຼືອຈົນກ່ວາ ການເຊື່ອມຕໍ່ສູງສຸດ ບັນລຸໄດ້. ຄ່າເລີ່ມຕົ້ນຂອງ
--ເຕືອນ ແລະ --ວິຈານ ແມ່ນ '90%' ແລະ '95%'. ນອກນັ້ນທ່ານຍັງສາມາດກັ່ນຕອງຖານຂໍ້ມູນໂດຍການນໍາໃຊ້
ໄດ້ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ເພື່ອເບິ່ງພຽງແຕ່ຂະບວນການທີ່ບໍ່ເຄື່ອນໄຫວ, ທ່ານສາມາດນໍາໃຊ້ໄດ້ -- ໜຽວ ການໂຕ້ຖຽງ. ໃຫ້ສັງເກດວ່າຜູ້ໃຊ້ທີ່ທ່ານ
ກໍາລັງເຊື່ອມຕໍ່ເປັນຕ້ອງເປັນ superuser ສໍາລັບການນີ້ເຮັດວຽກຢ່າງຖືກຕ້ອງ.
ຕົວຢ່າງ 1: ໃຫ້ຄໍາເຕືອນເມື່ອຈໍານວນການເຊື່ອມຕໍ່ຂອງ host quirm ຮອດ 120, ແລະ a
ທີ່ສໍາຄັນຖ້າມັນຮອດ 150.
check_postgres_pgbouncer_backends --host=quirm --warning=120 --critical=150 -p 6432 -u pgbouncer
ຕົວຢ່າງ 2: ໃຫ້ຄວາມສໍາຄັນເມື່ອພວກເຮົາບັນລຸ 75% ຂອງການຕັ້ງຄ່າ max_connections ຂອງພວກເຮົາໃນໂຮດ
lancre ຫຼື lancre2.
check_postgres_pgbouncer_backends --warning='75%' --critical='75%' --host=lancre,lancre2 -p 6432 -u pgbouncer
ຕົວຢ່າງ 3: ໃຫ້ຄຳເຕືອນເມື່ອມີຊ່ອງເຊື່ອມຕໍ່ອີກພຽງ 10 ອັນທີ່ເຫຼືອຢູ່ໃນໂຮສ
plasmid, ແລະທີ່ສໍາຄັນໃນເວລາທີ່ພວກເຮົາມີພຽງແຕ່ 5 ຊ້າຍ.
check_postgres_pgbouncer_backends --warning=-10 --critical=-5 --host=plasmid -p 6432 -u pgbouncer
ສໍາລັບຜົນຜະລິດ MRTG, ຈໍານວນຂອງການເຊື່ອມຕໍ່ໄດ້ຖືກລາຍງານຢູ່ໃນເສັ້ນທໍາອິດ, ແລະສີ່
line ໃຫ້ຊື່ຂອງຖານຂໍ້ມູນ, ບວກກັບ max_client_conn ໃນປັດຈຸບັນ. ຖ້າຫຼາຍກວ່າຫນຶ່ງ
ຖານຂໍ້ມູນໄດ້ຖືກສອບຖາມ, ຫນຶ່ງທີ່ມີຈໍານວນການເຊື່ອມຕໍ່ສູງສຸດແມ່ນຜົນຜະລິດ.
pgbouncer_checksum
("symlink: check_postgres_pgbouncer_checksum") ກວດເບິ່ງວ່າການຕັ້ງຄ່າ pgBouncer ທັງຫມົດແມ່ນ
ຄືກັນກັບຄັ້ງສຸດທ້າຍທີ່ທ່ານກວດເບິ່ງ. ນີ້ແມ່ນເຮັດໄດ້ໂດຍການສ້າງ checksum ຂອງບັນຊີລາຍຊື່ຈັດຮຽງ
ຂອງການຕັ້ງຊື່ແລະຄຸນຄ່າຂອງເຂົາເຈົ້າ. ໃຫ້ສັງເກດວ່າທ່ານບໍ່ຄວນລະບຸຊື່ຖານຂໍ້ມູນ, ມັນ
ຈະເປັນຄ່າເລີ່ມຕົ້ນອັດຕະໂນມັດເປັນ pgbouncer. ບໍ່ວ່າຈະເປັນ --ເຕືອນ ຫຼື --ວິຈານ ທາງເລືອກ
ຄວນໃຫ້, ແຕ່ບໍ່ແມ່ນທັງສອງ. ຄ່າຂອງແຕ່ລະຄົນແມ່ນ checksum, ເປັນ 32 ຕົວອັກສອນ
ຄ່າເລກຖານສິບຫົກ. ທ່ານສາມາດແລ່ນດ້ວຍຕົວເລືອກ "--critical=0" ພິເສດເພື່ອຊອກຫາ
checksum ທີ່ມີຢູ່ແລ້ວ.
ການກະທຳນີ້ຕ້ອງການໂມດູນ Digest::MD5.
ຕົວຢ່າງ 1: ຊອກຫາ checksum ເບື້ອງຕົ້ນສໍາລັບການຕັ້ງຄ່າ pgbouncer ໃນພອດ 6432 ໂດຍໃຊ້
ຜູ້ໃຊ້ເລີ່ມຕົ້ນ (ປົກກະຕິແລ້ວ postgres)
check_postgres_pgbouncer_checksum --port=6432 --critical=0
ຕົວຢ່າງ 2: ໃຫ້ແນ່ໃຈວ່າບໍ່ມີການຕັ້ງຄ່າໃດມີການປ່ຽນແປງ ແລະເຕືອນຖ້າເປັນດັ່ງນັ້ນ, ໂດຍໃຊ້ checksum ຈາກ
ຂ້າງເທິງ.
check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ 1 ຫຼື 0 ທີ່ຊີ້ບອກເຖິງຄວາມສໍາເລັດຂອງຄວາມລົ້ມເຫຼວຂອງ checksum ທີ່ກົງກັນ.
checksum ຈະຕ້ອງຖືກສະຫນອງໃຫ້ເປັນ "--mrtg". ເສັ້ນທີສີ່ສະເຫມີໃຫ້
checksum ໃນປະຈຸບັນ.
pgagent_jobs
("symlink: check_postgres_pgagent_jobs") ກວດເບິ່ງວ່າວຽກ pgAgent ທັງໝົດທີ່ມີ
ການປະຕິບັດໃນໄລຍະເວລາກ່ອນຫນ້າໄດ້ປະສົບຜົນສໍາເລັດ. ນີ້ແມ່ນເຮັດໄດ້ໂດຍການກວດສອບສໍາລັບ
ຂັ້ນຕອນໃດໆກໍຕາມທີ່ມີຜົນໄດ້ຮັບທີ່ບໍ່ແມ່ນສູນ.
"-- ການເຕືອນ" ຫຼື "-- ສໍາຄັນ", ຫຼືທັງສອງ, ອາດຈະຖືກກໍານົດເປັນເວລາ, ແລະວຽກຈະເປັນ.
ກວດເບິ່ງຄວາມລົ້ມເຫລວກັບໄລຍະເວລາທີ່ກໍານົດໄວ້ກ່ອນເວລາປະຈຸບັນ. ຖືກຕ້ອງ
ຫົວໜ່ວຍແມ່ນວິນາທີ, ນາທີ, ຊົ່ວໂມງ, ແລະມື້; ທັງຫມົດສາມາດຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດ.
ຖ້າບໍ່ມີຫົວໜ່ວຍໃຫ້, 'ວິນາທີ' ແມ່ນສົມມຸດ.
ຕົວຢ່າງ 1: ໃຫ້ວິຈານເມື່ອວຽກໃດນຶ່ງທີ່ປະຕິບັດໃນມື້ສຸດທ້າຍບໍ່ສຳເລັດ.
check_postgres_pgagent_jobs --critical=1d
ຕົວຢ່າງ 2: ໃຫ້ຄຳເຕືອນເມື່ອວຽກໃດນຶ່ງທີ່ປະຕິບັດໃນອາທິດທີ່ຜ່ານມາລົ້ມເຫລວ.
check_postgres_pgagent_jobs --warning=7d
ຕົວຢ່າງທີ 3: ໃຫ້ຄໍາສໍາຄັນສໍາລັບວຽກທີ່ລົ້ມເຫລວໃນ 2 ຊົ່ວໂມງທີ່ຜ່ານມາ ແລະຄໍາເຕືອນສໍາລັບ
ວຽກທີ່ລົ້ມເຫລວໃນ 4 ຊົ່ວໂມງທີ່ຜ່ານມາ:
check_postgres_pgagent_jobs --critical=2h --warning=4ຊມ
ກະກຽມ_txns
("symlink: check_postgres_prepared_txns") ກວດເບິ່ງອາຍຸຂອງການກະກຽມທີ່ມີຢູ່ແລ້ວ.
ທຸລະກໍາ. ໃຫ້ສັງເກດວ່າຄົນສ່ວນໃຫຍ່ຈະບໍ່ໃຊ້ການເຮັດທຸລະກໍາທີ່ກຽມພ້ອມ, ເພາະວ່າພວກເຂົາເປັນສ່ວນຫນຶ່ງ
ຂອງຄໍາຫມັ້ນສັນຍາສອງພາກສ່ວນແລະສັບສົນໃນການຮັກສາ. ພວກເຂົາບໍ່ຄວນສັບສົນກັບ
ຖະແຫຼງການທີ່ກະກຽມ, ເຊິ່ງເປັນສິ່ງທີ່ຄົນສ່ວນໃຫຍ່ຄິດເຖິງເມື່ອພວກເຂົາໄດ້ຍິນການກະກຽມ. ໄດ້
ຄ່າເລີ່ມຕົ້ນສໍາລັບການເຕືອນໄພແມ່ນ 1 ວິນາທີ, ເພື່ອກວດສອບການນໍາໃຊ້ທຸລະກໍາທີ່ກະກຽມ, ເຊິ່ງ
ອາດຈະເປັນຄວາມຜິດພາດໃນລະບົບສ່ວນໃຫຍ່. ຄໍາເຕືອນແລະສໍາຄັນແມ່ນຈໍານວນວິນາທີ a
ການເຮັດທຸລະກໍາທີ່ກຽມພ້ອມໄດ້ຖືກເປີດກ່ອນທີ່ຈະມີການແຈ້ງເຕືອນ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນກ່ຽວກັບການກວດຫາທຸລະກຳທີ່ກະກຽມໄວ້:
check_postgres_prepared_txns -w 0
ຕົວຢ່າງ 2: ໃຫ້ຄໍາສໍາຄັນຖ້າທຸລະກໍາທີ່ກຽມໄວ້ເປີດດົນກວ່າ 10
ວິນາທີ, ແຕ່ອະນຸຍາດໃຫ້ເຖິງ 360 ວິນາທີສໍາລັບຖານຂໍ້ມູນ 'shrike':
check_postgres_prepared_txns --critical=10 --exclude=shrike
check_postgres_prepared_txns --critical=360 --include=shrike
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຈໍານວນວິນາທີທີ່ທຸລະກໍາເກົ່າແກ່ທີ່ສຸດໄດ້ເປີດເປັນ
ແຖວທໍາອິດ, ແລະຖານຂໍ້ມູນໃດມາຈາກເສັ້ນສຸດທ້າຍ.
query_runtime
("symlink: check_postgres_query_runtime") ກວດເບິ່ງໄລຍະເວລາຂອງການສອບຖາມສະເພາະເພື່ອດໍາເນີນການ,
ໂດຍການດໍາເນີນການ "ອະທິບາຍການວິເຄາະ" ຕໍ່ກັບມັນ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນ
ຈໍານວນເວລາສູງສຸດທີ່ຄໍາຖາມຄວນໃຊ້ເວລາ. ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນວິນາທີ, ນາທີ, ແລະຊົ່ວໂມງ;
ໃດໆສາມາດຖືກຫຍໍ້ເປັນຕົວອັກສອນທໍາອິດ. ຖ້າບໍ່ມີຫົວໜ່ວຍໃຫ້, 'ວິນາທີ' ແມ່ນສົມມຸດ.
ທັງການເຕືອນໄພແລະທາງເລືອກທີ່ສໍາຄັນຕ້ອງໄດ້ຮັບການໃຫ້. ຊື່ຂອງມຸມເບິ່ງຫຼືຟັງຊັນ
ທີ່ ຈະ ດໍາ ເນີນ ການ ຕ້ອງ ໄດ້ ຮັບ ການ ຜ່ານ ໃນ --ຊື່ສອບຖາມ ທາງເລືອກ. ມັນຕ້ອງປະກອບດ້ວຍຄໍາດຽວ
(ຫຼື schema.word), ມີ paren ທາງເລືອກໃນທ້າຍ.
ຕົວຢ່າງ 1: ໃຫ້ວິຈານຖ້າຟັງຊັນທີ່ມີຊື່ວ່າ "speedtest" ເຮັດວຽກບໍ່ສຳເລັດໃນ 10 ວິນາທີ ຫຼື
ຫນ້ອຍ.
check_postgres_query_runtime --queryname='speedtest()' --critical=10 --warning=10
ສໍາລັບຜົນຜະລິດ MRTG, ລາຍງານເວລາເປັນວິນາທີສໍາລັບການສອບຖາມເພື່ອໃຫ້ສໍາເລັດໃນແຖວທໍາອິດ.
ແຖວທີສີ່ລາຍຊື່ຖານຂໍ້ມູນ.
query_time
("symlink: check_postgres_query_time") ກວດເບິ່ງຄວາມຍາວຂອງຄໍາຖາມທີ່ເຮັດວຽກຢູ່ໃນຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ.
ຖານຂໍ້ມູນ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງໃນກຸ່ມຖານຂໍ້ມູນດຽວກັນ. ຫມາຍເຫດ
ວ່າອັນນີ້ບໍ່ລວມເອົາການສອບຖາມທີ່ "idle ໃນທຸລະກໍາ". ຖານຂໍ້ມູນສາມາດເປັນ
ການກັ່ນຕອງໂດຍການນໍາໃຊ້ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ".
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ນອກນັ້ນທ່ານຍັງສາມາດກັ່ນຕອງຜູ້ໃຊ້ທີ່ດໍາເນີນການສອບຖາມກັບ --includeuser
ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງຊື່ຜູ້ໃຊ້" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ຄຸນຄ່າສໍາລັບການ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນຈໍານວນຂອງເວລາ, ແລະຄ່າເລີ່ມຕົ້ນທີ່ '2
ນາທີ' ແລະ '5 ນາທີ' ຕາມລໍາດັບ. ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນ 'ວິນາທີ', 'ນາທີ', 'ຊົ່ວໂມງ', ຫຼື
'ມື້'. ແຕ່ລະຄົນອາດຈະໄດ້ຮັບການລາຍລັກອັກສອນຫຼືຫຍໍ້ເປັນພຽງແຕ່ຕົວອັກສອນທໍາອິດ. ຖ້າບໍ່ມີຫົວໜ່ວຍ
ໄດ້ຖືກມອບໃຫ້, ຫນ່ວຍງານແມ່ນສົມມຸດວ່າເປັນວິນາທີ.
ການປະຕິບັດນີ້ຕ້ອງການ Postgres 8.1 ຫຼືດີກວ່າ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນຖ້າການສອບຖາມໃດນຶ່ງແລ່ນດົນກວ່າ 3 ນາທີ, ແລະ a
ສໍາຄັນຖ້າດົນກວ່າ 5 ນາທີ.
check_postgres_query_time --port=5432 --warning='3 ນາທີ' --critical='5 ນາທີ'
ຕົວຢ່າງ 2: ການນໍາໃຊ້ຄ່າເລີ່ມຕົ້ນ (2 ແລະ 5 ນາທີ), ກວດເບິ່ງຖານຂໍ້ມູນທັງຫມົດຍົກເວັ້ນເຫຼົ່ານັ້ນ
ເລີ່ມຕົ້ນດ້ວຍ 'ແມ່ແບບ'.
check_postgres_query_time --port=5432 --exclude=~^ແມ່ແບບ
ຕົວຢ່າງ 3: ເຕືອນຖ້າຜູ້ໃຊ້ 'don' ມີຄິວຣີແລ່ນເກີນ 20 ວິນາທີ
check_postgres_query_time --port=5432 --includeuser=don --warning=20ວິ
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຄວາມຍາວເປັນວິນາທີຂອງການສອບຖາມທີ່ແລ່ນຍາວທີ່ສຸດໃນຄັ້ງທໍາອິດ
ສາຍ. ແຖວທີສີ່ໃຫ້ຊື່ຂອງຖານຂໍ້ມູນ.
replicate_row
("symlink: check_postgres_replicate_row") ກວດສອບວ່າການຈໍາລອງແມ່ບົດສໍາລອງແມ່ນເຮັດວຽກ.
ແກ່ຂ້າໃຊ້ໜຶ່ງຄົນ ຫຼືຫຼາຍກວ່ານັ້ນ.
ຕົວເລືອກທໍາອິດ "--dbname", "--host", ແລະ "--port", ແລະອື່ນໆແມ່ນພິຈາລະນາຕົ້ນສະບັບ;
ການນໍາໃຊ້ຕໍ່ມາແມ່ນສໍາລອງ. ຄຸນຄ່າຫຼື --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນ
ຫົວໜ່ວຍເວລາ, ແລະຢ່າງໜ້ອຍຕ້ອງໃຫ້ໜຶ່ງໜ່ວຍ (ບໍ່ມີຄ່າເລີ່ມຕົ້ນ). ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນ 'ວິນາທີ',
'ນາທີ', 'ຊົ່ວໂມງ', ຫຼື 'ມື້'. ແຕ່ລະຄົນອາດຈະໄດ້ຮັບການລາຍລັກອັກສອນຫຼືຫຍໍ້ເປັນພຽງແຕ່
ຈົດຫມາຍສະບັບທໍາອິດ. ຖ້າບໍ່ມີຫົວຫນ່ວຍໃຫ້, ຫນ່ວຍງານແມ່ນສົມມຸດວ່າວິນາທີ.
ການກວດສອບນີ້ປັບປຸງແຖວດຽວໃນແມ່ແບບ, ແລະຫຼັງຈາກນັ້ນວັດແທກວ່າມັນໃຊ້ເວລາດົນປານໃດ
ນໍາໃຊ້ກັບສໍາລອງ. ເພື່ອເຮັດສິ່ງນີ້, ທ່ານຈໍາເປັນຕ້ອງເລືອກຕາຕະລາງທີ່ຖືກ replicated, ຫຼັງຈາກນັ້ນ
ຊອກຫາແຖວທີ່ສາມາດປ່ຽນແປງໄດ້, ແລະຈະບໍ່ມີການປ່ຽນແປງໂດຍຂະບວນການອື່ນ. ກ
ຖັນສະເພາະຂອງແຖວນີ້ຈະຖືກປ່ຽນຈາກຄ່າໜຶ່ງໄປຫາຄ່າອື່ນ. ທັງໝົດນີ້ຖືກປ້ອນ
ໄປທີ່ຕົວເລືອກ "repinfo", ແລະຄວນຈະມີຕົວເລືອກຕໍ່ໄປນີ້, ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ:
ຊື່ຕາຕະລາງ, ລະຫັດຫຼັກ, ລະຫັດລະຫັດ, ຖັນ, ຄ່າທຳອິດ, ຄ່າທີສອງ.
ຕົວຢ່າງ 1: Slony ກໍາລັງ replicating ຕາຕະລາງທີ່ມີຊື່ 'orders' ຈາກ host 'alpha' ກັບ host 'beta',
ໃນຖານຂໍ້ມູນ 'ການຂາຍ'. ລະຫັດຫຼັກຂອງຕາຕະລາງແມ່ນຊື່ id, ແລະພວກເຮົາຈະໄປ
ທົດສອບແຖວທີ່ມີ id ຂອງ 3 (ເຊິ່ງເປັນປະຫວັດສາດແລະບໍ່ເຄີຍປ່ຽນແປງ). ມີຖັນ
ຊື່ວ່າ 'salesrep' ທີ່ພວກເຮົາຈະປ່ຽນຈາກຄ່າຂອງ 'slon' ເປັນ 'nols' ເພື່ອກວດສອບ.
ການຈໍາລອງ. ພວກເຮົາຕ້ອງການຖິ້ມຄໍາເຕືອນຖ້າຫາກວ່າ replication ບໍ່ເກີດຂຶ້ນພາຍໃນ 10
ວິນາທີ.
check_postgres_replicate_row --host=alpha --dbname=sales --host=beta
--dbname=sales --warning=10 --repinfo=orders,id,3,salesrep,slon,nols
ຕົວຢ່າງ 2: Bucardo ກໍາລັງເຮັດເລື້ມຄືນຕາຕະລາງທີ່ມີຊື່ວ່າ 'ໃບຮັບເງິນ' ຈາກເຈົ້າພາບ 'ສີຂຽວ' ໄປເປັນເຈົ້າພາບ
'ສີແດງ', 'ສີຟ້າ' ແລະ 'ສີເຫຼືອງ'. ຖານຂໍ້ມູນສໍາລັບທັງສອງຝ່າຍແມ່ນ 'ສາທາລະນະ'. ຖານຂໍ້ມູນສໍາລອງ
ກໍາລັງແລ່ນຢູ່ໃນພອດ 5455. ລະຫັດຫຼັກມີຊື່ວ່າ 'receipt_id', ແຖວທີ່ພວກເຮົາຕ້ອງການໃຊ້
ມີມູນຄ່າ 9, ແລະຖັນທີ່ພວກເຮົາຕ້ອງການປ່ຽນສໍາລັບການທົດສອບແມ່ນເອີ້ນວ່າ 'zone'. ດີ
ສະຫຼັບລະຫວ່າງ 'ເໜືອ' ແລະ 'ໃຕ້' ສໍາລັບຄ່າຂອງຖັນນີ້, ແລະຖິ້ມຄວາມສໍາຄັນຖ້າ
ການປ່ຽນແປງບໍ່ໄດ້ຢູ່ໃນທັງສາມສໍາລອງພາຍໃນ 5 ວິນາທີ.
check_postgres_replicate_row --host=green --port=5455 --host=red,ສີຟ້າ,ສີເຫຼືອງ
--critical=5 --repinfo=receipt,receipt_id,9,ເຂດ,ເໜືອ,ໃຕ້
ສໍາລັບຜົນຜະລິດ MRTG, ກັບຄືນມາໃນແຖວທໍາອິດທີ່ໃຊ້ເວລາເປັນວິນາທີທີ່ replication ໃຊ້ເວລາ
ສໍາເລັດຮູບ. ເວລາສູງສຸດແມ່ນຕັ້ງເປັນ 4 ນາທີ 30 ວິນາທີ: ຖ້າບໍ່ມີການຈໍາລອງ
ໃນເວລາທີ່ດົນນານ, ຄວາມຜິດພາດໄດ້ຖືກຖິ້ມ.
same_schema
("symlink: check_postgres_same_schema") ກວດສອບວ່າສອງຫຼືຫຼາຍຖານຂໍ້ມູນແມ່ນຄ້າຍຄືກັນ
ເທົ່າທີ່ schema ຂອງພວກເຂົາ (ແຕ່ບໍ່ແມ່ນຂໍ້ມູນພາຍໃນ). ນີ້ແມ່ນເປັນປະໂຫຍດໂດຍສະເພາະສໍາລັບການເຮັດ
ໃຫ້ແນ່ໃຈວ່າຂ້າໃຊ້ຂອງທ່ານບໍ່ໄດ້ຖືກດັດແກ້ຫຼືການສໍ້ລາດບັງຫຼວງໃນວິທີການໃດຫນຶ່ງໃນເວລາທີ່ການນໍາໃຊ້ນາຍເພື່ອຂ້າໃຊ້
ການຈຳລອງ. ບໍ່ເຫມືອນກັບການກະທໍາອື່ນໆສ່ວນໃຫຍ່, ນີ້ບໍ່ມີຄໍາເຕືອນຫຼືເງື່ອນໄຂທີ່ສໍາຄັນ - the
ຖານຂໍ້ມູນແມ່ນຢູ່ໃນ sync, ຫຼືບໍ່ແມ່ນ. ຖ້າພວກເຂົາແຕກຕ່າງກັນ, ບັນຊີລາຍຊື່ລາຍລະອຽດຂອງ
ຄວາມແຕກຕ່າງໄດ້ຖືກນໍາສະເຫນີ.
ທ່ານອາດຈະຕ້ອງການຍົກເວັ້ນຫຼືການກັ່ນຕອງຄວາມແຕກຕ່າງບາງຢ່າງ. ວິທີການເຮັດນີ້ແມ່ນການເພີ່ມ
ຊ່ອຍແນ່ໃສ່ຕົວເລືອກ "--filter". ເພື່ອຍົກເວັ້ນປະເພດຂອງວັດຖຸ, ໃຊ້ "noname", ບ່ອນທີ່ 'ຊື່'
ແມ່ນປະເພດຂອງວັດຖຸ, ສໍາລັບການຍົກຕົວຢ່າງ, "noschema". ເພື່ອຍົກເວັ້ນວັດຖຸບາງປະເພດໂດຍ ກ
ການສະແດງອອກເປັນປົກກະຕິຕໍ່ກັບຊື່ຂອງພວກເຂົາ, ໃຊ້ "noname = regex". ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້ສໍາລັບ a
ຄວາມເຂົ້າໃຈດີຂຶ້ນ.
ປະເພດຂອງວັດຖຸທີ່ສາມາດຖືກກັ່ນຕອງປະກອບມີ:
ຜູ້ໃຊ້
ໂຄງ
ຕາຕະລາງ
ເບິ່ງ
ດັດຊະນີ
ລໍາດັບ
ຂໍ້ ຈຳ ກັດ
ຜົນກະທົບຕໍ່
ຫນ້າທີ່
ຕົວເລືອກການກັ່ນຕອງ "noposition" ປ້ອງກັນການກວດສອບຕໍາແຫນ່ງຂອງຖັນພາຍໃນ a
ຕາຕະລາງ.
ຕົວເລືອກການກັ່ນຕອງ "nofuncbody" ປ້ອງກັນການປຽບທຽບຂອງອົງການຈັດຕັ້ງຂອງຫນ້າທີ່ທັງຫມົດ.
ຕົວເລືອກການກັ່ນຕອງ "noperm" ປ້ອງກັນການປຽບທຽບການອະນຸຍາດວັດຖຸ.
ເພື່ອສະຫນອງຖານຂໍ້ມູນທີສອງ, ພຽງແຕ່ຕື່ມຂໍ້ມູນໃສ່ຄວາມແຕກຕ່າງກັບອັນທໍາອິດໂດຍການໂທຫາ
ການໂຕ້ຖຽງການເຊື່ອມຕໍ່ທີ່ເຫມາະສົມ. ຕົວຢ່າງ, ເພື່ອປຽບທຽບຖານຂໍ້ມູນກ່ຽວກັບ hosts alpha ແລະ
bravo, ໃຊ້ "--dbhost=alpha,bravo". ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້.
ຖ້າມີພຽງແຕ່ເຈົ້າພາບດຽວເທົ່ານັ້ນ, ມັນສົມມຸດວ່າພວກເຮົາກໍາລັງເຮັດບົດລາຍງານ "ຕາມເວລາ". ໄດ້
ຄັ້ງທໍາອິດນີ້ແມ່ນການດໍາເນີນການຮູບພາບຂອງລາຍການທັງຫມົດໃນຖານຂໍ້ມູນໄດ້ຖືກບັນທຶກໄວ້ໃນທ້ອງຖິ່ນ
ໄຟລ໌. ເມື່ອທ່ານດໍາເນີນການມັນອີກເທື່ອຫນຶ່ງ, ພາບຖ່າຍນັ້ນຖືກອ່ານແລະກາຍເປັນ "ຖານຂໍ້ມູນ #2" ແລະເປັນ
ເມື່ອປຽບທຽບກັບຖານຂໍ້ມູນໃນປະຈຸບັນ.
ເພື່ອປ່ຽນໄຟລ໌ເກົ່າທີ່ເກັບໄວ້ດ້ວຍສະບັບໃຫມ່, ໃຫ້ໃຊ້ການໂຕ້ຖຽງ --replace.
ເພື່ອເປີດໃຊ້ການຖ່າຍຮູບໃນຈຸດຕ່າງໆໃນເວລາ, ທ່ານສາມາດນໍາໃຊ້ "--suffix" argument ເພື່ອເຮັດໃຫ້.
ຊື່ໄຟລ໌ທີ່ເປັນເອກະລັກໃນແຕ່ລະໄລຍະ. ເບິ່ງຕົວຢ່າງຂ້າງລຸ່ມນີ້.
ຕົວຢ່າງ 1: ກວດສອບວ່າສອງຖານຂໍ້ມູນໃນ host star ແລະ line ແມ່ນຄືກັນ:
check_postgres_same_schema --dbhost=star,line
ຕົວຢ່າງທີ 2: ຄືກັນກັບກ່ອນໜ້ານີ້, ແຕ່ບໍ່ລວມເອົາຕົວກະຕຸ້ນໃດໆທີ່ມີ "ໂລນີ" ໃນຊື່ຂອງມັນ
check_postgres_same_schema --dbhost=star,line --filter="notrigger=slony"
ຕົວຢ່າງ 3: ຄືກັນກັບກ່ອນໜ້ານີ້, ແຕ່ຍັງຍົກເວັ້ນດັດຊະນີທັງໝົດ
check_postgres_same_schema --dbhost=star,line --filter="notrigger=slony noindexes"
ຕົວຢ່າງ 4: ກວດເບິ່ງຄວາມແຕກຕ່າງສໍາລັບຖານຂໍ້ມູນ "battlestar" ໃນພອດທີ່ແຕກຕ່າງກັນ
check_postgres_same_schema --dbname=battlestar --dbport=5432,5544
ຕົວຢ່າງ 5: ສ້າງໄຟລ໌ບັນທຶກປະຈໍາວັນ ແລະອາທິດ
check_postgres_same_schema --dbname=cylon --suffix=ປະຈໍາວັນ
check_postgres_same_schema --dbname=cylon --suffix=ລາຍອາທິດ
ຕົວຢ່າງ 6: ດໍາເນີນການປຽບທຽບປະຫວັດສາດ, ຈາກນັ້ນປ່ຽນໄຟລ໌
check_postgres_same_schema --dbname=cylon --suffix=ປະຈໍາວັນ --replace
ລໍາດັບ
("symlink: check_postgres_sequence") ກວດເບິ່ງວ່າມີຫ້ອງຫຼາຍປານໃດໃນລໍາດັບທັງຫມົດໃນ.
ຖານຂໍ້ມູນ. ນີ້ແມ່ນການວັດແທກເປັນເປີເຊັນຂອງມູນຄ່າທີ່ເປັນໄປໄດ້ທັງໝົດທີ່ໄດ້ຖືກນໍາໃຊ້
ສໍາລັບແຕ່ລະລໍາດັບ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງ ເລືອກ ຄວນ ຈະ ໄດ້ ຮັບ ການ ສະ ແດງ ອອກ ເປັນ
ເປີເຊັນ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 85% ສໍາລັບການເຕືອນໄພແລະ 95% ສໍາລັບການສໍາຄັນ. ເຈົ້າອາດຈະ
ໃຊ້ --include ແລະ --exclude ເພື່ອຄວບຄຸມວ່າລໍາດັບໃດທີ່ຈະກວດສອບ. ໃຫ້ສັງເກດວ່ານີ້
ກວດສອບບັນຊີສໍາລັບການຜິດປົກກະຕິ ຄ່າຕໍ່າ ແລະ ການເພີ່ມຂື້ນ by ຄຸນຄ່າ, ແຕ່ບໍ່ສົນໃຈວ່າ
ລໍາດັບຖືກຕັ້ງເປັນວົງຈອນຫຼືບໍ່.
ຜົນຜະລິດສໍາລັບ Nagios ໃຫ້ຊື່ຂອງລໍາດັບ, ອັດຕາສ່ວນທີ່ໃຊ້, ແລະຈໍານວນ
ຂອງ 'ໂທ' ຊ້າຍ, ຊີ້ບອກເຖິງຈໍານວນຄັ້ງຕໍ່ໄປສາມາດເອີ້ນໄດ້ໃນລໍາດັບນັ້ນ
ກ່ອນທີ່ຈະແລ່ນເຂົ້າໄປໃນມູນຄ່າສູງສຸດ.
ຜົນຜະລິດສໍາລັບ MRTG ໃຫ້ກັບຄືນອັດຕາສ່ວນທີ່ສູງທີ່ສຸດໃນທົ່ວທຸກລໍາດັບໃນແຖວທໍາອິດ,
ແລະຊື່ຂອງແຕ່ລະລໍາດັບທີ່ມີອັດຕາສ່ວນນັ້ນຢູ່ໃນແຖວທີສີ່, ແຍກດ້ວຍ "|"
(ທໍ່) ຖ້າມີຫຼາຍກວ່າຫນຶ່ງລໍາດັບໃນອັດຕາສ່ວນນັ້ນ.
ຕົວຢ່າງທີ 1: ໃຫ້ຄຳເຕືອນຖ້າລໍາດັບໃດນຶ່ງໃກ້ຈະເຕັມ 95%.
check_postgres_sequence --dbport=5432 --warning=95%
ຕົວຢ່າງ 2: ກວດເບິ່ງວ່າລໍາດັບທີ່ມີຊື່ວ່າ "orders_id_seq" ແມ່ນບໍ່ເກີນເຄິ່ງຫນຶ່ງ.
check_postgres_sequence --dbport=5432 --critical=50% --include=orders_id_seq
settings_checksum
("symlink: check_postgres_settings_checksum") ກວດເບິ່ງວ່າການຕັ້ງຄ່າ Postgres ທັງຫມົດແມ່ນ
ຄືກັນກັບຄັ້ງສຸດທ້າຍທີ່ທ່ານກວດເບິ່ງ. ນີ້ແມ່ນເຮັດໄດ້ໂດຍການສ້າງ checksum ຂອງບັນຊີລາຍຊື່ຈັດຮຽງ
ຂອງການຕັ້ງຊື່ແລະຄຸນຄ່າຂອງເຂົາເຈົ້າ. ໃຫ້ສັງເກດວ່າຜູ້ໃຊ້ທີ່ແຕກຕ່າງກັນໃນຖານຂໍ້ມູນດຽວກັນອາດຈະມີ
checksums ທີ່ແຕກຕ່າງກັນ, ເນື່ອງຈາກການນໍາໃຊ້ ALTER USER, ແລະເນື່ອງຈາກຄວາມຈິງທີ່ວ່າ superusers ເບິ່ງເພີ່ມເຕີມ
ການຕັ້ງຄ່າຫຼາຍກ່ວາຜູ້ໃຊ້ທົ່ວໄປ. ບໍ່ວ່າຈະເປັນ --ເຕືອນ ຫຼື --ວິຈານ ທາງເລືອກຄວນຈະເປັນ
ໃຫ້, ແຕ່ບໍ່ແມ່ນທັງສອງ. ຄ່າຂອງແຕ່ລະອັນແມ່ນ checksum, ເປັນເລກຖານສິບຫົກ 32 ຕົວອັກສອນ
ຄ່າ. ທ່ານສາມາດດໍາເນີນການດ້ວຍຕົວເລືອກ "--critical=0" ພິເສດເພື່ອຊອກຫາທີ່ມີຢູ່ແລ້ວ
checksum.
ການກະທຳນີ້ຕ້ອງການໂມດູນ Digest::MD5.
ຕົວຢ່າງ 1: ຊອກຫາ checksum ເບື້ອງຕົ້ນສໍາລັບຖານຂໍ້ມູນໃນພອດ 5555 ໂດຍໃຊ້ຜູ້ໃຊ້ເລີ່ມຕົ້ນ
(ປົກກະຕິແລ້ວ postgres)
check_postgres_settings_checksum --port=5555 --critical=0
ຕົວຢ່າງ 2: ໃຫ້ແນ່ໃຈວ່າບໍ່ມີການຕັ້ງຄ່າໃດມີການປ່ຽນແປງ ແລະເຕືອນຖ້າເປັນດັ່ງນັ້ນ, ໂດຍໃຊ້ checksum ຈາກ
ຂ້າງເທິງ.
check_postgres_settings_checksum --port=5555 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ຜົນຕອບແທນ 1 ຫຼື 0 ທີ່ຊີ້ບອກເຖິງຄວາມສໍາເລັດຂອງຄວາມລົ້ມເຫຼວຂອງ checksum ທີ່ກົງກັນ.
checksum ຈະຕ້ອງຖືກສະຫນອງໃຫ້ເປັນ "--mrtg". ເສັ້ນທີສີ່ສະເຫມີໃຫ້
checksum ໃນປະຈຸບັນ.
ສະຖານະ slony
("symlink: check_postgres_slony_status") ກວດສອບສະຖານະຂອງກຸ່ມ Slony ໂດຍ
ເບິ່ງຜົນໄດ້ຮັບຂອງມຸມເບິ່ງ sl_status ຂອງ Slony. ອັນນີ້ຖືກສົ່ງຄືນເປັນຈໍານວນ
ວິນາທີຂອງ "lag time". ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກຄວນຈະສະແດງອອກເປັນເວລາ.
ຄ່າເລີ່ມຕົ້ນແມ່ນ 60 ວິນາທີ ສໍາລັບການເຕືອນໄພແລະ 300 ວິນາທີ ສໍາລັບການສໍາຄັນ.
ການໂຕ້ຖຽງທາງເລືອກ --schema ຊີ້ໃຫ້ເຫັນ schema ທີ່ Slony ຖືກຕິດຕັ້ງພາຍໃຕ້. ຖ້າຫາກວ່າມັນ
ບໍ່ໄດ້ໃຫ້, schema ຈະຖືກກໍານົດໂດຍອັດຕະໂນມັດໃນແຕ່ລະຄັ້ງທີ່ການກວດສອບນີ້ຖືກດໍາເນີນການ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນຖ້າ Slony ໃດຊ້າເກີນ 20 ວິນາທີ
check_postgres_slony_status --warning 20
ຕົວຢ່າງ 2: ໃຫ້ວິຈານຖ້າ Slony, ຕິດຕັ້ງພາຍໃຕ້ schema "_slony", ເກີນ 10.
ນາທີຊ້າ
check_postgres_slony_status --schema=_slony --critical=600
timesync
("symlink: check_postgres_timesync") ປຽບທຽບເວລາລະບົບທ້ອງຖິ່ນກັບເວລາລາຍງານ
ໂດຍຫນຶ່ງຫຼືຫຼາຍຖານຂໍ້ມູນ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກເປັນຕົວແທນຂອງຈໍານວນຂອງ
ວິນາທີລະຫວ່າງສອງລະບົບກ່ອນທີ່ຈະມີການແຈ້ງເຕືອນ. ຖ້າທັງສອງບໍ່ໄດ້ລະບຸ, the
ຄ່າເລີ່ມຕົ້ນແມ່ນໃຊ້, ເຊິ່ງແມ່ນ '2' ແລະ '5'. ຄ່າເຕືອນບໍ່ສາມາດໃຫຍ່ກວ່າ
ມູນຄ່າທີ່ສໍາຄັນ. ເນື່ອງຈາກລັກສະນະທີ່ບໍ່ແນ່ນອນຂອງການທົດສອບນີ້, ຄ່າຂອງ '0' ຫຼື '1' ບໍ່ແມ່ນ
ແນະນໍາໃຫ້.
ສະຕຣິງທີ່ສົ່ງຄືນສະແດງໃຫ້ເຫັນຄວາມແຕກຕ່າງຂອງເວລາເຊັ່ນດຽວກັນກັບເວລາໃນແຕ່ລະດ້ານທີ່ຂຽນ
ອອກ.
ຕົວຢ່າງ 1: ກວດເບິ່ງວ່າຖານຂໍ້ມູນໃນ host ankh, morpork, ແລະ klatch ແມ່ນບໍ່ເກີນ 3.
ວິນາທີຈາກເວລາທ້ອງຖິ່ນ:
check_postgres_timesync --host=ankh,morpork,klatch --critical=3
ສໍາລັບຜົນຜະລິດ MRTG, ໃຫ້ກັບຄືນຫນຶ່ງແຖວທໍາອິດຈໍານວນຂອງວິນາທີທີ່ແຕກຕ່າງກັນລະຫວ່າງ
ເວລາທ້ອງຖິ່ນ ແລະເວລາຖານຂໍ້ມູນ. ແຖວທີສີ່ສົ່ງຄືນຊື່ຂອງຖານຂໍ້ມູນ.
txn_idle
("symlink: check_postgres_txn_idle") ກວດເບິ່ງຈໍານວນແລະໄລຍະເວລາຂອງ "idle in
ການເຮັດທຸລະກໍາ" ຄໍາຖາມຢູ່ໃນຫນຶ່ງຫຼືຫຼາຍຖານຂໍ້ມູນ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງ
ຢູ່ໃນກຸ່ມຖານຂໍ້ມູນດຽວກັນ. ຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງໂດຍການໃຊ້ --ລວມ ແລະ
--ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງພາກສ່ວນ "ການກັ່ນຕອງພື້ນຖານ" ຂ້າງລຸ່ມນີ້ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນໄດ້ຮັບເປັນຫົວຫນ່ວຍຂອງເວລາ, ຈໍານວນເຕັມລາຍຊື່, ຫຼື
ຈຳນວນເຕັມສຳລັບຫົວໜ່ວຍເວລາ, ແລະທັງສອງຈະຕ້ອງໃຫ້ (ບໍ່ມີຄ່າເລີ່ມຕົ້ນ). ຫົວໜ່ວຍທີ່ຖືກຕ້ອງ
ແມ່ນ 'ວິນາທີ', 'ນາທີ', 'ຊົ່ວໂມງ', ຫຼື 'ມື້'. ແຕ່ລະຄົນອາດຈະໄດ້ຮັບການລາຍລັກອັກສອນຫຼືຕົວຫຍໍ້
ເປັນພຽງແຕ່ຕົວອັກສອນທໍາອິດ. ຖ້າບໍ່ມີຫົວຫນ່ວຍຖືກໃຫ້ແລະຕົວເລກແມ່ນບໍ່ໄດ້ເຊັນ, ຫນ່ວຍງານ
ຖືວ່າແມ່ນວິນາທີ.
ການປະຕິບັດນີ້ຕ້ອງການ Postgres 8.3 ຫຼືດີກວ່າ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນຖ້າການເຊື່ອມຕໍ່ໃດນຶ່ງບໍ່ເຄື່ອນໄຫວຢູ່ໃນທຸລະກຳເປັນເວລາຫຼາຍກວ່າ 15 ເທື່ອ
ວິນາທີ:
check_postgres_txn_idle --port=5432 --warning='15 ວິນາທີ'
ຕົວຢ່າງ 2: ໃຫ້ຄໍາເຕືອນຖ້າມີທຸລະກໍາ 50 ຫຼືຫຼາຍກວ່ານັ້ນ
check_postgres_txn_idle --port=5432 --warning='+50'
ຕົວຢ່າງ 3: ໃຫ້ການວິພາກວິຈານຖ້າມີ 5 ການເຊື່ອມຕໍ່ ຫຼືຫຼາຍກວ່ານັ້ນບໍ່ເຮັດວຽກຢູ່ໃນທຸລະກໍາຫຼາຍກວ່າ
ຫຼາຍກວ່າ 10 ວິນາທີ:
check_postgres_txn_idle --port=5432 --critical='5 ເປັນເວລາ 10 ວິນາທີ'
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນເວລາເປັນວິນາທີທີ່ທຸລະກໍາຢູ່ຊື່ໆທີ່ຍາວທີ່ສຸດ
ແລ່ນ. ແຖວທີສີ່ສົ່ງຄືນຊື່ຂອງຖານຂໍ້ມູນແລະຂໍ້ມູນອື່ນໆກ່ຽວກັບ
ທຸລະກໍາທີ່ຍາວທີ່ສຸດ.
txn_time
("symlink: check_postgres_txn_time") ກວດເບິ່ງໄລຍະເວລາຂອງທຸລະກໍາທີ່ເປີດຢູ່ໃນຫນຶ່ງຫຼືຫຼາຍກວ່ານັ້ນ.
ຖານຂໍ້ມູນ. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການຄໍາສັ່ງນີ້ຫຼາຍກວ່າຫນຶ່ງຄັ້ງຕໍ່ກຸ່ມຖານຂໍ້ມູນ.
ຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງໂດຍການນໍາໃຊ້ --ລວມ ແລະ --ຍົກເວັ້ນ ທາງເລືອກ. ເບິ່ງ "ພື້ນຖານ
ພາກສ່ວນການກັ່ນຕອງ" ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ. ເຈົ້າຂອງທຸລະກໍາສາມາດຖືກກັ່ນຕອງ, ໂດຍ
ການນໍາໃຊ້ຂອງ --includeuser ແລະ --excludeuser ທາງເລືອກ. ເບິ່ງພາກ "USER NAME FILTERING".
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມ.
ຄຸນຄ່າຫຼື --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນຫນ່ວຍງານຂອງເວລາ, ແລະຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້
(ບໍ່ມີຄ່າເລີ່ມຕົ້ນ). ຫົວໜ່ວຍທີ່ຖືກຕ້ອງແມ່ນ 'ວິນາທີ', 'ນາທີ', 'ຊົ່ວໂມງ' ຫຼື 'ມື້'. ແຕ່ລະຄົນອາດຈະເປັນ
ຂຽນເປັນຄໍານາມຫຼືຫຍໍ້ເປັນພຽງແຕ່ຕົວອັກສອນທໍາອິດ. ຖ້າບໍ່ມີຫົວຫນ່ວຍແມ່ນໃຫ້, ໄດ້
ຫນ່ວຍງານແມ່ນສົມມຸດວ່າເປັນວິນາທີ.
ການປະຕິບັດນີ້ຕ້ອງການ Postgres 8.3 ຫຼືດີກວ່າ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳວິຈານ ຖ້າທຸລະກຳໃດນຶ່ງເປີດຫຼາຍກວ່າ 10 ນາທີ:
check_postgres_txn_time --port=5432 --critical='10 ນາທີ'
ຕົວຢ່າງ 1: ເຕືອນຖ້າຜູ້ໃຊ້ 'warehouse' ມີທຸລະກໍາເປີດເກີນ 30 ວິນາທີ
check_postgres_txn_time --port-5432 --warning=30s --includeuser=warehouse
ສໍາລັບຜົນຜະລິດ MRTG, ຕອບເວລາສູງສຸດໃນວິນາທີທີ່ທຸລະກໍາໄດ້ເປີດຢູ່ໃນ
ແຖວທໍາອິດ. ແຖວທີສີ່ໃຫ້ຊື່ຂອງຖານຂໍ້ມູນ.
txn_wraparound
("symlink: check_postgres_txn_wraparound") ກວດເບິ່ງວ່າໃກ້ກັບການເຮັດທຸລະກໍາອັນໃດນຶ່ງ.
ຫຼືຖານຂໍ້ມູນຫຼາຍແມ່ນໄດ້ຮັບ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ຕົວເລືອກຊີ້ບອກຕົວເລກ
ຂອງທຸລະກໍາທີ່ເຮັດແລ້ວ, ແລະຈະຕ້ອງເປັນຈໍານວນບວກ. ຖ້າຫາກວ່າທາງເລືອກໃດຫນຶ່ງບໍ່ໄດ້ຮັບການໃຫ້, ໄດ້
ຄ່າເລີ່ມຕົ້ນຂອງ 1.3 ແລະ 1.4 ຕື້ແມ່ນຖືກນໍາໃຊ້. ບໍ່ຈໍາເປັນຕ້ອງດໍາເນີນການຄໍາສັ່ງນີ້ຫຼາຍ
ຫຼາຍກວ່າຫນຶ່ງຄັ້ງຕໍ່ກຸ່ມຖານຂໍ້ມູນ. ສໍາລັບການສົນທະນາລາຍລະອຽດເພີ່ມເຕີມຂອງຕົວເລກນີ້ແມ່ນຫຍັງ
ເປັນຕົວແທນແລະສິ່ງທີ່ຕ້ອງເຮັດກ່ຽວກັບມັນ, ກະລຸນາໄປຢ້ຽມຢາມຫນ້າ
<http://www.postgresql.org/docs/current/static/routine-vacuuming.html#ສູນຍາກາດສໍາລັບການຫໍ່ >
ການເຕືອນໄພແລະຄ່າທີ່ສໍາຄັນສາມາດມີຂີດກ້ອງໃນຈໍານວນສໍາລັບຄວາມສອດຄ່ອງ, ເປັນ Perl
ບໍ່
ຕົວຢ່າງ 1: ກວດເບິ່ງຄ່າເລີ່ມຕົ້ນສໍາລັບຖານຂໍ້ມູນ localhost
check_postgres_txn_wraparound --host=localhost
ຕົວຢ່າງ 2: ກວດເບິ່ງພອດ 6000 ແລະໃຫ້ຄວາມສຳຄັນເມື່ອ 1.7 ຕື້ທຸລະກຳຖືກຕີ:
check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000
ສໍາລັບຜົນຜະລິດ MRTG, ສົ່ງຄືນຈໍານວນການເຮັດທຸລະກໍາສູງສຸດສໍາລັບຖານຂໍ້ມູນທັງຫມົດໃນແຖວຫນຶ່ງ,
ໃນຂະນະທີ່ແຖວທີ 4 ຊີ້ບອກວ່າມັນເປັນຖານຂໍ້ມູນໃດ.
ສະບັບພາສາ
("symlink: check_postgres_version") ກວດເບິ່ງວ່າສະບັບທີ່ຕ້ອງການຂອງ Postgres ແມ່ນ
ແລ່ນ. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກ (ຕ້ອງການພຽງແຕ່ອັນດຽວ) ຕ້ອງມີຮູບແບບ
ທ or XYZ ບ່ອນທີ່ X ແມ່ນຕົວເລກສະບັບທີ່ສໍາຄັນ, Y ແມ່ນຕົວເລກສະບັບນ້ອຍ, ແລະ Z is
ການປັບປຸງ.
ຕົວຢ່າງ 1: ໃຫ້ຄຳເຕືອນຖ້າຖານຂໍ້ມູນໃນພອດ 5678 ບໍ່ແມ່ນເວີຊັນ 8.4.10:
check_postgres_version --port=5678 -w=8.4.10
ຕົວຢ່າງ 2: ໃຫ້ຄຳເຕືອນຖ້າຖານຂໍ້ມູນໃດໆຢູ່ໃນຮ່ອມພູ, ເມັດພືດ, ຫຼືແສງແດດບໍ່ແມ່ນ 8.3:
check_postgres_version -H ຮ່ອມພູ,ເມັດພືດ,ແສງແດດ --critical=8.3
ສໍາລັບຜົນຜະລິດ MRTG, ລາຍງານ 1 ຫຼື 0 ທີ່ຊີ້ບອກເຖິງຄວາມສໍາເລັດຫຼືຄວາມລົ້ມເຫລວໃນແຖວທໍາອິດ. ໄດ້
ແຖວທີສີ່ຊີ້ໃຫ້ເຫັນເຖິງສະບັບປະຈຸບັນ. ສະບັບຕ້ອງໄດ້ຮັບການສະຫນອງໃຫ້ໂດຍຜ່ານ "--mrtg"
ທາງເລືອກ.
wal_files
("symlink: check_postgres_wal_files") ກວດເບິ່ງວ່າມີໄຟລ໌ WAL ຫຼາຍປານໃດໃນ pg_xlog
ໄດເລກະທໍລີ, ເຊິ່ງຖືກພົບເຫັນຈາກຂອງທ່ານ data_directory, ບາງຄັ້ງເປັນສັນຍາລັກກັບຄົນອື່ນ
ແຜ່ນທາງດ້ານຮ່າງກາຍສໍາລັບເຫດຜົນການປະຕິບັດ. ການປະຕິບັດນີ້ຕ້ອງໄດ້ຮັບການດໍາເນີນການເປັນ superuser, ໃນຄໍາສັ່ງ
ເຂົ້າເຖິງເນື້ອໃນຂອງ pg_xlog ໄດເລກະທໍລີ. ສະບັບຕໍາ່ສຸດທີ່ເພື່ອນໍາໃຊ້ການປະຕິບັດນີ້ແມ່ນ
Postgres 8.1. ໄດ້ --ເຕືອນ ແລະ --ວິຈານ ທາງເລືອກແມ່ນພຽງແຕ່ຈໍານວນຂອງໄຟລ໌ໃນ
pg_xlog ໄດເລກະທໍລີ. ຕົວເລກອັນໃດທີ່ຈະກໍານົດນີ້ຈະແຕກຕ່າງກັນ, ແຕ່ຄໍາແນະນໍາທົ່ວໄປແມ່ນໃຫ້ໃສ່
ຕົວເລກທີ່ສູງກວ່າປົກກະຕິຢູ່ທີ່ນັ້ນເລັກນ້ອຍ, ເພື່ອຈັບບັນຫາກ່ອນໄວອັນຄວນ.
ໂດຍປົກກະຕິ, ໄຟລ໌ WAL ຖືກປິດແລະຫຼັງຈາກນັ້ນນໍາມາໃຊ້ໃຫມ່, ແຕ່ວ່າການເຮັດທຸລະກໍາເປີດທີ່ຍາວນານ, ຫຼື a
ມີຂໍ້ບົກພ່ອງ archive_command script, ອາດຈະເຮັດໃຫ້ Postgres ສ້າງໄຟລ໌ຫຼາຍເກີນໄປ. ໃນທີ່ສຸດ,
ອັນນີ້ຈະເຮັດໃຫ້ແຜ່ນທີ່ເຂົາເຈົ້າຢູ່ນັ້ນໝົດພື້ນທີ່, ໃນຈຸດທີ່ Postgres ຈະ
ປິດເຄື່ອງ.
ຕົວຢ່າງ 1: ກວດເບິ່ງວ່າຈໍານວນໄຟລ໌ WAL ແມ່ນ 20 ຫຼືນ້ອຍກວ່າຢູ່ໃນ host "pluto"
check_postgres_wal_files --host=pluto --critical=20
ສໍາລັບຜົນຜະລິດ MRTG, ລາຍງານຈໍານວນຂອງໄຟລ໌ WAL ໃນແຖວ 1.
rebuild_symlinks
rebuild_symlinks_force
ການປະຕິບັດນີ້ບໍ່ຮຽກຮ້ອງໃຫ້ມີການໂຕ້ຖຽງອື່ນ, ແລະບໍ່ເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນໃດໆ, ແຕ່ງ່າຍດາຍ
ສ້າງ symlinks ໃນໄດເລກະທໍລີປະຈຸບັນສໍາລັບແຕ່ລະການປະຕິບັດ, ໃນຮູບແບບ
check_postgres_. ຖ້າໄຟລ໌ມີຢູ່ແລ້ວ, ມັນຈະບໍ່ຖືກຂຽນທັບ. ຖ້າ
ການປະຕິບັດແມ່ນ rebuild_symlinks_force, ຫຼັງຈາກນັ້ນ symlinks ຈະຖືກຂຽນທັບ. ທາງເລືອກ
--symlinks ແມ່ນວິທີທີ່ສັ້ນກວ່າຂອງການເວົ້າວ່າ --action=rebuild_symlinks
BASIC ການຍື່ນ
ທາງເລືອກ --ລວມ ແລະ --ຍົກເວັ້ນ ສາມາດຖືກລວມເຂົ້າກັນເພື່ອຈໍາກັດສິ່ງທີ່ຖືກກວດສອບ,
ຂຶ້ນກັບການປະຕິບັດ. ຊື່ຂອງຖານຂໍ້ມູນສາມາດຖືກກັ່ນຕອງໃນເວລາທີ່ໃຊ້ຕໍ່ໄປນີ້
ການປະຕິບັດ: backends, database_size, locks, query_time, txn_idle, ແລະ txn_time. ຊື່ຂອງ
ການພົວພັນສາມາດຖືກກັ່ນຕອງໃນເວລາທີ່ໃຊ້ການປະຕິບັດຕໍ່ໄປນີ້: bloat, index_size,
table_size, relation_size, last_vacuum, last_autovacuum, last_analyze, ແລະ
last_autoanalyze. ຊື່ຂອງການຕັ້ງຄ່າສາມາດຖືກກັ່ນຕອງໃນເວລາທີ່ໃຊ້ settings_checksum
ການກະທຳ. ຊື່ຂອງລະບົບໄຟລ໌ສາມາດຖືກກັ່ນຕອງເມື່ອໃຊ້ຄຳສັ່ງ disk_space.
ຖ້າພຽງແຕ່ໃຫ້ທາງເລືອກລວມ, ຫຼັງຈາກນັ້ນພຽງແຕ່ລາຍການທີ່ກົງກັນເທົ່ານັ້ນຈະຖືກກວດສອບ.
ຢ່າງໃດກໍ່ຕາມ, ຖ້າໃຫ້ທັງສອງຍົກເວັ້ນແລະລວມ, ການຍົກເວັ້ນແມ່ນເຮັດກ່ອນ, ແລະການລວມ
ຫຼັງຈາກນັ້ນ, ເພື່ອຟື້ນຟູສິ່ງທີ່ອາດຈະຖືກຍົກເວັ້ນ. ທັງສອງ --ລວມ ແລະ --ຍົກເວັ້ນ ສາມາດເຮັດໄດ້
ໃຫ້ຫຼາຍຄັ້ງ, ແລະ/ຫຼື ເປັນລາຍການທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. A tilde ນໍາຫນ້າຈະກົງກັບ
ຕໍ່ໄປນີ້ຄໍາສັບຕ່າງໆເປັນການສະແດງອອກປົກກະຕິ.
ເພື່ອໃຫ້ກົງກັບ schema, ສິ້ນສຸດຄໍາຄົ້ນຫາທີ່ມີໄລຍະເວລາດຽວ. ສາມາດໃຊ້ tildes ນໍາ
ສໍາລັບ schemas ເຊັ່ນດຽວກັນ.
ຈົ່ງລະມັດລະວັງໃນເວລາໃຊ້ການກັ່ນຕອງ: ກົດລະບຽບການລວມຢູ່ໃນ backends, ສໍາລັບຕົວຢ່າງ, ອາດຈະ
ລາຍງານບໍ່ມີບັນຫາບໍ່ພຽງແຕ່ຍ້ອນວ່າຖານຂໍ້ມູນທີ່ກົງກັນບໍ່ມີ backends, ແຕ່ຍ້ອນວ່າທ່ານ
ສະກົດຊື່ຖານຂໍ້ມູນຜິດ!
ຕົວຢ່າງ:
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ມີຊື່ pg_class:
--include=pg_class
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ມີຕົວອັກສອນ 'pg_':
--include=~pg_
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ເລີ່ມຕົ້ນດ້ວຍ 'pg_':
--include=~^pg_
ບໍ່ລວມເອົາລາຍການທີ່ມີຊື່ວ່າ 'ທົດສອບ':
--exclude=test
ບໍ່ລວມທຸກລາຍການທີ່ມີການທົດສອບຕົວອັກສອນ:
--exclude=~test
ບໍ່ລວມທຸກລາຍການໃນ schema 'pg_catalog':
--exclude='pg_catalog.'
ບໍ່ລວມທຸກລາຍການທີ່ມີຕົວອັກສອນ 'ace', ແຕ່ອະນຸຍາດໃຫ້ລາຍການ 'faceoff':
--exclude=~ace --include=faceoff
ບໍ່ລວມທຸກລາຍການທີ່ເລີ່ມຕົ້ນດ້ວຍຕົວອັກສອນ 'pg_', ເຊິ່ງມີຕົວອັກສອນ 'slon' ຫຼື
ເຊິ່ງມີຊື່ວ່າ 'sql_settings' ຫຼື 'ສີຂຽວ'. ໂດຍສະເພາະກວດເບິ່ງລາຍການທີ່ມີຕົວອັກສອນ
'prod' ໃນຊື່ຂອງພວກເຂົາ, ແລະກວດເບິ່ງລາຍການທີ່ມີຊື່ 'pg_relname' ຕະຫຼອດເວລາ:
--exclude=~^pg_,~slon,sql_settings --exclude=green --include=~prod,pg_relname
ຜູ້ໃຊ້ NAME ການຍື່ນ
ທາງເລືອກ --includeuser ແລະ --excludeuser ສາມາດຖືກນໍາໃຊ້ໃນບາງການປະຕິບັດເພື່ອກວດກາເທົ່ານັ້ນ
ວັດຖຸຖານຂໍ້ມູນເປັນເຈົ້າຂອງໂດຍ (ຫຼືບໍ່ໄດ້ເປັນເຈົ້າຂອງ) ຫນຶ່ງຫຼືຫຼາຍຜູ້ໃຊ້. ອັນ --includeuser ທາງເລືອກ
trumps ສະເຫມີ --excludeuser ທາງເລືອກ. ທ່ານສາມາດໃຫ້ແຕ່ລະທາງເລືອກຫຼາຍກ່ວາຫນຶ່ງຄັ້ງສໍາລັບ
ຜູ້ໃຊ້ຫຼາຍຄົນ, ຫຼືທ່ານສາມາດໃຫ້ບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດ. ການປະຕິບັດທີ່ໃຊ້ໃນປັດຈຸບັນ
ທາງເລືອກເຫຼົ່ານີ້ແມ່ນ:
database_size
last_analyze
last_autoanalyze
Last_vacuum
last_autovacuum
query_time
relation_size
txn_time
ຕົວຢ່າງ:
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ເປັນເຈົ້າຂອງໂດຍຜູ້ໃຊ້ຊື່ greg:
--includeuser=greg
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ເປັນເຈົ້າຂອງໂດຍ watson ຫຼື crick:
--includeuser=watson,ຄຼິກ
ພຽງແຕ່ກວດເບິ່ງລາຍການທີ່ເປັນເຈົ້າຂອງໂດຍ crick, franklin, watson, ຫຼື wilkins:
--includeuser=watson --includeuser=franklin --includeuser=crick,wilkins
ກວດເບິ່ງລາຍການທັງຫມົດຍົກເວັ້ນສິ່ງທີ່ຂຶ້ນກັບຜູ້ໃຊ້ scott:
--excludeuser=scott
TEST MODE
ເພື່ອຊ່ວຍໃນການຕັ້ງຄ່າສິ່ງຕ່າງໆ, ໂຄງການນີ້ສາມາດດໍາເນີນການໃນ "ຮູບແບບການທົດສອບ" ໂດຍການລະບຸ
--ທົດສອບ ທາງເລືອກ. ນີ້ຈະປະຕິບັດການທົດສອບພື້ນຖານບາງຢ່າງເພື່ອໃຫ້ແນ່ໃຈວ່າຖານຂໍ້ມູນສາມາດເປັນ
ຕິດຕໍ່ພົວພັນ, ແລະວ່າຄວາມຕ້ອງການທາງສ່ວນຫນ້າຂອງການປະຕິບັດສະເພາະໃດຫນຶ່ງ, ເຊັ່ນ: ບໍ່ວ່າຈະເປັນຜູ້ໃຊ້
superuser, ຖ້າສະບັບຂອງ Postgres ແມ່ນໃຫມ່ພຽງພໍ, ແລະຖ້າ stats_row_level ຖືກເປີດໃຊ້.
ໃຊ້ check_postgres_locksp ອອນລາຍໂດຍໃຊ້ບໍລິການ onworks.net