ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

check_postgres_table_sizep - ออนไลน์ใน Cloud

เรียกใช้ check_postgres_table_sizep ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง check_postgres_table_sizep ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


check_postgres - สคริปต์ตรวจสอบ Postgres สำหรับ Nagios, MRTG, Cacti และอื่นๆ

เอกสารนี้อธิบาย check_postgres เวอร์ชัน 2.22.0

เรื่องย่อ


## สร้างการเชื่อมโยงทั้งหมด
check_postgres --symlinks

## ตรวจสอบการเชื่อมต่อกับฐานข้อมูล Postgres 'พลูโต':
check_postgres --action=connection --db=พลูโต

## สิ่งเดียวกัน แต่ใช้ symlink
check_postgres_connection --db=พลูโต

## เตือนถ้า > 100 ล็อค สำคัญถ้า > 200 หรือ > 20 พิเศษ
check_postgres_locks --warning=100 --critical="total=200:exclusive=20"

## แสดงจำนวนการเชื่อมต่อที่ไม่ได้ใช้งานในปัจจุบันบนพอร์ต 6543:
check_postgres_txn_idle --port=6543 --output=simple

## มีการดำเนินการและตัวเลือกอื่น ๆ อีกมากมาย โปรดอ่านต่อไป

สามารถติดตามข่าวสารและเอกสารล่าสุดได้ที่:
http://bucardo.org/check_postgres/

DESCRIPTION


check_postgres เป็นสคริปต์ Perl ที่รันการทดสอบต่างๆ มากมายเทียบกับอย่างน้อยหนึ่งรายการ
ฐานข้อมูล Postgres มันใช้โปรแกรม psql เพื่อรวบรวมข้อมูลและส่งออก
ผลลัพธ์ในรูปแบบใดรูปแบบหนึ่งจากสามรูปแบบ: Nagios, MRTG หรือแบบธรรมดา

เอาท์พุต โหมด
ผลลัพธ์สามารถเปลี่ยนแปลงได้โดยใช้ตัวเลือก "--output" เอาต์พุตเริ่มต้นคือ nagios
แม้ว่าสิ่งนี้สามารถเปลี่ยนแปลงได้ที่ด้านบนของสคริปต์หากคุณต้องการ ตัวเลือกปัจจุบัน
ทางเลือกคือ นากิออส, MRTGและ ง่าย. เพื่อหลีกเลี่ยงการป้อนอาร์กิวเมนต์เอาต์พุตแต่ละ
เวลา ประเภทของเอาต์พุตจะถูกตั้งค่าโดยอัตโนมัติหากไม่มีการกำหนดอาร์กิวเมนต์ --output และถ้า
ไดเร็กทอรีปัจจุบันมีตัวเลือกเอาต์พุตอย่างใดอย่างหนึ่งในชื่อ ตัวอย่างเช่น การสร้าง a
ไดเร็กทอรีชื่อ mrtg และเติมด้วย symlink ผ่านทาง --symlinks อาร์กิวเมนต์จะ
ตรวจสอบให้แน่ใจว่าการดำเนินการใด ๆ ที่เรียกใช้จากไดเร็กทอรีนั้นจะมีค่าเริ่มต้นเป็นเอาต์พุตของ "mrtg" เสมอ
เป็นทางลัดสำหรับ --output=simple คุณสามารถป้อน --simple ซึ่งจะแทนที่
เคล็ดลับการตั้งชื่อไดเรกทอรี

Nagios เอาท์พุต

รูปแบบเอาต์พุตเริ่มต้นสำหรับ Nagios ซึ่งเป็นข้อมูลบรรทัดเดียวพร้อมด้วย
สี่รหัสทางออกเฉพาะ:

0 (ตกลง)
1 (คำเตือน)
2 (วิกฤต)
3 (ไม่ทราบ)

บรรทัดผลลัพธ์เป็นหนึ่งในคำข้างต้น ทวิภาค และคำอธิบายสั้น ๆ ของอะไร
ถูกวัด ข้อมูลสถิติเพิ่มเติม รวมทั้งเวลาทั้งหมดที่คำสั่ง
เอาออกได้เช่นกัน: ดูเอกสารเกี่ยวกับข้อโต้แย้ง --โชว์เพอร์ฟ,
--เพอร์ฟลิมิตและ --เวลาแสดง.

รฟม เอาท์พุต

เอาต์พุต MRTG มีสี่บรรทัด โดยบรรทัดแรกให้หมายเลข . เดียวเสมอ
ความสำคัญ หากเป็นไปได้ ตัวเลขนี้แทนค่าจริง เช่น จำนวน
ไบต์ แต่อาจเป็น 1 หรือ 0 สำหรับการกระทำที่คืนค่าเฉพาะ "จริง" หรือ "เท็จ" เช่น
เป็น check_postgres_version บรรทัดที่สองเป็นค่าสถานะเพิ่มเติมและใช้สำหรับ .เท่านั้น
การกระทำบางอย่าง บรรทัดที่สามหมายถึง "เวลาทำงาน" และไม่ได้ใช้ บรรทัดที่สี่คือ a
คำอธิบายและมักจะระบุชื่อของฐานข้อมูล สถิติจากบรรทัดแรก
ถูกดึงออกมาแต่อาจแตกต่างกันขึ้นอยู่กับการกระทำ

การดำเนินการบางอย่างยอมรับตัวเลือก --mrtg อาร์กิวเมนต์เพื่อควบคุมผลลัพธ์เพิ่มเติม

ดูเอกสารประกอบการดำเนินการแต่ละอย่างสำหรับรายละเอียดเกี่ยวกับเอาต์พุต MRTG ที่แน่นอนสำหรับแต่ละรายการ

ง่าย เอาท์พุต

เอาต์พุตอย่างง่ายเป็นเพียงเวอร์ชันที่ถูกตัดทอนของ MRTG และส่งคืน
หมายเลขแรกและไม่มีอะไรอื่น สิ่งนี้มีประโยชน์มากเมื่อคุณต้องการตรวจสอบสถานะ
ของบางสิ่งบางอย่างโดยไม่คำนึงถึงเกณฑ์ใด ๆ คุณสามารถแปลงเอาต์พุตตัวเลขโดย
ต่อท้าย KB, MB, GB, TB หรือ EB ไปยังอาร์กิวเมนต์เอาต์พุต ตัวอย่างเช่น

--output=ง่ายMB

cacti เอาท์พุต

เอาต์พุต Cacti ประกอบด้วยรายการอย่างน้อยหนึ่งรายการในบรรทัดเดียวกันโดยใช้ชื่อง่ายๆ a
โคลอนแล้วตามด้วยตัวเลข ในขณะนี้ การดำเนินการเดียวที่มีเอาต์พุต Cacti ที่ชัดเจนคือ
'dbstats' และการใช้ตัวเลือก --output ในกรณีนี้ไม่จำเป็นต้องใช้เนื่องจาก Cacti เท่านั้น
ผลลัพธ์สำหรับการดำเนินการนี้ สำหรับการกระทำอื่นๆ การใช้ --simple ก็เพียงพอที่จะทำให้ Cacti
มีความสุข.

ฐานข้อมูล การเชื่อมต่อ OPTIONS


การดำเนินการทั้งหมดยอมรับชุดตัวเลือกฐานข้อมูลทั่วไป

-H ชื่อ or --โฮสต์=ชื่อ
เชื่อมต่อกับโฮสต์ที่ระบุโดย NAME สามารถเป็นรายชื่อที่คั่นด้วยเครื่องหมายจุลภาค
อนุญาตให้ใช้อาร์กิวเมนต์โฮสต์หลายรายการ หากไม่มีโฮสต์ ค่าเริ่มต้นจะเป็น "PGHOST"
ตัวแปรสภาพแวดล้อมหรือไม่มีโฮสต์เลย (ซึ่งบ่งชี้ว่าใช้ซ็อกเก็ต Unix ในเครื่อง)
คุณอาจใช้ "--dbhost"

-p PORT or --port=พอร์ต
เชื่อมต่อโดยใช้หมายเลข PORT ที่ระบุ สามารถเป็นรายการ port . ที่คั่นด้วยเครื่องหมายจุลภาค
อนุญาตให้ใช้หมายเลขและอาร์กิวเมนต์พอร์ตหลายรายการ หากไม่ได้ระบุหมายเลขพอร์ต ค่าเริ่มต้น
ไปยังตัวแปรสภาพแวดล้อม "PGPORT" หากไม่ได้ตั้งค่าไว้ จะมีค่าเริ่มต้นเป็น 5432 คุณอาจ
ยังใช้ "--dbport"

-ฐานข้อมูล ชื่อ or --dbname=ชื่อ
ระบุฐานข้อมูลที่จะเชื่อมต่อ สามารถเป็นรายชื่อที่คั่นด้วยเครื่องหมายจุลภาค และ
อนุญาตให้ใช้อาร์กิวเมนต์ dbname หลายรายการ หากไม่มีตัวเลือก dbname ไว้ ค่าเริ่มต้นจะเป็น
ตัวแปรสภาพแวดล้อม "PGDATABASE" หากไม่ได้ตั้งค่าไว้ จะมีค่าเริ่มต้นเป็น 'postgres'
ถ้า psql เป็นเวอร์ชัน 8 ขึ้นไป และ 'template1' เป็นอย่างอื่น

-u USERNAME or --dbuser=ชื่อผู้ใช้
ชื่อของผู้ใช้ฐานข้อมูลที่จะเชื่อมต่อเป็น สามารถเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคของ
ชื่อผู้ใช้และอาร์กิวเมนต์ dbuser หลายรายการได้รับอนุญาต หากไม่ได้จัดเตรียมไว้ให้ก็
ค่าเริ่มต้นเป็นตัวแปรสภาพแวดล้อม "PGUSER" มิฉะนั้นจะมีค่าเริ่มต้นเป็น 'postgres'

--dbpass=รหัสผ่าน
ระบุรหัสผ่านเพื่อเชื่อมต่อกับฐานข้อมูลด้วย การใช้ตัวเลือกนี้เป็นอย่างมาก
ท้อแท้ ควรใช้ไฟล์ .pgpass หรือ pg_service.conf

--dbservice=ชื่อ
ชื่อของบริการภายในไฟล์ pg_service.conf ก่อนเวอร์ชัน 9.0 ของ
Postgres นี่เป็นไฟล์สากล ซึ่งมักพบใน /etc/pg_service.conf ถ้าคุณคือ
ใช้ Postgres เวอร์ชัน 9.0 ขึ้นไป คุณสามารถใช้ไฟล์ ".pg_service.conf" ใน
โฮมไดเร็กทอรีของผู้ใช้ที่รันสคริปต์ เช่น nagios

ไฟล์นี้มีรายการตัวเลือกการเชื่อมต่ออย่างง่าย นอกจากนี้คุณยังสามารถส่งเพิ่มเติม
ข้อมูลเมื่อใช้ตัวเลือกนี้ เช่น --dbservice="maindatabase sslmode=require"

เอกสารประกอบสำหรับไฟล์นี้สามารถพบได้ที่
http://www.postgresql.org/docs/current/static/libpq-pgservice.html

ตัวเลือกการเชื่อมต่อฐานข้อมูลสามารถจัดกลุ่มได้: --host=ก,ข --host=ค --พอร์ต=1234
--พอร์ต=3344 จะเชื่อมต่อกับ a-1234, b-1234 และ c-3344 โปรดทราบว่าเมื่อตั้งค่าแล้ว option
จนกว่าจะมีการเปลี่ยนแปลงอีกครั้ง

ตัวอย่าง:

--โฮสต์=a,b --พอร์ต=5433 --db=c
เชื่อมต่อสองครั้งกับพอร์ต 5433 โดยใช้ฐานข้อมูล c เพื่อโฮสต์ a และ b: a-5433-c b-5433-c

--โฮสต์=a,b --พอร์ต=5433 --db=c,d
เชื่อมต่อสี่ครั้ง: a-5433-c a-5433-d b-5433-c b-5433-d

--โฮสต์=a,b --โฮสต์=foo --พอร์ต=1234 --พอร์ต=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 แต่แทนที่พอร์ต

อื่น ๆ OPTIONS


ตัวเลือกอื่น ๆ ได้แก่ :

--การกระทำ=ชื่อ
ระบุว่าเรากำลังดำเนินการอะไรอยู่ จำเป็นเว้นแต่จะใช้ไฟล์ที่มีการเชื่อมโยงกัน ซึ่ง
กรณีที่ชื่อไฟล์ถูกใช้เพื่อค้นหาการกระทำ

--คำเตือน=VAL or -w VAL
ตั้งค่าขีดจำกัดที่การแจ้งเตือนเริ่มทำงาน ตัวเลือกที่ถูกต้องสำหรับสิ่งนี้
ตัวเลือกขึ้นอยู่กับการกระทำที่ใช้

--สำคัญ = VAL or -c VAL
ตั้งค่าขีดจำกัดของการแจ้งเตือนที่สำคัญ ตัวเลือกที่ถูกต้องสำหรับสิ่งนี้
ตัวเลือกขึ้นอยู่กับการกระทำที่ใช้

-t VAL or --หมดเวลา=VAL
ตั้งค่าการหมดเวลาเป็นวินาทีหลังจากที่สคริปต์จะยกเลิกสิ่งที่ทำอยู่และ
ส่งคืนสถานะ UNKNOWN การหมดเวลาเป็นไปตามคลัสเตอร์ Postgres ไม่ใช่สำหรับทั้งหมด
สคริปต์ ค่าเริ่มต้นคือ 10; หน่วยเป็นวินาทีเสมอ

--สมมติโหมดสแตนด์บาย
หากระบุไว้ ก่อนอื่นให้ตรวจสอบว่าเซิร์ฟเวอร์อยู่ในโหมดสแตนด์บายหรือไม่ (--datadir
จำเป็น) ถ้าใช่ การตรวจสอบทั้งหมดที่ต้องใช้การสืบค้น SQL จะถูกละเว้นและ "Server
ในโหมดสแตนด์บาย" ที่มีสถานะตกลงจะถูกส่งคืนแทน

ตัวอย่าง:

postgres@db$./check_postgres --action=version --warning=8.1 --datadir /var/lib/postgresql/8.3/main/ --assume-standby-mode
POSTGRES_VERSION ตกลง: เซิร์ฟเวอร์อยู่ในโหมดสแตนด์บาย | เวลา=0.00

--สมมติผลิตภัณฑ์
หากระบุไว้ ให้ตรวจสอบว่าเซิร์ฟเวอร์ทำงานในโหมดใช้งานจริงหรือไม่ (--datadir is required)
ตัวเลือกนี้เกี่ยวข้องเฉพาะกับ ("symlink: check_postgres_checkpoint")

ตัวอย่าง:

postgres@db$./check_postgres --action=จุดตรวจสอบ --datadir /var/lib/postgresql/8.3/main/ --assume-prod
POSTGRES_CHECKPOINT ตกลง: ด่านสุดท้ายคือ 72 วินาทีที่แล้ว | อายุ=72;;300 โหมด=อาจารย์

-h or --ช่วยด้วย
แสดงหน้าจอความช่วยเหลือพร้อมสรุปการดำเนินการและตัวเลือกทั้งหมด

--ชาย
แสดงคู่มือทั้งหมด

-V or --รุ่น
แสดงเวอร์ชันปัจจุบัน

-v or --รายละเอียด
ตั้งค่าระดับความฟุ่มเฟือย สามารถเรียกได้มากกว่าหนึ่งครั้งเพื่อเพิ่มระดับ ตั้งเป็น
สามหรือสูงกว่า (กล่าวคือ การออก "-v -v -v") จะเปิดข้อมูลการดีบัก
สำหรับโปรแกรมนี้ซึ่งถูกส่งไปยัง stderr

--showperf=VAL
กำหนดว่าเราส่งออกข้อมูลประสิทธิภาพเพิ่มเติมในรูปแบบ Nagios มาตรฐานหรือไม่ (ที่ end
ของ string หลังสัญลักษณ์ไพพ์ โดยใช้ name=value) VAL ควรเป็น 0 หรือ 1 ค่าเริ่มต้น
คือ 1 จะมีผลเฉพาะเมื่อใช้โหมดเอาต์พุต Nagios

--perflimit=ฉัน
กำหนดขีดจำกัดจำนวนรายการที่น่าสนใจที่จะรายงานกลับเมื่อใช้คำสั่ง
นักแสดง ตัวเลือก. สิ่งนี้มีผลเฉพาะกับการกระทำที่ส่งกลับจำนวนมาก
รายการเช่น ตาราง_ขนาด. ค่าเริ่มต้นคือ 0 หรือไม่จำกัด ระวังเมื่อใช้สิ่งนี้
กับ --รวม or --ไม่รวม ตัวเลือก เนื่องจากข้อจำกัดเหล่านั้นเสร็จสิ้นแล้ว หลังจาก
มีการเรียกใช้การสืบค้นข้อมูล ดังนั้นขีดจำกัดของคุณอาจไม่รวมรายการที่คุณต้องการ ใช้เวลาเท่านั้น
มีผลหากใช้โหมดเอาต์พุต Nagios

--เวลาฉาย=VAL
กำหนดว่าเวลาที่ใช้ในการเรียกใช้แต่ละแบบสอบถามจะแสดงในผลลัพธ์หรือไม่ VAL ควรเป็น 0
หรือ 1. ค่าเริ่มต้นคือ 1. ไม่มีผลเว้นแต่ นักแสดง เปิดอยู่ จะมีผลถ้าใช้ .เท่านั้น
โหมดเอาต์พุต Nagios

--ทดสอบ
เปิดใช้งานโหมดการทดสอบ ดูส่วน "โหมดทดสอบ" ด้านล่าง

--PGBINDIR=เส้นทาง
บอกสคริปต์ว่าจะหาไบนารี psql ได้ที่ไหน มีประโยชน์ถ้าคุณมีมากกว่าหนึ่ง
เวอร์ชันของไฟล์สั่งการ PostgreSQL ในระบบของคุณ หรือหากไม่มีอยู่ใน your
เส้นทาง. โปรดทราบว่าตัวเลือกนี้เป็นตัวพิมพ์ใหญ่ทั้งหมด โดยค่าเริ่มต้น ตัวเลือกนี้คือ ไม่
อนุญาตให้. หากต้องการเปิดใช้งาน คุณต้องเปลี่ยน $NO_PSQL_OPTION ใกล้กับด้านบนสุดของสคริปต์
เป็น 0 หลีกเลี่ยงการใช้ตัวเลือกนี้ถ้าทำได้ และใช้ตัวแปรสภาพแวดล้อมแทน
ค หรือตัวแปร $PGBINDIR แบบฮาร์ดโค้ด ซึ่งอยู่ใกล้กับด้านบนสุดของสคริปต์เพื่อตั้งค่า
เส้นทางไปยัง PostgreSQL ที่จะใช้

--PSQL=เส้นทาง
(เลิกใช้, นี้ ตัวเลือก อาจ be ลบออก in a อนาคต ปล่อย!) บอกสคริปต์ว่า
เพื่อค้นหาโปรแกรม psql มีประโยชน์ถ้าคุณมี psql . มากกว่าหนึ่งเวอร์ชัน
เรียกใช้งานได้บนระบบของคุณ หรือหากไม่มีโปรแกรม psql ในพาธของคุณ โปรดทราบว่าสิ่งนี้
ตัวเลือกเป็นตัวพิมพ์ใหญ่ทั้งหมด โดยค่าเริ่มต้น ตัวเลือกนี้คือ ไม่ อนุญาตให้. หากต้องการเปิดใช้งาน คุณ
ต้องเปลี่ยน $NO_PSQL_OPTION ใกล้กับด้านบนของสคริปต์เป็น 0 หลีกเลี่ยงการใช้สิ่งนี้
ตัวเลือกถ้าคุณทำได้และแทนที่ตำแหน่ง psql ของคุณอย่างหนักในตัวแปร $PSQL
ใกล้ส่วนบนของสคริปต์ด้วย

--symlinks
สร้างการเชื่อมโยงไปยังโปรแกรมหลักสำหรับแต่ละการกระทำ

--เอาท์พุท=VAL
กำหนดรูปแบบของเอาต์พุตสำหรับใช้ในโปรแกรมต่างๆ ค่าเริ่มต้นคือ
'นาจิออส' ตัวเลือกที่ใช้ได้คือ 'nagios', 'mrtg', 'simple' และ 'cacti'

--mrtg=VAL
ใช้สำหรับ MRTG หรือเอาต์พุตธรรมดาเท่านั้น สำหรับการดำเนินการบางอย่าง

--debugoutput=VAL
ส่งออกสตริงที่แน่นอนที่ส่งคืนโดย psql เพื่อใช้ในการดีบัก ค่าเป็นหนึ่งหรือ
ตัวอักษรมากขึ้น ซึ่งกำหนดว่าผลลัพธ์จะแสดงหรือไม่ โดยที่ 'a' = all, 'c'
= วิกฤติ 'w' = คำเตือน 'o' = ตกลง และ 'u' = ไม่ทราบ สามารถรวมตัวอักษรได้

--get_method=VAL
อนุญาตให้ระบุวิธีที่ใช้ในการดึงข้อมูลสำหรับ "new_version_cp"
ตรวจสอบ "new_version_pg", "new_version_bc", "new_version_box" และ "new_version_tnm"
พยายามใช้โปรแกรมต่อไปนี้เพื่อดึงข้อมูลจากเว็บ: GET
wget, ดึงข้อมูล, ม้วนงอ, คม, ลิงค์ เพื่อบังคับให้ใช้เพียงอันเดียว (และลบ
ค่าโสหุ้ยของการลองอย่างอื่นทั้งหมดจนกระทั่งหนึ่งในผลงานเหล่านั้น) ป้อนชื่อใดชื่อหนึ่งเป็น
อาร์กิวเมนต์เพื่อ get_method ตัวอย่างเช่น กล่อง BSD อาจป้อนบรรทัดต่อไปนี้ใน
ไฟล์ ".check_postgresrc" ของพวกเขา:

get_method=ดึงข้อมูล

--ภาษา=VAL
ตั้งค่าภาษาที่จะใช้สำหรับข้อความที่ส่งออกทั้งหมด โดยปกติสิ่งนี้จะถูกตรวจพบโดย
ตรวจสอบตัวแปรสภาพแวดล้อม LC_ALL, LC_MESSAGES และ LANG แต่ตั้งค่านี้
ตัวเลือกจะแทนที่การตรวจจับดังกล่าว

การกระทำ


สคริปต์เรียกใช้การดำเนินการอย่างน้อยหนึ่งรายการ สามารถทำได้ด้วยแฟล็ก --action หรือ by
โดยใช้ symlink ไปยังไฟล์หลักที่มีชื่อของการกระทำอยู่ภายใน สำหรับ
ตัวอย่างเช่น ในการเรียกใช้การกระทำ "timesync" คุณอาจใช้ข้อใดข้อหนึ่งต่อไปนี้

check_postgres --action=timesync

หรือใช้โปรแกรมชื่อ:

check_postgres_timesync

symlink ทั้งหมดจะถูกสร้างขึ้นสำหรับคุณในไดเร็กทอรีปัจจุบันหากใช้ตัวเลือก --symlinks

perl check_postgres --symlinks

หากชื่อไฟล์มีอยู่แล้วจะไม่ถูกเขียนทับ หากไฟล์นั้นมีอยู่และเป็น
symlink คุณสามารถบังคับให้เขียนทับได้โดยใช้ "--action=build_symlinks_force"

การดำเนินการส่วนใหญ่ใช้ a --คำเตือน และ --วิกฤต ตัวเลือกระบุว่าเราเปลี่ยนจุดไหน
จากตกลงเป็นคำเตือนและประเด็นใดที่เราไปที่ CRITICAL โปรดทราบว่าเนื่องจากวิกฤตคือ
ตรวจสอบก่อนเสมอ การตั้งเตือนให้เท่ากับวิกฤตเป็นวิธีที่ได้ผล
ปิดคำเตือนและให้คำวิจารณ์เสมอ

การดำเนินการที่รองรับในปัจจุบันคือ:

archive_ready
("symlink: check_postgres_archive_ready") ตรวจสอบจำนวนไฟล์ WAL ที่มีนามสกุล .พร้อม
มีอยู่ใน pg_xlog/archive_status ไดเร็กทอรีซึ่งพบจาก your data_directory.
การดำเนินการนี้ต้องเรียกใช้ในฐานะ superuser เพื่อเข้าถึงเนื้อหาของ
pg_xlog/archive_status ไดเร็กทอรี เวอร์ชันขั้นต่ำที่จะใช้การดำเนินการนี้คือ Postgres 8.1
พื้นที่ --คำเตือน และ --วิกฤต ตัวเลือกเป็นเพียงตัวเลขของ .พร้อม ไฟล์ใน
pg_xlog/archive_status ไดเร็กทอรี โดยปกติ ค่าเหล่านี้ควรต่ำ โดยเปิด
กลไกการเก็บถาวร เรามักจะต้องการให้ไฟล์ WAL เก็บถาวรโดยเร็วที่สุด

หากคำสั่ง archive ล้มเหลว จำนวน WAL ใน your pg_xlog ไดเรกทอรีจะเติบโตจนถึง
ทำให้พื้นที่ดิสก์หมดและบังคับให้ PostgreSQL หยุดทำงานทันที

ตัวอย่างที่ 1: ตรวจสอบว่าจำนวนไฟล์ WAL ที่พร้อมใช้งานคือ 10 หรือน้อยกว่าบนโฮสต์ "พลูโต"

check_postgres_archive_ready --host=พลูโต --critical=10

สำหรับเอาต์พุต MRTG รายงานจำนวนไฟล์ WAL ที่พร้อมใช้งานในบรรทัดที่ 1

autovac_freeze
("symlink: check_postgres_autovac_freeze") ตรวจสอบว่าแต่ละฐานข้อมูลอยู่ใกล้กับ
โพสต์เกรส autovacuum_freeze_max_age การตั้งค่า การดำเนินการนี้จะใช้ได้เฉพาะกับฐานข้อมูล
เวอร์ชัน 8.2 หรือสูงกว่า NS --คำเตือน และ --วิกฤต ตัวเลือกควรแสดงเป็น
เปอร์เซ็นต์ 'อายุ' ของธุรกรรมในแต่ละฐานข้อมูลเปรียบเทียบกับ
autovacuum_freeze_max_age การตั้งค่า (200 ล้านโดยค่าเริ่มต้น) เพื่อสร้างการปัดเศษ
เปอร์เซ็นต์ ค่าเริ่มต้นคือ ลด 90% เพื่อเป็นอุทาหรณ์และ ลด 95% สำหรับการวิจารณ์ ฐานข้อมูล
สามารถกรองได้โดยใช้ปุ่ม --รวม และ --ไม่รวม ตัวเลือก. ดู "การกรองพื้นฐาน"
สำหรับรายละเอียดเพิ่มเติม

ตัวอย่างที่ 1: แจ้งเตือนเมื่อฐานข้อมูลใด ๆ บนพอร์ต 5432 สูงกว่า 97%

check_postgres_autovac_freeze --port=5432 --warning="97%"

สำหรับการส่งออก MRTG เปอร์เซ็นต์โดยรวมสูงสุดจะรายงานในบรรทัดแรก และค่า
มีการรายงานอายุสูงสุดในบรรทัดที่สอง ฐานข้อมูลทั้งหมดที่มีเปอร์เซ็นต์จาก
บรรทัดแรกจะถูกรายงานในบรรทัดที่สี่ คั่นด้วยสัญลักษณ์ไปป์

แบ็กเอนด์
("symlink: check_postgres_backends") ตรวจสอบจำนวนการเชื่อมต่อปัจจุบันสำหรับหนึ่งหรือ
ฐานข้อมูลมากขึ้นและเลือกที่จะเปรียบเทียบกับจำนวนสูงสุดที่อนุญาตซึ่งกำหนดโดย
ตัวแปรการกำหนดค่า Postgres max_connections. --คำเตือน และ --วิกฤต ตัวเลือก
สามารถมีรูปแบบใดรูปแบบหนึ่งจากสามรูปแบบ ขั้นแรก ให้ตัวเลขอย่างง่าย ซึ่งแทนค่า
จำนวนการเชื่อมต่อที่จะได้รับการแจ้งเตือน ตัวเลือกนี้ไม่ใช้ the
max_connections การตั้งค่า ประการที่สอง สามารถระบุเปอร์เซ็นต์ของการเชื่อมต่อที่มีได้
ประการที่สาม สามารถให้จำนวนลบซึ่งแสดงถึงจำนวนการเชื่อมต่อที่เหลือ
จนกระทั่ง max_connections ถึง. ค่าเริ่มต้นสำหรับ --คำเตือน และ --วิกฤต เป็น
'90%' และ '95%' คุณยังสามารถกรองฐานข้อมูลโดยใช้ปุ่ม --รวม และ --ไม่รวม
ตัวเลือก. ดูส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม

หากต้องการดูเฉพาะกระบวนการที่ไม่ได้ใช้งาน คุณสามารถใช้ปุ่ม --นอยด์ การโต้แย้ง. โปรดทราบว่าผู้ใช้คุณ
กำลังเชื่อมต่อตามที่ต้องเป็น superuser เพื่อให้ทำงานได้อย่างถูกต้อง

ตัวอย่างที่ 1: แจ้งเตือนเมื่อจำนวนการเชื่อมต่อบนโฮสต์ quirm ถึง 120 และ a
สำคัญถ้ามันถึง 150

check_postgres_backends --host=quirm --warning=120 --critical=150

ตัวอย่างที่ 2: ให้ความสำคัญเมื่อเราตั้งค่า max_connections ถึง 75% บนโฮสต์
lancre หรือ lancre2

check_postgres_backends --warning='75%' --critical='75%' --host=lancre, lancre2

ตัวอย่างที่ 3: ให้คำเตือนเมื่อโฮสต์เชื่อมต่อเหลือเพียง 10 ช่องเท่านั้น
พลาสมิดและวิกฤตเมื่อเราเหลือเพียง 5 เท่านั้น

check_postgres_backends --warning=-10 --critical=-5 --host=พลาสมิด

ตัวอย่างที่ 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 จำนวนการเชื่อมต่อจะถูกรายงานในบรรทัดแรกและบรรทัดที่สี่
บรรทัดให้ชื่อของฐานข้อมูล บวกกับ maximum_connections ปัจจุบัน ถ้ามากกว่า
มีการสอบถามฐานข้อมูลหนึ่งฐานข้อมูล ฐานข้อมูลที่มีจำนวนการเชื่อมต่อสูงสุดคือเอาต์พุต

บวม
("symlink: check_postgres_bloat") ตรวจสอบปริมาณการขยายในตารางและดัชนี (บวม
โดยทั่วไปคือจำนวนพื้นที่ว่างที่ไม่ได้ใช้งานซึ่งถูกนำไปใช้ในตารางหรือดัชนี พื้นที่นี้คือ
มักจะถูกเรียกคืนโดยใช้คำสั่ง VACUUM) การดำเนินการนี้ต้องใช้ stats
คอลเลกชันถูกเปิดใช้งานบนฐานข้อมูลเป้าหมาย และต้องการให้ ANALYZE รัน
บ่อย. NS --รวม และ --ไม่รวม สามารถใช้ตัวเลือกเพื่อกรองตารางที่ต้องการ
ดูที่. ดูส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม

พื้นที่ --คำเตือน และ --วิกฤต ตัวเลือกสามารถระบุเป็นขนาด เปอร์เซ็นต์ หรือทั้งสองอย่าง ถูกต้อง
หน่วยขนาด ได้แก่ ไบต์ กิโลไบต์ เมกะไบต์ กิกะไบต์ เทราไบต์ เอ็กซาไบต์ เพตาไบต์ และ
เซตาไบต์ คุณสามารถย่อทั้งหมดที่มีตัวอักษรตัวแรก รายการที่ไม่มีหน่วยคือ
ถือว่าเป็น 'ไบต์' ค่าเริ่มต้นคือ '1 GB' และ '5 GB' ค่าแสดงถึง
จำนวน "ไบต์ที่เสีย" หรือความแตกต่างระหว่างสิ่งที่ตารางใช้จริงกับ
ดัชนี และสิ่งที่เราคำนวณว่ามันควรจะเป็น

โปรดทราบว่าการดำเนินการนี้มีค่าฮาร์ดโค้ดสองค่าเพื่อหลีกเลี่ยงการเตือนที่ผิดพลาดในอุปกรณ์ที่เล็กกว่า
ความสัมพันธ์. ตารางต้องมีอย่างน้อย 10 หน้า และจัดทำดัชนีอย่างน้อย 15 หน้าก่อนที่จะเป็น
พิจารณาโดยการทดสอบนี้ หากคุณต้องการปรับค่าเหล่านี้จริงๆ คุณสามารถมองหา
ตัวแปร $MINPAGES และ $มินิเพจ ที่ด้านบนของรูทีนย่อย "check_bloat" เหล่านี้
ค่าจะถูกละเว้นหากทั้ง --ไม่รวม or --รวม ถูกนำมาใช้.

แสดงเฉพาะความสัมพันธ์ที่ป่องที่สุด 10 อันดับแรกเท่านั้น คุณสามารถเปลี่ยนหมายเลขนี้ได้โดยใช้ปุ่ม
--เพอร์ฟลิมิต ตัวเลือกเพื่อกำหนดวงเงินของคุณเอง

สคีมาชื่อ 'information_schema' ไม่รวมอยู่ในการทดสอบนี้ เนื่องจากเป็นเพียงตารางเดียว
ประกอบด้วยมีขนาดเล็กและไม่เปลี่ยนแปลง

โปรดทราบว่าค่าที่คำนวณโดยการกระทำนี้ไม่แม่นยำ และควรใช้เป็น
เป็นแนวทางเท่านั้น มีความพยายามอย่างมากในการประมาณขนาดโต๊ะที่ถูกต้อง แต่ใน
ท้ายที่สุดมันเป็นเพียงการประมาณการ ขนาดดัชนีที่ถูกต้องนั้นคาดเดาได้มากกว่า
ขนาดโต๊ะที่ถูกต้อง แต่ทั้งคู่ควรให้แนวคิดคร่าวๆ ว่าสิ่งที่ป่องเป็นอย่างไร

ตัวอย่างที่ 1: เตือนหากตารางใดๆ บนพอร์ต 5432 เกิน 100 MB ป่อง และวิกฤตหากมากกว่า 200
MB

check_postgres_bloat --port=5432 --warning='100 M' --critical='200 M'

ตัวอย่างที่ 2: ให้ความสำคัญหากตาราง 'คำสั่ง' บนโฮสต์ 'sami' มีการขยายตัวมากกว่า 10 เมกะไบต์

check_postgres_bloat --host=sami --include=orders --critical='10 MB'

ตัวอย่างที่ 3: ให้ความสำคัญหากตาราง 'q4' บนฐานข้อมูล 'ยอดขาย' ป่องเกิน 50%

check_postgres_bloat --db=sales --include=q4 --critical='50%'

ตัวอย่างที่ 4: ให้ตารางที่สำคัญกว่า 20% ป่อง และ มีพื้นที่มากกว่า 150 MB:

check_postgres_bloat --port=5432 --critical='20% and 150 M'

ตัวอย่างที่ 5: ให้ตารางที่สำคัญกว่า 40% ป่อง or มีพื้นที่มากกว่า 500 MB:

check_postgres_bloat --port=5432 --warning='500 M หรือ 40%'

สำหรับเอาต์พุต MRTG บรรทัดแรกให้จำนวนไบต์ที่เสียเปล่าสูงสุดสำหรับตาราง
และบรรทัดที่สองให้จำนวนไบต์ที่สูญเปล่าสูงสุดสำหรับดัชนี ที่สี่
บรรทัดให้ชื่อฐานข้อมูล ชื่อตาราง และข้อมูลชื่อดัชนี ถ้าคุณต้องการ
ส่งออกอัตราส่วนการขยายตัวแทน (ความสัมพันธ์มีขนาดใหญ่กว่าเมื่อเปรียบเทียบกับอย่างไร
ใหญ่ควรเป็น) เพียงแค่ส่งใน "--mrtg=ratio"

ด่าน
("symlink: check_postgres_checkpoint") กำหนดระยะเวลาที่ด่านสุดท้ายมี
ถูกเรียกใช้ ต้องรันบนเซิร์ฟเวอร์เดียวกันกับฐานข้อมูลที่กำลังตรวจสอบ (เช่น
-h แฟล็กจะไม่ทำงาน) การตรวจสอบนี้มีขึ้นเพื่อเรียกใช้บนเซิร์ฟเวอร์ "สแตนด์บายที่อบอุ่น" นั่นคือ
กำลังประมวลผลไฟล์ WAL ที่จัดส่งและมีไว้เพื่อตรวจสอบว่า warm standby ของคุณคือ
'อบอุ่น' อย่างแท้จริง ต้องตั้งค่าไดเร็กทอรีข้อมูลไม่ว่าจะโดยตัวแปรสภาพแวดล้อม
"PGDATA" หรือส่งผ่านอาร์กิวเมนต์ "--datadir" ส่งกลับจำนวนวินาทีตั้งแต่ the
ด่านสุดท้ายถูกเรียกใช้ตามที่กำหนดโดยแยกวิเคราะห์การเรียกไปที่ "pg_controldata" เพราะว่า
สิ่งนี้ ไฟล์เรียกทำงาน pg_controldata ต้องมีอยู่ในพาธปัจจุบัน อีกทางหนึ่ง
คุณสามารถระบุ "PGBINDIR" เป็นไดเร็กทอรีที่มีอยู่ และยังสามารถใช้
ตัวเลือกพิเศษ --สมมติผลิตภัณฑ์ or --สมมติโหมดสแตนด์บาย, หากโหมดที่พบไม่ใช่
อย่างใดอย่างหนึ่งที่คาดหวัง ที่สำคัญจะถูกปล่อยออกมา

ต้องตั้งค่าคำเตือนหรืออาร์กิวเมนต์ที่สำคัญอย่างน้อยหนึ่งรายการ

การดำเนินการนี้ต้องใช้โมดูล Date::Parse

สำหรับ MRTG หรือเอาต์พุตแบบธรรมดา ให้คืนค่าจำนวนวินาที

คลัสเตอร์_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 และ --ไม่รวมผู้ใช้ ตัวเลือก. ดู "ชื่อผู้ใช้
การกรอง" สำหรับรายละเอียดเพิ่มเติม

ควรระบุตัวเลือกคำเตือนและตัวเลือกที่สำคัญเป็นเปอร์เซ็นต์ ไม่มี
ค่าเริ่มต้นสำหรับการดำเนินการนี้: ต้องระบุคำเตือนและวิกฤติ ค่าเตือน
ไม่สามารถมากกว่าค่าวิกฤต ผลลัพธ์จะส่งคืนฐานข้อมูลทั้งหมดที่จัดเรียงโดย
Commitration น้อยที่สุดก่อน

ตัวอย่าง: เตือนถ้าฐานข้อมูลใด ๆ บนโฮสต์ flagg มีค่าคอมมิชชันน้อยกว่า 90% และวิกฤต
ถ้าน้อยกว่า 80%

check_postgres_database_commitratio --host=flagg --warning='90%' --critical='80%'

สำหรับเอาต์พุต MRTG ส่งคืนเปอร์เซ็นต์ของฐานข้อมูลด้วยค่าคอมมิชชัน on . ที่น้อยที่สุด
บรรทัดแรกและชื่อของฐานข้อมูลในบรรทัดที่สี่

การเชื่อมต่อ
("symlink: check_postgres_connection") เพียงเชื่อมต่อ ออก 'SELECT รุ่น ()'และ
ออกจาก. ไม่ใช้ --คำเตือน or --วิกฤต ตัวเลือก

สำหรับเอาต์พุต MRTG เพียงส่งออก 1 (การเชื่อมต่อที่ดี) หรือ 0 (การเชื่อมต่อไม่ดี) ในครั้งแรก
เส้น

custom_query
("symlink: check_postgres_custom_query") เรียกใช้แบบสอบถามที่กำหนดเองที่คุณเลือกและแยกวิเคราะห์
ผลลัพธ์ แบบสอบถามเองถูกส่งผ่านอาร์กิวเมนต์ "แบบสอบถาม" และควรเป็น
ให้เรียบง่ายที่สุด ถ้าเป็นไปได้ ให้ห่อไว้ในมุมมองหรือฟังก์ชันที่จะเก็บไว้
สิ่งต่าง ๆ จัดการได้ง่ายขึ้น แบบสอบถามควรส่งคืนหนึ่งหรือสองคอลัมน์ มันเป็นสิ่งจำเป็นที่
คอลัมน์ใดคอลัมน์หนึ่งมีชื่อว่า "ผลลัพธ์" และเป็นรายการที่จะตรวจสอบกับ .ของคุณ
คำเตือนและค่านิยมที่สำคัญ คอลัมน์ที่สองสำหรับข้อมูลประสิทธิภาพและชื่อใดๆ
สามารถใช้ได้: นี่จะเป็น 'ค่า' ในส่วนข้อมูลประสิทธิภาพ

ต้องระบุคำเตือนหรืออาร์กิวเมนต์ที่สำคัญอย่างน้อยหนึ่งรายการ สิ่งเหล่านี้ถูกกำหนดให้ขึ้นอยู่กับ
ตามประเภทของแบบสอบถามที่คุณกำลังเรียกใช้ custom_queries มีสี่ประเภทที่สามารถเป็น
รัน ระบุโดยอาร์กิวเมนต์ "valtype" หากไม่ได้ระบุไว้ การดำเนินการนี้จะมีค่าเริ่มต้นเป็น
'จำนวนเต็ม'. สี่ประเภทคือ:

จำนวนเต็ม: เปรียบเทียบจำนวนเต็มอย่างง่ายหรือไม่ คอลัมน์แรกควรเป็นจำนวนเต็มอย่างง่าย
และคำเตือนและค่าวิกฤตควรเหมือนกัน

เชือก: คำเตือนและวิกฤติเป็นสตริง และทริกเกอร์ก็ต่อเมื่อค่าใน
คอลัมน์แรกตรงกับมันทุกประการ โดยคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่

เวลา: คำเตือนและวิกฤตคือครั้ง และสามารถมีหน่วยวินาที นาที
ชั่วโมงหรือวัน แต่ละรายการอาจเขียนเป็นเอกพจน์หรือย่อให้เหลือแค่อักษรตัวแรก ถ้า
ไม่ได้กำหนดหน่วย ให้ถือว่าวินาที คอลัมน์แรกควรเป็นจำนวนเต็ม
แทนจำนวนวินาทีที่จะตรวจสอบ

ขนาด: คำเตือนและวิกฤตคือขนาด และสามารถมีหน่วยของไบต์ กิโลไบต์
เมกะไบต์ กิกะไบต์ เทราไบต์ หรือเอ็กซาไบต์ แต่ละตัวอาจย่อมาจากอักษรตัวแรก
หากไม่ได้ระบุหน่วย จะถือว่าไบต์ คอลัมน์แรกควรเป็นจำนวนเต็ม
แทนจำนวนไบต์ที่จะตรวจสอบ

โดยปกติ จะมีการแจ้งเตือนหากค่าที่ส่งกลับเป็น มากขึ้น กว่า หรือเท่ากับ
ค่าวิกฤตหรือค่าเตือน อย่างไรก็ตาม ตัวเลือกของ --ย้อนกลับ จะทริกเกอร์การแจ้งเตือนหาก
ค่าที่ส่งคืนคือ ลด กว่า หรือเท่ากับค่าวิกฤตหรือค่าเตือน

ตัวอย่างที่ 1: เตือนว่าความสัมพันธ์ใด ๆ ที่เกิน 100 หน้ามีชื่อว่า "rad" ให้ใส่จำนวนหน้า
ภายในส่วนข้อมูลประสิทธิภาพ

check_postgres_custom_query --valtype=string -w "rad" --query=
"เลือกผลลัพธ์ relname AS, relpages AS หน้าจาก pg_class โดยที่ relpages > 100"

ตัวอย่างที่ 2: ให้ค่าวิกฤตหากฟังก์ชัน "foobar" ส่งกลับตัวเลขที่เกิน 5MB:

check_postgres_custom_query --critical='5MB'--valtype=size --query="SELECT foobar() AS result"

ตัวอย่างที่ 2: เตือนหากฟังก์ชัน "snazzo" คืนค่าน้อยกว่า 42:

check_postgres_custom_query --critical=42 --query="SELECT snazzo() AS result" --reverse

หากคุณพบ custom_query ที่มีประโยชน์ ให้ลองส่งโปรแกรมแก้ไขไปยังโปรแกรมนี้ไปที่
ทำให้เป็นการกระทำมาตรฐานที่ผู้อื่นสามารถใช้ได้

การดำเนินการนี้ยังไม่รองรับ MRTG หรือเอาต์พุตแบบธรรมดา

ฐานข้อมูล_ขนาด
("symlink: check_postgres_database_size") ตรวจสอบขนาดของฐานข้อมูลทั้งหมดและบ่น
เมื่อมีขนาดใหญ่เกินไป ไม่จำเป็นต้องรันคำสั่งนี้มากกว่าหนึ่งครั้งต่อฐานข้อมูล
กลุ่ม. ฐานข้อมูลสามารถกรองด้วย --รวม และ --ไม่รวม ตัวเลือก. ดู
ส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม พวกเขายังสามารถกรองโดยเจ้าของ
ฐานข้อมูลกับ --includeuser และ --ไม่รวมผู้ใช้ ตัวเลือก. ดู "การกรองชื่อผู้ใช้"
สำหรับรายละเอียดเพิ่มเติม

คำเตือนและตัวเลือกที่สำคัญสามารถระบุเป็นไบต์ กิโลไบต์ เมกะไบต์
กิกะไบต์ เทราไบต์ หรือเอ็กซาไบต์ แต่ละตัวอาจย่อมาจากอักษรตัวแรกเช่นกัน
หากไม่มีหน่วยใดได้รับ หน่วยจะถือว่าหน่วยเป็นไบต์ ไม่มีค่าเริ่มต้นสำหรับสิ่งนี้
การกระทำ: ต้องระบุคำเตือนและวิกฤติ ค่าเตือนต้องไม่มากกว่า
กว่าค่าวิกฤต ผลลัพธ์จะส่งคืนฐานข้อมูลทั้งหมดที่เรียงตามขนาดที่ใหญ่ที่สุดก่อน
แสดงทั้งไบต์ดิบและขนาดเวอร์ชัน "สวย"

ตัวอย่างที่ 1: เตือนหากฐานข้อมูลใด ๆ บนโฮสต์ flagg มีขนาดเกิน 1 TB และสำคัญหากเกิน
1.1 TB

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: ให้คำเตือนหากฐานข้อมูลใด ๆ บนโฮสต์ 'tardis' ที่เป็นเจ้าของโดยผู้ใช้ 'tom' หมดลง
5 GB

check_postgres_database_size --host=tardis --includeuser=tom --warning='5 GB' --critical='10 GB'

สำหรับเอาต์พุต MRTG ส่งคืนขนาดเป็นไบต์ของฐานข้อมูลที่ใหญ่ที่สุดในบรรทัดแรก และ
ชื่อของฐานข้อมูลในบรรทัดที่สี่

dbstats
("symlink: check_postgres_dbstats") รายงานข้อมูลจากมุมมอง pg_stat_database
และส่งออกในลักษณะที่เป็นมิตรต่อกระบองเพชร ไม่รองรับเอาต์พุตอื่น เนื่องจากเอาต์พุตเป็น
ให้ข้อมูลและไม่ให้ยืมตัวเองเพื่อการแจ้งเตือน เช่น ใช้กับ Nagios ถ้าไม่มีตัวเลือก
จะได้รับ ฐานข้อมูลทั้งหมดจะถูกส่งกลับ หนึ่งฐานข้อมูลต่อบรรทัด คุณสามารถรวมฐานข้อมูลเฉพาะ
โดยใช้ตัวเลือก "--include" หรือคุณสามารถใช้ตัวเลือก "--dbname"

มีการส่งคืน XNUMX รายการในแต่ละบรรทัด ในรูปแบบ name:value คั่นด้วย single
ช่องว่าง. รายการคือ:

แบ็กเอนด์
จำนวนแบ็กเอนด์ที่รันอยู่ในปัจจุบันสำหรับฐานข้อมูลนี้

มุ่งมั่น
จำนวนการคอมมิตทั้งหมดสำหรับฐานข้อมูลนี้ตั้งแต่สร้างหรือรีเซ็ต

ย้อนกลับ
จำนวนการย้อนกลับทั้งหมดสำหรับฐานข้อมูลนี้ตั้งแต่สร้างหรือรีเซ็ต

อ่าน
จำนวนบล็อคดิสก์ที่อ่านทั้งหมด

hit จำนวนบัฟเฟอร์ทั้งหมด

ret จำนวนแถวทั้งหมดที่ส่งคืน

นำมา
จำนวนแถวทั้งหมดที่ดึงออกมา

ins จำนวนแถวทั้งหมดที่แทรก

upd จำนวนแถวทั้งหมดที่อัปเดต

del จำนวนแถวทั้งหมดที่ถูกลบ

ชื่อฐานข้อมูล
ชื่อของฐานข้อมูล

โปรดทราบว่ารายการ ret, fetch, ins, upd และ del จะเป็น 0 เสมอ หาก Postgres เป็นเวอร์ชัน 8.2
หรือต่ำกว่า เนื่องจากสถิติเหล่านั้นไม่มีในเวอร์ชันเหล่านั้น

หากได้รับอาร์กิวเมนต์ dbname จะมีการส่งคืนสินค้าเพิ่มเติมเจ็ดรายการ:

idxscan
จำนวนการสแกนดัชนีผู้ใช้ทั้งหมด

รหัสประจำตัว
จำนวนรายการดัชนีผู้ใช้ทั้งหมดที่ส่งคืน

idxtupfetch
จำนวนแถวทั้งหมดที่ดึงโดยการสแกนดัชนีผู้ใช้อย่างง่าย

idxblksread.php
จำนวนบล็อกดิสก์ทั้งหมดที่อ่านสำหรับดัชนีผู้ใช้ทั้งหมด

idxblkhit
จำนวนบัฟเฟอร์ Hit ทั้งหมดสำหรับดัชนีผู้ใช้ทั้งหมด

สแกน
จำนวนการสแกนตามลำดับเทียบกับตารางผู้ใช้ทั้งหมด

ติดตาม
จำนวนทูเพิลทั้งหมดที่ส่งคืนจากตารางผู้ใช้ทั้งหมด

ตัวอย่างที่ 1: คว้าสถิติสำหรับฐานข้อมูลชื่อ "ผลิตภัณฑ์" บนโฮสต์ "วิลโลว์":

check_postgres_dbstats --dbhost willow --dbname ผลิตภัณฑ์

ผลลัพธ์ที่ส่งคืนจะเป็นดังนี้ (ทั้งหมดอยู่ในบรรทัดเดียว ไม่ห่อ):

แบ็กเอนด์:82 กระทำ:58374408 ย้อนกลับ:1651 อ่าน:268435543 ตี:2920381758 idxscan:310931294 idxtupread:2777040927
idxtupfetch:1840241349 idxblksread:62860110 idxblkshit:1107812216 seqscan:5085305 seqtupread:5370500520
ret:0 ดึงข้อมูล:0 ins:0 upd:0 del:0 dbname:willow

ปิดการใช้งาน_ทริกเกอร์
("symlink: check_postgres_disabled_triggers") ตรวจสอบจำนวนทริกเกอร์ที่ปิดใช้งาน
ภายในฐานข้อมูล NS --คำเตือน และ --วิกฤต ตัวเลือกคือจำนวนของทริกเกอร์ดังกล่าว
พบและทั้งสองค่าเริ่มต้นเป็น "1" เนื่องจากการใช้งานปกติที่มีทริกเกอร์ที่ปิดใช้งานนั้นเป็นอันตราย
เหตุการณ์. หากฐานข้อมูลที่ตรวจสอบเป็น 8.3 หรือสูงกว่า ให้ตรวจสอบเป็นตัวเลข
ทริกเกอร์ที่อยู่ในสถานะ 'ปิดการใช้งาน' (ตรงข้ามกับสถานะ 'เสมอ' หรือ 'จำลอง') NS
เอาต์พุตจะแสดงชื่อของตารางและชื่อของทริกเกอร์สำหรับผู้พิการแต่ละคน
ทริกเกอร์

ตัวอย่างที่ 1: ตรวจสอบให้แน่ใจว่าไม่มีทริกเกอร์ที่ปิดใช้งาน

check_postgres_disabled_triggers

สำหรับเอาต์พุต MRTG ส่งคืนจำนวนทริกเกอร์ที่ปิดใช้งานในบรรทัดแรก

disk_space
("symlink: check_postgres_disk_space") ตรวจสอบพื้นที่ว่างในดิสก์ที่มีอยู่จริงซึ่งใช้โดย
โพสเกรส การดำเนินการนี้ต้องการให้คุณมีไฟล์ปฏิบัติการ "/bin/df" พร้อมให้รายงาน
บนขนาดดิสก์ และยังต้องรันเป็น superuser ดังนั้นจึงสามารถตรวจสอบ
data_directory การตั้งค่าภายใน Postgres NS --คำเตือน และ --วิกฤต มีตัวเลือกให้
ในขนาดหรือเปอร์เซ็นต์หรือทั้งสองอย่าง หากใช้ขนาด ประเภทหน่วยมาตรฐานคือ
อนุญาต: ไบต์ กิโลไบต์ กิกะไบต์ เมกะไบต์ กิกะไบต์ เทราไบต์ หรือเอ็กซาไบต์ แต่ละ
อาจใช้อักษรย่อตัวแรกเท่านั้น ไม่มีหน่วยใดบ่งชี้ 'ไบต์' NS
ค่าเริ่มต้นคือ '90%' และ '95%'

คำสั่งนี้จะตรวจสอบสิ่งต่อไปนี้เพื่อกำหนดฟิสิคัลดิสก์ที่แตกต่างกันทั้งหมด
ถูกใช้โดย Postgres

data_directory - ดิสก์ที่ไดเร็กทอรีข้อมูลหลักเปิดอยู่

เข้าสู่ระบบ ไดเรกทอรี - ดิสก์ที่ไฟล์บันทึกเปิดอยู่

WAL ไฟล์ ไดเรกทอรี - ดิสก์ที่บันทึกการเขียนล่วงหน้าเปิดอยู่ (เช่น เชื่อมโยง 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 ส่งคืนขนาดเป็นไบต์ของระบบไฟล์ในบรรทัดแรก และค่า
ชื่อระบบไฟล์ในบรรทัดที่สี่

fsm_pages
("symlink: check_postgres_fsm_pages") ตรวจสอบว่าคลัสเตอร์อยู่ใกล้กับ Postgres มากเพียงใด
max_fsm_pages การตั้งค่า การดำเนินการนี้จะใช้ได้เฉพาะกับฐานข้อมูล 8.2 หรือสูงกว่า และมัน
ต้องใช้โมดูลมีส่วนร่วม pg_freespacemap จะถูกติดตั้ง NS --คำเตือน และ --วิกฤต
ตัวเลือกควรแสดงเป็นเปอร์เซ็นต์ จำนวนหน้าที่ใช้ใน free-space-map
ถูกกำหนดโดยดูในมุมมอง pg_freespacemap_relations และเรียกใช้สูตร
ตามสูตรที่ใช้สำหรับเอาต์พุตเพจล็อตของแผนที่พื้นที่ว่างใน verbose สุญญากาศ
สั่งการ. ค่าเริ่มต้นคือ ลด 85% เพื่อเป็นอุทาหรณ์และ ลด 95% สำหรับการวิจารณ์

ตัวอย่างที่ 1: ให้คำเตือนเมื่อคลัสเตอร์ของเราใช้ช่องเพจพื้นที่ว่างถึง 76%
ด้วย pg_freespacemap ติดตั้งอยู่ในฐานข้อมูล robert

check_postgres_fsm_pages --dbname=robert --warning="76%"

แม้ว่าคุณจะต้องส่งผ่านชื่อของฐานข้อมูลที่ติดตั้ง pg_freespacemap คุณ
ต้องเรียกใช้การตรวจสอบนี้เพียงครั้งเดียวต่อคลัสเตอร์ นอกจากนี้การตรวจสอบข้อมูลนี้ยังไม่จำเป็น
รับล็อคพิเศษบนแผนที่พื้นที่ว่างดังนั้นขอแนะนำอย่าเรียกใช้
ตรวจสอบด้วยช่วงเวลาสั้น ๆ

สำหรับเอาต์พุต MRTG ส่งคืนเปอร์เซ็นต์ของแผนผังพื้นที่ว่างในบรรทัดแรกและตัวเลข
ของหน้าที่ใช้อยู่ในบรรทัดที่สอง

fsm_relations
("symlink: check_postgres_fsm_relations") ตรวจสอบว่าคลัสเตอร์อยู่ใกล้กับ Postgres มากเพียงใด
max_fsm_relations การตั้งค่า การดำเนินการนี้จะใช้ได้เฉพาะกับฐานข้อมูล 8.2 หรือสูงกว่า และ
มันต้องมีโมดูลการมีส่วนร่วม pg_freespacemap จะถูกติดตั้ง NS --คำเตือน และ --วิกฤต
ตัวเลือกควรแสดงเป็นเปอร์เซ็นต์ จำนวนของความสัมพันธ์ที่ใช้ในฟรี-
space-map ถูกกำหนดโดยดูในมุมมอง pg_freespacemap_relations ค่าเริ่มต้น
ค่าคือ ลด 85% เพื่อเป็นอุทาหรณ์และ ลด 95% สำหรับการวิจารณ์

ตัวอย่างที่ 1: ให้คำเตือนเมื่อคลัสเตอร์ของเราใช้ความสัมพันธ์ของพื้นที่ว่างถึง 80%
ด้วย pg_freespacemap ติดตั้งอยู่ในฐานข้อมูล dylan

check_postgres_fsm_relations --dbname=dylan --warning="75%"

แม้ว่าคุณจะต้องส่งผ่านชื่อของฐานข้อมูลที่ติดตั้ง pg_freespacemap คุณ
ต้องเรียกใช้การตรวจสอบนี้เพียงครั้งเดียวต่อคลัสเตอร์ นอกจากนี้การตรวจสอบข้อมูลนี้ยังไม่จำเป็น
รับล็อคพิเศษบนแผนที่พื้นที่ว่างดังนั้นขอแนะนำอย่าเรียกใช้
ตรวจสอบด้วยช่วงเวลาสั้น ๆ

สำหรับเอาต์พุต MRTG ส่งคืนเปอร์เซ็นต์ของแผนผังพื้นที่ว่างในบรรทัดแรก จำนวน
ความสัมพันธ์ที่ใช้อยู่ในบรรทัดที่สอง

อัตราส่วนการตี
("symlink: check_postgres_hitratio") ตรวจสอบอัตราส่วนการตีของฐานข้อมูลทั้งหมดและบ่น
เมื่อพวกเขาต่ำเกินไป ไม่จำเป็นต้องรันคำสั่งนี้มากกว่าหนึ่งครั้งต่อฐานข้อมูล
กลุ่ม. ฐานข้อมูลสามารถกรองด้วย --รวม และ --ไม่รวม ตัวเลือก. ดู
ส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม พวกเขายังสามารถกรองโดยเจ้าของ
ฐานข้อมูลกับ --includeuser และ --ไม่รวมผู้ใช้ ตัวเลือก. ดู "การกรองชื่อผู้ใช้"
สำหรับรายละเอียดเพิ่มเติม

ควรระบุตัวเลือกคำเตือนและตัวเลือกที่สำคัญเป็นเปอร์เซ็นต์ ไม่มี
ค่าเริ่มต้นสำหรับการดำเนินการนี้: ต้องระบุคำเตือนและวิกฤติ ค่าเตือน
ไม่สามารถมากกว่าค่าวิกฤต ผลลัพธ์จะส่งคืนฐานข้อมูลทั้งหมดที่จัดเรียงโดย
hitratio น้อยที่สุดก่อน

ตัวอย่าง: เตือนหากฐานข้อมูลใด ๆ บนโฮสต์ flagg มีอัตรา Hitratio น้อยกว่า 90% และวิกฤต if
น้อยกว่า 80%

check_postgres_hiratio --host=flagg --warning='90%' --critical='80%'

สำหรับเอาต์พุต MRTG ส่งคืนเปอร์เซ็นต์ของฐานข้อมูลที่มี hitratio น้อยที่สุดบน
บรรทัดแรกและชื่อของฐานข้อมูลในบรรทัดที่สี่

hot_standby_delay
("symlink: check_hot_standby_delay") ตรวจสอบความล่าช้าการจำลองแบบสตรีมมิ่งโดยการคำนวณ
เดลต้าระหว่างตำแหน่ง xlog ปัจจุบันของเซิร์ฟเวอร์หลักและตำแหน่งเล่นซ้ำของa
ทาสเชื่อมต่อกับมัน เซิร์ฟเวอร์ทาสต้องอยู่ในโหมด hot_standby (เช่น อ่านอย่างเดียว)
ดังนั้นเวอร์ชันขั้นต่ำที่จะใช้การดำเนินการนี้คือ Postgres 9.0 NS --คำเตือน และ
--วิกฤต ตัวเลือกคือเดลต้าระหว่างตำแหน่ง xlog เนื่องจากค่าเหล่านี้เป็น byte
ออฟเซ็ตใน WAL ควรตรงกับปริมาณธุรกรรมที่คาดไว้ของแอปพลิเคชันของคุณ
เพื่อป้องกันผลบวกลวงหรือผลลบ

ตัวเลือก "--dbname", "--host" และ "--port" แรก ฯลฯ ถือเป็นตัวเลือกหลัก NS
ที่สองเป็นของทาส

ค่าไบต์ควรขึ้นอยู่กับปริมาณธุรกรรมที่จำเป็นสำหรับการสตรีม
การจำลองแบบยกเลิกการเชื่อมต่อจากต้นแบบเนื่องจากความล่าช้ามากเกินไป กำหนดโดย Postgres
ตัวแปรการกำหนดค่า wal_keep_segments. สำหรับหน่วยเวลา หน่วยที่ใช้ได้คือ 'วินาที'
'นาที' 'ชั่วโมง' หรือ 'วัน' แต่ละคำอาจเขียนเป็นเอกพจน์หรือย่อเป็น
จดหมายฉบับแรก. เมื่อระบุทั้งสองอย่าง ในรูปแบบ 'ไบต์ และ เวลา' ทั้งสองเงื่อนไขต้องเป็น
จริงเพื่อให้เป็นไปตามเกณฑ์

คุณต้องให้ข้อมูลเกี่ยวกับวิธีการเข้าถึงฐานข้อมูลโดยให้คั่นด้วยเครื่องหมายจุลภาค
แสดงรายการพารามิเตอร์ --dbhost และ --dbport เช่น "--dbport=5432,5543" ถ้าไม่ให้
การกระทำล้มเหลว

ตัวอย่างที่ 1: เตือนฐานข้อมูลที่มีการจำลองแบบโลคัลบนพอร์ต 5433 อยู่เบื้องหลังใน xlog replay
เลย

check_hot_standby_delay --dbport=5432,5433 --warning='1'

ตัวอย่างที่ 2: ให้ค่าวิกฤตหากตัวจำลองธุรกรรมล่าสุด 1 ได้รับมากกว่า 10
นาทีที่แล้ว

check_hot_standby_delay --dbhost=master,replica1 --critical='10 นาที'

ตัวอย่างที่ 3: อนุญาตให้ replica1 เป็น 1 ส่วน WAL ที่อยู่เบื้องหลัง หากต้นแบบเห็นชั่วขณะ
กิจกรรมมากกว่าการเชื่อมต่อการจำลองแบบสตรีมมิ่งสามารถจัดการได้หรือช้ากว่า 10 นาที
ถ้าอาจารย์เห็นกิจกรรมน้อยมากและไม่ประมวลผลธุรกรรมใด ๆ แต่ไม่ใช่
ทั้งสองอย่าง ซึ่งจะบ่งบอกถึงปัญหาถาวรกับการเชื่อมต่อการจำลองแบบ

check_hot_standby_delay --dbhost=master,replica1 --warning='1048576 and 2 min' --critical='16777216 and 10 min'

ดัชนี_ขนาด
ตาราง_ขนาด
ความสัมพันธ์_ขนาด
(ลิงก์เชื่อมโยง: "check_postgres_index_size", "check_postgres_table_size" และ
"check_postgres_relation_size") การกระทำ ตาราง_ขนาด และ ดัชนี_ขนาด เป็นเพียง
รูปแบบของ ความสัมพันธ์_ขนาด การกระทำที่ตรวจสอบความสัมพันธ์ที่เติบโตขึ้นด้วย
ใหญ่. ความสัมพันธ์ (ในคำอื่น ๆ ตารางและดัชนี) สามารถกรองด้วย --รวม
และ --ไม่รวม ตัวเลือก. ดูส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม ความสัมพันธ์สามารถ
ยังถูกกรองโดยผู้ใช้ที่เป็นเจ้าของพวกเขาโดยใช้ --includeuser และ --ไม่รวมผู้ใช้
ตัวเลือก. ดูส่วน "การกรองชื่อผู้ใช้" สำหรับรายละเอียดเพิ่มเติม

ค่าสำหรับ --คำเตือน และ --วิกฤต ตัวเลือกคือขนาดไฟล์และอาจมีหน่วยเป็น
ไบต์ กิโลไบต์ เมกะไบต์ กิกะไบต์ เทราไบต์ หรือเอ็กซาไบต์ แต่ละคนสามารถย่อได้
ถึงตัวอักษรตัวแรก หากไม่ได้ระบุหน่วย จะถือว่าไบต์ ไม่มีค่าเริ่มต้น
ค่า: ต้องให้ทั้งคำเตือนและตัวเลือกที่สำคัญ ข้อความส่งคืนแสดงให้เห็นว่า
ขนาดของความสัมพันธ์ที่ใหญ่ที่สุดที่พบ

ถ้า --โชว์เพอร์ฟ เปิดใช้งานตัวเลือกแล้ว ทั้งหมด ของความสัมพันธ์กับขนาดของพวกเขาจะได้รับ
เพื่อป้องกันสิ่งนี้ ขอแนะนำให้คุณตั้งค่า --เพอร์ฟลิมิต ทางเลือกซึ่งจะทำให้
แบบสอบถามเพื่อทำ "ORDER BY size DESC LIMIT (perflimit)"

ตัวอย่างที่ 1: ให้คำวิจารณ์ถ้าตารางใดมีขนาดใหญ่กว่า 600MB บนโฮสต์เบอร์ริก

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=products

ตัวอย่างที่ 3: เตือนหากดัชนีใด ๆ ที่ไม่ได้เป็นเจ้าของโดย postgres มีขนาดเกิน 500 MB

check_postgres_index_size --port=5432 --excludeuser=postgres -w 500MB -c 600MB

สำหรับเอาต์พุต MRTG ส่งคืนขนาดเป็นไบต์ของความสัมพันธ์ที่ใหญ่ที่สุด และชื่อของ
ฐานข้อมูลและความสัมพันธ์เป็นบรรทัดที่สี่

สุดท้าย_วิเคราะห์
Last_vacuum
Last_วิเคราะห์อัตโนมัติ
Last_autovacuum
(ลิงก์เชื่อมโยง: "check_postgres_last_analyze", "check_postgres_last_vacuum",
"check_postgres_last_autoanalyze" และ "check_postgres_last_autovacuum") ตรวจสอบว่านานแค่ไหน
นับตั้งแต่สูญญากาศ (หรือวิเคราะห์) ทำงานครั้งสุดท้ายในแต่ละตารางในฐานข้อมูลอย่างน้อยหนึ่งฐานข้อมูล
การใช้การกระทำเหล่านี้ต้องการให้ฐานข้อมูลเป้าหมายเป็นเวอร์ชัน 8.3 หรือใหม่กว่า หรือมากกว่านั้น
รุ่นคือ 8.2 และตัวแปรการกำหนดค่า stats_row_level เปิดใช้งานแล้ว โต๊ะ
สามารถกรองด้วย --รวม และ --ไม่รวม ตัวเลือก. ดู "การกรองพื้นฐาน"
ส่วนสำหรับรายละเอียดเพิ่มเติม เจ้าของตารางยังสามารถกรองตารางโดยใช้
--includeuser และ --ไม่รวมผู้ใช้ ตัวเลือก. ดูส่วน "การกรองชื่อผู้ใช้" สำหรับข้อมูลเพิ่มเติม
รายละเอียด

หน่วยสำหรับ --คำเตือน และ --วิกฤต ถูกกำหนดเป็นครั้ง หน่วยที่ถูกต้องคือวินาที
นาที ชั่วโมง และวัน ทั้งหมดสามารถย่อมาจากตัวอักษรตัวแรก หากไม่มีหน่วยเป็น
ให้ถือว่า 'วินาที' ค่าเริ่มต้นคือ '1 วัน' และ '2 วัน' โปรดทราบ
ว่ามีบางกรณีที่ฟิลด์นี้ไม่ได้รับการเติมโดยอัตโนมัติ ถ้าแน่
โต๊ะกำลังสร้างปัญหาให้คุณ ตรวจสอบให้แน่ใจว่าโต๊ะเหล่านั้นมีช่องว่างให้ดูดฝุ่น หรือเพียงแค่
แยกพวกเขาออกจากการทดสอบ

สคีมาชื่อ 'information_schema' ไม่รวมอยู่ในการทดสอบนี้ เนื่องจากเป็นเพียงตารางเดียว
ประกอบด้วยมีขนาดเล็กและไม่เปลี่ยนแปลง

โปรดทราบว่าเวอร์ชันที่ไม่ใช่ 'อัตโนมัติ' จะตรวจสอบเวอร์ชันอัตโนมัติด้วย ในอื่นๆ
คำที่ใช้last_vacuumจะรายงานสูญญากาศครั้งสุดท้ายไม่ว่าจะเป็นสูญญากาศปกติ,
หรือหนึ่งดำเนินการโดยภูต autovacuum

ตัวอย่างที่ 1: เตือนหากโต๊ะใดไม่ได้ดูดฝุ่นใน 3 วัน และให้ค่าวิกฤตที่ a
สัปดาห์สำหรับเจ้าบ้านบอระเพ็ด

check_postgres_last_vacuum --host=wormwood --warning='3d' --critical='7d'

ตัวอย่างที่ 2: เหมือนกับด้านบน แต่ข้ามตารางที่เป็นของผู้ใช้ 'อีฟ' หรือ 'มัลลอรี่'

check_postgres_last_vacuum --host=wormwood --warning='3d' --critical='7d' --excludeusers=eve, mallory

สำหรับเอาต์พุต MRTG ส่งคืน (ในบรรทัดแรก) จำนวนเวลาน้อยที่สุดในหน่วยวินาทีตั้งแต่ a
ตารางถูกดูดฝุ่นหรือวิเคราะห์ครั้งสุดท้าย บรรทัดที่สี่ส่งคืนชื่อของฐานข้อมูลและ
ชื่อของตาราง

ผู้ฟัง
("symlink: check_postgres_listener") ยืนยันว่ามีคนกำลังฟังอย่างน้อยหนึ่งรายการ
สตริงเฉพาะ (โดยใช้ระบบ LISTEN/NOTIFY) โดยดูที่ตาราง pg_listener
ต้องการคำเตือนหรือวิกฤติเพียงอย่างใดอย่างหนึ่งเท่านั้น รูปแบบเป็นสตริงอย่างง่ายที่แสดงถึง
LISTEN เป้าหมายหรืออักขระตัวหนอนตามด้วยสตริงสำหรับการตรวจสอบนิพจน์ทั่วไป
โปรดทราบว่าการตรวจสอบนี้ใช้ไม่ได้กับ 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=~กริมม์

สำหรับเอาต์พุต MRTG คืนค่า 1 หรือ 0 ที่ค่าแรก ซึ่งบ่งชี้ว่าสำเร็จหรือล้มเหลว ชื่อ
ของคำบอกกล่าวจะต้องให้ผ่านทาง --mrtg ตัวเลือก

ล็อค
("symlink: check_postgres_locks") ตรวจสอบจำนวนล็อคทั้งหมดในหนึ่งรายการขึ้นไป
ฐานข้อมูล ไม่จำเป็นต้องเรียกใช้สิ่งนี้มากกว่าหนึ่งครั้งต่อคลัสเตอร์ฐานข้อมูล ฐานข้อมูลสามารถ
ถูกกรองด้วย --รวม และ --ไม่รวม ตัวเลือก. ดูส่วน "การกรองพื้นฐาน"
.

พื้นที่ --คำเตือน และ --วิกฤต สามารถระบุตัวเลือกเป็นตัวเลขง่าย ๆ ซึ่งเป็นตัวแทนของ
จำนวนล็อคทั้งหมดหรือแยกตามประเภทของล็อค ชื่อล็อคที่ถูกต้อง
คือ 'ผลรวม', 'กำลังรอ' หรือชื่อของประเภทการล็อคที่ Postgres ใช้ ชื่อเหล่านี้คือ
ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และไม่ต้องการส่วน "ล็อค" ที่ส่วนท้ายดังนั้น พิเศษ จะตรงกัน
'ล็อคพิเศษ' รูปแบบคือ name=number โดยมีรายการต่างๆ คั่นด้วยเครื่องหมายทวิภาคหรือ
อัฒภาค (หรือสัญลักษณ์อื่น ๆ )

ตัวอย่างที่ 1: เตือนถ้าจำนวนล็อคคือ 100 หรือมากกว่า และวิกฤตถ้า 200 หรือมากกว่า บน
โฮสต์การ์เร็ตต์

check_postgres_locks --host=garrett --warning=100 --critical=200

ตัวอย่างที่ 2: บนอาร์เทมัสโฮสต์ เตือนว่า 200 ล็อคหรือมากกว่านั้นมีอยู่ และให้ if . วิกฤติ
มีล็อคทั้งหมดมากกว่า 250 ตัว หรือถ้ามีล็อคพิเศษมากกว่า 20 ตัว หรือหากมีการเชื่อมต่อมากกว่า 5 ตัว
กำลังรอการล็อค

check_postgres_locks --host=artemus --warning=200 --critical="total=250:waiting=5:exclusive=20"

สำหรับเอาต์พุต MRTG ส่งคืนจำนวนการล็อกในบรรทัดแรกและชื่อของ
ฐานข้อมูลในบรรทัดที่สี่

ไฟล์บันทึก
("symlink: check_postgres_logfile") ตรวจสอบให้แน่ใจว่าไฟล์บันทึกอยู่ในตำแหน่งที่ต้องการ
และกำลังเข้าสู่ การดำเนินการนี้ออกคำสั่งที่ส่งข้อผิดพลาดในแต่ละ
ฐานข้อมูลกำลังตรวจสอบและให้แน่ใจว่าข้อความปรากฏในบันทึก มันสแกน
การตั้งค่า log_* ต่างๆ ภายใน Postgres เพื่อค้นหาว่าบันทึกควรอยู่ที่ใด ถ้าคุณ
กำลังใช้ syslog มันทำการสแกนคร่าวๆ (แต่ไม่เข้าใจผิด) ของ /etc/syslog.conf.
อีกวิธีหนึ่ง คุณสามารถระบุชื่อของไฟล์บันทึกด้วยเครื่องหมาย --ล็อกไฟล์ ตัวเลือก. นี่คือ
มีประโยชน์อย่างยิ่งหากบันทึกมีรูปแบบการหมุนที่กำหนดเองซึ่งขับเคลื่อนด้วยโปรแกรมภายนอก
พื้นที่ --ล็อกไฟล์ ตัวเลือกรองรับอักขระหลีกต่อไปนี้: "%Y %m %d %H" ซึ่ง
แทนปี เดือน วันที่ และชั่วโมงปัจจุบันตามลำดับ ผิดพลาดเสมอ
รายงานว่ามีความสำคัญ เว้นแต่จะมีการส่งตัวเลือกการเตือนเป็นค่าที่ไม่ใช่ศูนย์
นอกเหนือจากการใช้งานเฉพาะนั้น ตัวเลือก "--คำเตือน" และ "-วิกฤต" ควร ไม่ be
มือสอง

ตัวอย่างที่ 1: บนพอร์ต 5432 ตรวจสอบให้แน่ใจว่าไฟล์บันทึกกำลังถูกเขียนไปยังไฟล์
/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"
หากมีการอัพเกรดที่สำคัญ คำเตือนจะถูกส่งกลับ หากการปรับปรุงแก้ไขคือ
ใช้ได้ มีการส่งคริติคอลกลับ (บูคาร์โดเป็นนายต่อทาส และเป็นนายต่อนาย
ระบบการจำลองแบบสำหรับ Postgres: ดู http://bucardo.org สำหรับข้อมูลเพิ่มเติม). ดูสิ่งนี้ด้วย
ข้อมูลเกี่ยวกับตัวเลือก "--get_method"

ใหม่_รุ่น_กล่อง
("symlink: check_postgres_new_version_box") ตรวจสอบว่า boxinfo เวอร์ชันใหม่กว่าหรือไม่
โปรแกรมได้ เวอร์ชันปัจจุบันได้มาจากการเรียกใช้ "boxinfo.pl --version"
หากมีการอัพเกรดที่สำคัญ คำเตือนจะถูกส่งกลับ หากการปรับปรุงแก้ไขคือ
ใช้ได้ มีการส่งคริติคอลกลับ (boxinfo เป็นโปรแกรมสำหรับจับของสำคัญ
ข้อมูลจากเซิร์ฟเวอร์และใส่ลงในรูปแบบ HTML: see
http://bucardo.org/wiki/boxinfo สำหรับข้อมูลเพิ่มเติม). ดูข้อมูลได้ที่
"--get_method" ตัวเลือก

ใหม่_รุ่น_cp
("symlink: check_postgres_new_version_cp") ตรวจสอบว่าเป็นเวอร์ชันที่ใหม่กว่าของโปรแกรมนี้หรือไม่
(check_postgres) พร้อมใช้งานโดยคว้าเวอร์ชันจากไฟล์ข้อความขนาดเล็กบน main
หน้าโฮมเพจของโครงการ ส่งคืนคำเตือนหากเวอร์ชันที่ส่งคืนไม่
ตรงกับที่คุณกำลังวิ่ง ช่วงเวลาที่แนะนำให้ตรวจสอบคือวันละครั้ง ดูเพิ่มเติมที่
ข้อมูลเกี่ยวกับตัวเลือก "--get_method"

new_version_pg
("symlink: check_postgres_new_version_pg") ตรวจสอบว่า Postgres เวอร์ชันใหม่กว่านั้นมีอยู่หรือไม่
สำหรับแต่ละฐานข้อมูลที่เชื่อมต่อ โปรดทราบว่านี่เป็นเพียงการตรวจสอบการแก้ไขเท่านั้น เช่น ไปจาก
8.3.6 ถึง 8.3.7 การแก้ไขนั้นเข้ากันได้กับไบนารี 100% เสมอและไม่เกี่ยวข้องกับการถ่ายโอนข้อมูลและ
กู้คืนเพื่ออัปเกรด มีการแก้ไขข้อบกพร่อง ดังนั้นควรอัปเกรดโดยเร็วที่สุด
ขอแนะนำเสมอ ส่งกลับคำเตือนหากคุณไม่มีการแก้ไขล่าสุด มันคือ
ขอแนะนำให้เรียกใช้การตรวจสอบนี้อย่างน้อยวันละครั้ง ดูข้อมูลได้ที่
"--get_method" ตัวเลือก

new_version_tnm
("symlink: check_postgres_new_version_tnm") ตรวจสอบว่า tail_n_mail เวอร์ชันใหม่กว่า
โปรแกรมได้ ได้เวอร์ชันปัจจุบันโดยเรียกใช้ "tail_n_mail --version"
หากมีการอัพเกรดที่สำคัญ คำเตือนจะถูกส่งกลับ หากการปรับปรุงแก้ไขคือ
ใช้ได้ มีการส่งคริติคอลกลับ (tail_n_mail เป็นเครื่องมือตรวจสอบบันทึกที่สามารถส่ง
อีเมลเมื่อมีกิจกรรมที่น่าสนใจปรากฏในบันทึก Postgres ของคุณ ดู:
http://bucardo.org/wiki/Tail_n_mail สำหรับข้อมูลเพิ่มเติม). ดูข้อมูลได้ที่
ตัวเลือก "--get_method"

pgb_pool_cl_active
pgb_pool_cl_waiting
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_" ตามลำดับ การเชื่อมต่อไคลเอ็นต์ที่ใช้งานอยู่คือการเชื่อมต่อที่เชื่อมโยงอยู่ในปัจจุบัน
ด้วยการเชื่อมต่อเซิร์ฟเวอร์ที่ใช้งานอยู่ การเชื่อมต่อไคลเอ็นต์อาจเป็น "รอ" ซึ่งหมายความว่า
ยังไม่ได้รับการจัดสรรการเชื่อมต่อเซิร์ฟเวอร์ การเชื่อมต่อเซิร์ฟเวอร์ "ใช้งานอยู่" (เชื่อมโยง
ไปยังไคลเอนต์), "ไม่ได้ใช้งาน" (ยืนโดยสำหรับการเชื่อมต่อไคลเอนต์ที่จะเชื่อมโยงด้วย), "ใช้แล้ว" (just
ยกเลิกการเชื่อมโยงจากลูกค้าและยังไม่ได้กลับไปที่พูลว่าง) "ทดสอบแล้ว" (ขณะนี้อยู่ระหว่าง
ทดสอบแล้ว) และ "เข้าสู่ระบบ" (อยู่ในขั้นตอนการเข้าสู่ระบบ) ค่า maxwait แสดงระยะเวลาใน
วินาทีที่การรอการเชื่อมต่อไคลเอ็นต์ที่เก่าที่สุดกำลังรออยู่

pgbouncer_backends
("symlink: check_postgres_pgbouncer_backends") ตรวจสอบจำนวนการเชื่อมต่อปัจจุบัน
สำหรับฐานข้อมูลอย่างน้อยหนึ่งฐานข้อมูลผ่าน pgbouncer และเลือกที่จะเปรียบเทียบกับค่าสูงสุด
อนุญาต ซึ่งกำหนดโดยตัวแปรการกำหนดค่า pgbouncer max_client_conn.
--คำเตือน และ --วิกฤต ตัวเลือกสามารถใช้รูปแบบใดรูปแบบหนึ่งจากสามรูปแบบ อย่างแรก ตัวเลขง่ายๆ สามารถ
จะได้รับ ซึ่งแสดงถึงจำนวนการเชื่อมต่อที่จะได้รับการแจ้งเตือน
ตัวเลือกนี้ไม่ใช้ the max_connections การตั้งค่า ประการที่สอง เปอร์เซ็นต์ของที่มีอยู่
สามารถให้การเชื่อมต่อ ประการที่สาม สามารถให้จำนวนลบซึ่งแสดงถึง
จำนวนการเชื่อมต่อที่เหลือจนถึง max_connections ถึง. ค่าเริ่มต้นสำหรับ
--คำเตือน และ --วิกฤต คือ '90%' และ '95%' คุณยังสามารถกรองฐานข้อมูลโดยใช้
--รวม และ --ไม่รวม ตัวเลือก. ดูส่วน "การกรองพื้นฐาน" สำหรับรายละเอียดเพิ่มเติม

หากต้องการดูเฉพาะกระบวนการที่ไม่ได้ใช้งาน คุณสามารถใช้ปุ่ม --นอยด์ การโต้แย้ง. โปรดทราบว่าผู้ใช้คุณ
กำลังเชื่อมต่อตามที่ต้องเป็น superuser เพื่อให้ทำงานได้อย่างถูกต้อง

ตัวอย่างที่ 1: แจ้งเตือนเมื่อจำนวนการเชื่อมต่อบนโฮสต์ quirm ถึง 120 และ a
สำคัญถ้ามันถึง 150

check_postgres_pgbouncer_backends --host=quirm --warning=120 --critical=150 -p 6432 -u pgbouncer

ตัวอย่างที่ 2: ให้ความสำคัญเมื่อเราตั้งค่า max_connections ถึง 75% บนโฮสต์
lancre หรือ lancre2

check_postgres_pgbouncer_backends --warning='75%' --critical='75%' --host=lancre,lancre2 -p 6432 -u pgbouncer

ตัวอย่างที่ 3: ให้คำเตือนเมื่อโฮสต์เชื่อมต่อเหลือเพียง 10 ช่องเท่านั้น
พลาสมิดและวิกฤตเมื่อเราเหลือเพียง 5 เท่านั้น

check_postgres_pgbouncer_backends --warning=-10 --critical=-5 --host=plasmid -p 6432 -u pgbouncer

สำหรับเอาต์พุต MRTG จำนวนการเชื่อมต่อจะถูกรายงานในบรรทัดแรกและบรรทัดที่สี่
บรรทัดให้ชื่อของฐานข้อมูล บวกกับ max_client_conn ปัจจุบัน หากมีมากกว่าหนึ่ง
มีการสอบถามฐานข้อมูลแล้ว รายการที่มีจำนวนการเชื่อมต่อสูงสุดคือเอาต์พุต

pgbouncer_checksum
("symlink: check_postgres_pgbouncer_checksum") ตรวจสอบว่าการตั้งค่า pgBouncer ทั้งหมดเป็น
เหมือนกับครั้งล่าสุดที่คุณตรวจสอบ ทำได้โดยการสร้างเช็คซัมของรายการที่เรียงลำดับ
ของการตั้งชื่อและค่าของมัน โปรดทราบว่าคุณไม่ควรระบุชื่อฐานข้อมูล มัน
จะตั้งค่าเริ่มต้นเป็น pgbouncer โดยอัตโนมัติ ไม่ว่าจะเป็น --คำเตือน หรือ --วิกฤต ตัวเลือก
ควรให้แต่ไม่ใช่ทั้งสองอย่าง ค่าของแต่ละรายการคือผลรวมของเช็คซัม 32 อักขระ
ค่าเลขฐานสิบหก คุณสามารถเรียกใช้ด้วยตัวเลือกพิเศษ "--critical=0" เพื่อค้นหา an
เช็คซัมที่มีอยู่

การดำเนินการนี้ต้องใช้โมดูล Digest::MD5

ตัวอย่างที่ 1: ค้นหาเช็คซัมเริ่มต้นสำหรับการกำหนดค่า pgbouncer บนพอร์ต 6432 โดยใช้
ผู้ใช้เริ่มต้น (โดยปกติคือ postgres)

check_postgres_pgbouncer_checksum --port=6432 --critical=0

ตัวอย่างที่ 2: ตรวจสอบให้แน่ใจว่าไม่มีการเปลี่ยนแปลงการตั้งค่าและเตือนหากใช่ โดยใช้การตรวจสอบจาก
ข้างบน.

check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231

สำหรับเอาต์พุต MRTG ส่งคืน 1 หรือ 0 ซึ่งบ่งชี้ความสำเร็จของความล้มเหลวของการตรวจสอบในการจับคู่
ต้องระบุ checksum เป็นอาร์กิวเมนต์ "--mrtg" บรรทัดที่สี่ให้ .เสมอ
เช็คซัมปัจจุบัน

pgagent_jobs
("symlink: check_postgres_pgagent_jobs") ตรวจสอบว่างาน pgAgent ทั้งหมดที่มี
ดำเนินการในช่วงเวลาก่อนหน้าได้สำเร็จ ทำได้โดยการตรวจสอบหา
ขั้นตอนใด ๆ ที่มีผลลัพธ์ไม่เป็นศูนย์

อาจระบุ "--warning" หรือ "--critical" หรือทั้งสองอย่าง เป็นเวลา และงานจะเป็น
ตรวจสอบความล้มเหลวภายในระยะเวลาที่กำหนดก่อนเวลาปัจจุบัน ถูกต้อง
หน่วยคือวินาที นาที ชั่วโมง และวัน ทั้งหมดสามารถย่อมาจากตัวอักษรตัวแรก
ถ้าไม่มีหน่วยใดได้รับ จะถือว่า 'วินาที'

ตัวอย่างที่ 1: ให้ความสำคัญเมื่องานใด ๆ ที่ดำเนินการในวันสุดท้ายล้มเหลว

check_postgres_pgagent_jobs --critical=1d

ตัวอย่างที่ 2: ให้คำเตือนเมื่องานใด ๆ ที่ดำเนินการในสัปดาห์ที่แล้วล้มเหลว

check_postgres_pgagent_jobs --warning=7d

ตัวอย่างที่ 3: ให้คำวิจารณ์สำหรับงานที่ล้มเหลวใน 2 ชั่วโมงที่ผ่านมาและคำเตือนสำหรับ
งานที่ล้มเหลวใน 4 ชั่วโมงที่ผ่านมา:

check_postgres_pgagent_jobs --critical=2h --warning=4h

เตรียมพร้อม_txns
("symlink: check_postgres_prepared_txns") ตรวจสอบอายุของสิ่งที่เตรียมไว้
การทำธุรกรรม โปรดทราบว่าคนส่วนใหญ่จะไม่ใช้ธุรกรรมที่เตรียมไว้ เนื่องจากพวกเขาเป็นส่วนหนึ่ง
ของการผูกมัดสองส่วนและซับซ้อนในการรักษา พวกเขาไม่ควรสับสนกับ
งบที่เตรียมไว้ ซึ่งเป็นสิ่งที่คนส่วนใหญ่นึกถึงเมื่อได้ยินการเตรียมตัว NS
ค่าเริ่มต้นสำหรับคำเตือนคือ 1 วินาที เพื่อตรวจจับการใช้ธุรกรรมที่เตรียมไว้ซึ่ง
น่าจะเป็นความผิดพลาดในระบบส่วนใหญ่ คำเตือนและวิกฤตคือจำนวนวินาที a
เปิดธุรกรรมที่เตรียมไว้ก่อนที่จะได้รับการแจ้งเตือน

ตัวอย่างที่ 1: ให้คำเตือนเมื่อตรวจพบธุรกรรมที่เตรียมไว้:

check_postgres_prepared_txns -w 0

ตัวอย่างที่ 2: ให้คำวิจารณ์หากมีการเปิดธุรกรรมที่เตรียมไว้นานกว่า 10
วินาที แต่ให้เวลาสูงสุด 360 วินาทีสำหรับฐานข้อมูล 'shrike':

check_postgres_prepared_txns --critical=10 --exclude=เสือ
check_postgres_prepared_txns --critical=360 --include=เสือ

สำหรับเอาต์พุต MRTG ส่งคืนจำนวนวินาทีที่เปิดธุรกรรมที่เก่าที่สุดเป็น
บรรทัดแรก และฐานข้อมูลใดที่มาจากบรรทัดสุดท้าย

query_runtime
("symlink: check_postgres_query_runtime") ตรวจสอบว่าการสืบค้นข้อมูลเฉพาะใช้เวลานานเท่าใดจึงจะเรียกใช้
โดยดำเนินการ "อธิบายวิเคราะห์" กับมัน NS --คำเตือน และ --วิกฤต ตัวเลือกคือ
ระยะเวลาสูงสุดที่แบบสอบถามควรใช้ หน่วยที่ใช้ได้คือวินาที นาที และชั่วโมง
any สามารถย่อมาจากอักษรตัวแรกได้ ถ้าไม่มีหน่วยใดได้รับ จะถือว่า 'วินาที'
ต้องให้ทั้งคำเตือนและตัวเลือกที่สำคัญ ชื่อของมุมมองหรือฟังก์ชัน
ที่จะเรียกใช้จะต้องส่งผ่านไปยัง --ชื่อแบบสอบถาม ตัวเลือก. ต้องประกอบด้วยคำเดียว
(หรือ schema.word) โดยมีวงเล็บเสริมต่อท้าย

ตัวอย่างที่ 1: ให้ความสำคัญหากฟังก์ชันชื่อ "speedtest" ไม่ทำงานใน 10 วินาทีหรือ
น้อยกว่า

check_postgres_query_runtime --queryname='speedtest()' --critical=10 --warning=10

สำหรับเอาต์พุต MRTG รายงานเวลาเป็นวินาทีเพื่อให้การสืบค้นเสร็จสิ้นในบรรทัดแรก
บรรทัดที่สี่แสดงรายการฐานข้อมูล

แบบสอบถาม_เวลา
("symlink: check_postgres_query_time") ตรวจสอบความยาวของข้อความค้นหาที่ทำงานอยู่ตั้งแต่หนึ่งรายการขึ้นไป
ฐานข้อมูล ไม่จำเป็นต้องเรียกใช้สิ่งนี้มากกว่าหนึ่งครั้งบนคลัสเตอร์ฐานข้อมูลเดียวกัน บันทึก
ว่าสิ่งนี้ไม่รวมการสืบค้นที่ "ไม่ได้ใช้งานในการทำธุรกรรม" แล้ว ฐานข้อมูลสามารถ
กรองโดยใช้ --รวม และ --ไม่รวม ตัวเลือก. ดูส่วน "การกรองพื้นฐาน"
สำหรับรายละเอียดเพิ่มเติม คุณยังสามารถกรองผู้ใช้ที่เรียกใช้แบบสอบถามด้วย --includeuser
และ --ไม่รวมผู้ใช้ ตัวเลือก. ดูส่วน "การกรองชื่อผู้ใช้" สำหรับรายละเอียดเพิ่มเติม

ค่าสำหรับ --คำเตือน และ --วิกฤต ตัวเลือกคือระยะเวลา และค่าเริ่มต้นเป็น '2
นาที' และ '5 นาที' ตามลำดับ หน่วยที่ถูกต้องคือ 'วินาที', 'นาที', 'ชั่วโมง' หรือ
'วัน' แต่ละรายการอาจเขียนเป็นเอกพจน์หรือย่อให้เหลือแค่อักษรตัวแรก ถ้าไม่มีหน่วย
ได้รับ หน่วยจะถือว่าเป็นวินาที

การดำเนินการนี้ต้องใช้ Postgres 8.1 หรือดีกว่า

ตัวอย่างที่ 1: ให้คำเตือนหากมีการสืบค้นใด ๆ ใช้เวลานานกว่า 3 นาทีและ a
สำคัญถ้านานกว่า 5 นาที

check_postgres_query_time --port=5432 --warning='3 minutes' --critical='5 minutes'

ตัวอย่างที่ 2: การใช้ค่าเริ่มต้น (2 และ 5 นาที) ตรวจสอบฐานข้อมูลทั้งหมดยกเว้นเหล่านั้น
เริ่มต้นด้วย 'แม่แบบ'

check_postgres_query_time --port=5432 --exclude=~^เทมเพลต

ตัวอย่างที่ 3: เตือนหากผู้ใช้ 'don' มีการสืบค้นที่ทำงานเกิน 20 วินาที

check_postgres_query_time --port=5432 --includeuser=don --warning=20s

สำหรับเอาต์พุต MRTG ส่งคืนความยาวในหน่วยวินาทีของคิวรีที่ยาวที่สุดในตัวแรก
ไลน์. บรรทัดที่สี่ระบุชื่อของฐานข้อมูล

ทำซ้ำ_row
("symlink: check_postgres_replicate_row") ตรวจสอบว่าการจำลองแบบ master-slave ทำงาน
แก่ทาสหนึ่งคนหรือมากกว่านั้น

ตัวเลือก "--dbname", "--host" และ "--port" แรก ฯลฯ ถือเป็นตัวเลือกหลัก
ใช้ในภายหลังเป็นทาส ค่าหรือ --คำเตือน และ --วิกฤต ตัวเลือกคือ
หน่วยเวลา และต้องระบุอย่างน้อยหนึ่งหน่วย (ไม่มีค่าเริ่มต้น) หน่วยที่ถูกต้องคือ 'วินาที'
'นาที' 'ชั่วโมง' หรือ 'วัน' แต่ละคำอาจเขียนเป็นเอกพจน์หรือย่อเป็น
จดหมายฉบับแรก. ถ้าไม่มีหน่วยใดได้รับ หน่วยจะถือว่าเป็นวินาที

การตรวจสอบนี้จะอัปเดตแถวเดียวบนต้นแบบ แล้ววัดระยะเวลาที่ใช้ในการเป็น
นำไปใช้กับทาส ในการทำเช่นนี้ คุณต้องเลือกตารางที่กำลังจำลอง จากนั้น
หาแถวที่สามารถเปลี่ยนแปลงได้ และจะไม่ถูกเปลี่ยนแปลงโดยกระบวนการอื่นใด NS
คอลัมน์เฉพาะของแถวนี้จะเปลี่ยนจากค่าหนึ่งเป็นอีกค่าหนึ่ง ทั้งหมดนี้ถูกเลี้ยง
ไปที่ตัวเลือก "repinfo" และควรประกอบด้วยตัวเลือกต่อไปนี้ โดยคั่นด้วยเครื่องหมายจุลภาค:
ชื่อตาราง คีย์หลัก รหัสคีย์ คอลัมน์ ค่าแรก ค่าที่สอง

ตัวอย่างที่ 1: Slony กำลังจำลองตารางชื่อ 'orders' จากโฮสต์ 'alpha' ไปยังโฮสต์ 'beta'
ในฐานข้อมูล 'การขาย' คีย์หลักของตารางชื่อ id และเรากำลังจะไปที่
ทดสอบแถวด้วยรหัส 3 (ซึ่งเป็นประวัติและไม่เคยเปลี่ยนแปลง) มีคอลัมน์
ชื่อ 'salesrep' ที่เราจะสลับจากค่า 'slon' เป็น 'nol' เพื่อตรวจสอบ
การจำลองแบบ เราต้องการส่งคำเตือนหากการจำลองแบบไม่เกิดขึ้นภายใน 10
วินาที

check_postgres_replicate_row --host=alpha --dbname=sales --host=beta
--dbname=sales --warning=10 --repinfo=orders,id,3,salesrep,slon,nols

ตัวอย่างที่ 2: Bucardo กำลังจำลองตารางชื่อ 'receipt' จากโฮสต์ 'green' ไปยังโฮสต์
'สีแดง' 'สีน้ำเงิน' และ 'สีเหลือง' ฐานข้อมูลสำหรับทั้งสองฝ่ายเป็น 'สาธารณะ' ฐานข้อมูลทาส
กำลังทำงานบนพอร์ต 5455 คีย์หลักชื่อ 'receipt_id' ซึ่งเป็นแถวที่เราต้องการใช้
มีค่าเท่ากับ 9 และคอลัมน์ที่เราต้องการเปลี่ยนสำหรับการทดสอบเรียกว่า 'โซน' ดี
สลับระหว่าง 'เหนือ' และ 'ใต้' สำหรับค่าของคอลัมน์นี้ และโยน if . วิกฤติ
การเปลี่ยนแปลงไม่ได้เกิดขึ้นกับทาสทั้งสามภายใน 5 วินาที

check_postgres_replicate_row --host=green --port=5455 --host=red,blue,yellow
--critical=5 --repinfo=receipt,receipt_id,9,โซน,เหนือ,ใต้

สำหรับเอาต์พุต MRTG จะส่งกลับบรรทัดแรกตามเวลาในหน่วยวินาทีที่การจำลองแบบใช้ไปยัง
เสร็จสิ้น. เวลาสูงสุดตั้งไว้ที่ 4 นาที 30 วินาที: หากไม่มีการจำลองแบบ
ผิดไปเสียนาน

Same_schema
("symlink: check_postgres_same_schema") ตรวจสอบว่าฐานข้อมูลตั้งแต่สองฐานข้อมูลขึ้นไปเหมือนกัน
เท่าที่สคีมาของพวกเขา (แต่ไม่ใช่ข้อมูลภายใน) นี้สะดวกอย่างยิ่งสำหรับการทำ
ตรวจสอบให้แน่ใจว่าทาสของคุณไม่ได้รับการแก้ไขหรือเสียหาย แต่อย่างใดเมื่อใช้ master to slave
การจำลองแบบ ไม่เหมือนกับการกระทำอื่นๆ ส่วนใหญ่ สิ่งนี้ไม่มีคำเตือนหรือเกณฑ์ที่สำคัญ - the
ฐานข้อมูลมีการซิงโครไนซ์หรือไม่ หากแตกต่างกัน รายการโดยละเอียดของ
ความแตกต่างถูกนำเสนอ

คุณอาจต้องการยกเว้นหรือกรองความแตกต่างบางอย่างออก วิธีทำคือเพิ่ม
สตริงไปยังตัวเลือก "--filter" หากต้องการแยกประเภทของวัตถุ ให้ใช้ "noname" โดยที่ 'name'
เป็นประเภทของอ็อบเจกต์ เช่น "noschema" เพื่อแยกวัตถุบางประเภทโดย
นิพจน์ทั่วไปเทียบกับชื่อ ใช้ "noname=regex" ดูตัวอย่างด้านล่างสำหรับa
ความเข้าใจที่ดีขึ้น

ประเภทของวัตถุที่สามารถกรองได้ ได้แก่:

ผู้ใช้งาน
คี
ตาราง
ดู
ดัชนี
ลำดับ
การ จำกัด
เรียก
ฟังก์ชัน

ตัวเลือกตัวกรอง "noposition" ป้องกันการตรวจสอบตำแหน่งของคอลัมน์ภายใน a
ตาราง

ตัวเลือกตัวกรอง "nofuncbody" ช่วยป้องกันการเปรียบเทียบเนื้อความของฟังก์ชันทั้งหมด

ตัวเลือกตัวกรอง "noperm" ป้องกันการเปรียบเทียบสิทธิ์ของวัตถุ

ในการจัดเตรียมฐานข้อมูลที่สอง เพียงผนวกส่วนต่างกับฐานข้อมูลแรกโดยโทรไปที่
อาร์กิวเมนต์การเชื่อมต่อที่เหมาะสม ตัวอย่างเช่น เพื่อเปรียบเทียบฐานข้อมูลบนโฮสต์ alpha และ
ไชโย ใช้ "--dbhost=alpha,bravo" ดูตัวอย่างด้านล่างด้วย

หากได้รับโฮสต์เพียงเครื่องเดียว จะถือว่าเรากำลังจัดทำรายงานแบบ "ตามเวลา" NS
ครั้งแรกที่เรียกใช้สแน็ปช็อตของรายการทั้งหมดในฐานข้อมูลจะถูกบันทึกลงในเครื่อง
ไฟล์. เมื่อคุณเรียกใช้อีกครั้ง สแน็ปช็อตนั้นจะถูกอ่านและกลายเป็น "ฐานข้อมูล #2" และเป็น
เทียบกับฐานข้อมูลปัจจุบัน

หากต้องการแทนที่ไฟล์เก่าที่เก็บไว้ด้วยเวอร์ชันใหม่ ให้ใช้อาร์กิวเมนต์ --replace

หากต้องการเปิดใช้งานสแน็ปช็อต ณ จุดต่างๆ คุณสามารถใช้อาร์กิวเมนต์ "--suffix" เพื่อสร้าง
ชื่อไฟล์ไม่ซ้ำกันในการรันแต่ละครั้ง ดูตัวอย่างด้านล่าง

ตัวอย่างที่ 1: ตรวจสอบว่าฐานข้อมูลสองฐานข้อมูลบนโฮสต์ star และ line เหมือนกัน:

check_postgres_same_schema --dbhost=star,บรรทัด

ตัวอย่างที่ 2: เหมือนเมื่อก่อน แต่ไม่รวมทริกเกอร์ที่มี "slony" ในชื่อ

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=daily
check_postgres_same_schema --dbname=cylon --suffix=รายสัปดาห์

ตัวอย่างที่ 6: เรียกใช้การเปรียบเทียบในอดีต จากนั้นแทนที่ไฟล์

check_postgres_same_schema --dbname=cylon --suffix=daily --replace

ลำดับ
("symlink: check_postgres_sequence") ตรวจสอบว่าลำดับทั้งหมดเหลือเท่าใดใน
ฐานข้อมูล ค่านี้วัดเป็นเปอร์เซ็นต์ของค่าที่เป็นไปได้ทั้งหมดที่ใช้
สำหรับแต่ละลำดับ NS --คำเตือน และ --วิกฤต ตัวเลือกควรแสดงเป็น
เปอร์เซ็นต์ ค่าเริ่มต้นคือ ลด 85% เพื่อเป็นอุทาหรณ์และ ลด 95% สำหรับการวิจารณ์ คุณอาจ
ใช้ --include และ --exclude เพื่อควบคุมว่าต้องตรวจสอบลำดับใด โปรดทราบว่าสิ่งนี้
เช็คทำบัญชีผิดปกติ ค่าต่ำสุด และ เพิ่มขึ้น by ค่านิยม แต่ไม่สนใจว่า
ลำดับถูกตั้งค่าเป็นวงจรหรือไม่

ผลลัพธ์สำหรับ Nagios ให้ชื่อของลำดับ เปอร์เซ็นต์ที่ใช้ และตัวเลข
ของ 'การโทร' ที่เหลือ ระบุว่าสามารถเรียก nextval ได้กี่ครั้งในลำดับนั้น
ก่อนถึงค่าสูงสุด

เอาต์พุตสำหรับ MRTG จะคืนค่าเปอร์เซ็นต์สูงสุดในทุกลำดับในบรรทัดแรก
และชื่อของแต่ละลำดับที่มีเปอร์เซ็นต์นั้นในบรรทัดที่สี่ คั่นด้วย "|"
(ท่อ) หากมีมากกว่าหนึ่งลำดับที่เปอร์เซ็นต์นั้น

ตัวอย่างที่ 1: ให้คำเตือนหากมีลำดับใกล้ถึง 95% เต็ม

check_postgres_sequence --dbport=5432 --คำเตือน=95%

ตัวอย่างที่ 2: ตรวจสอบว่าลำดับที่ชื่อ "orders_id_seq" ไม่เต็มเกินครึ่ง

check_postgres_sequence --dbport=5432 --critical=50% --include=orders_id_seq

การตั้งค่า_การตรวจสอบผลรวม
("symlink: check_postgres_settings_checksum") ตรวจสอบว่าการตั้งค่า Postgres ทั้งหมดเป็น
เหมือนกับครั้งล่าสุดที่คุณตรวจสอบ ทำได้โดยการสร้างเช็คซัมของรายการที่เรียงลำดับ
ของการตั้งชื่อและค่าของมัน โปรดทราบว่าผู้ใช้ที่แตกต่างกันในฐานข้อมูลเดียวกันอาจมี
ผลรวมการตรวจสอบที่แตกต่างกัน เนื่องจากการใช้ ALTER USER และเนื่องจาก superusers เห็นมากขึ้น
การตั้งค่ามากกว่าผู้ใช้ทั่วไป ไม่ว่าจะเป็น --คำเตือน หรือ --วิกฤต ตัวเลือกควรเป็น
ให้แต่ไม่ใช่ทั้งสองอย่าง ค่าของแต่ละรายการคือผลรวมของเช็ค ซึ่งเป็นเลขฐานสิบหก 32 ตัว
ค่า. คุณสามารถเรียกใช้ด้วยตัวเลือกพิเศษ "--critical=0" เพื่อค้นหาที่มีอยู่
เช็คซัม

การดำเนินการนี้ต้องใช้โมดูล Digest::MD5

ตัวอย่างที่ 1: ค้นหาเช็คซัมเริ่มต้นสำหรับฐานข้อมูลบนพอร์ต 5555 โดยใช้ผู้ใช้เริ่มต้น
(โดยปกติคือ postgres)

check_postgres_settings_checksum --port=5555 --critical=0

ตัวอย่างที่ 2: ตรวจสอบให้แน่ใจว่าไม่มีการเปลี่ยนแปลงการตั้งค่าและเตือนหากใช่ โดยใช้การตรวจสอบจาก
ข้างบน.

check_postgres_settings_checksum --port=5555 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231

สำหรับเอาต์พุต MRTG ส่งคืน 1 หรือ 0 ซึ่งบ่งชี้ความสำเร็จของความล้มเหลวของการตรวจสอบในการจับคู่
ต้องระบุ checksum เป็นอาร์กิวเมนต์ "--mrtg" บรรทัดที่สี่ให้ .เสมอ
เช็คซัมปัจจุบัน

slony_status
("symlink: check_postgres_slony_status") ตรวจสอบสถานะของคลัสเตอร์ Slony โดย
ดูผลลัพธ์ของมุมมอง sl_status ของ Slony นี้จะถูกส่งกลับเป็นจำนวน
วินาทีของ "เวลาหน่วง" NS --คำเตือน และ --วิกฤต ตัวเลือกควรแสดงเป็นเวลา
ค่าเริ่มต้นคือ 60 วินาที เพื่อเป็นอุทาหรณ์และ 300 วินาที สำหรับการวิจารณ์

อาร์กิวเมนต์ทางเลือก --สคีมา ระบุสคีมาที่ติดตั้ง Slony ถ้ามัน
ไม่ได้รับ สคีมาจะถูกกำหนดโดยอัตโนมัติทุกครั้งที่เรียกใช้การตรวจสอบนี้

ตัวอย่างที่ 1: ให้คำเตือนหาก Slony ล่าช้าเกิน 20 วินาที

check_postgres_slony_status --คำเตือน 20

ตัวอย่างที่ 2: ให้ค่าวิกฤตหาก Slony ติดตั้งภายใต้สคีมา "_slony" มีค่ามากกว่า 10
นาทีล้าหลัง

check_postgres_slony_status --schema=_slony --critical=600

การซิงโครไนซ์เวลา
("symlink: check_postgres_timesync") เปรียบเทียบเวลาของระบบท้องถิ่นกับเวลาที่รายงาน
โดยฐานข้อมูลอย่างน้อยหนึ่งฐานข้อมูล NS --คำเตือน และ --วิกฤต ตัวเลือกแสดงถึงจำนวน
วินาทีระหว่างทั้งสองระบบก่อนที่จะได้รับการแจ้งเตือน หากไม่ระบุไว้
มีการใช้ค่าเริ่มต้น ซึ่งได้แก่ '2' และ '5' ค่าเตือนต้องไม่เกิน
ค่าวิกฤต เนื่องจากการทดสอบนี้มีลักษณะที่ไม่แน่นอน ค่าของ '0' หรือ '1' จึงไม่ใช่
แนะนำ

สตริงที่ส่งคืนแสดงความแตกต่างของเวลาและเวลาในแต่ละด้านที่เขียน
ออก.

ตัวอย่างที่ 1: ตรวจสอบว่าฐานข้อมูลบนโฮสต์ 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 รายการขึ้นไปที่ไม่ได้ใช้งานในการทำธุรกรรมสำหรับ more
มากกว่า 10 วินาที:

check_postgres_txn_idle --port=5432 --critical='5 เป็นเวลา 10 วินาที'

สำหรับเอาต์พุต MRTG ส่งคืนเวลาเป็นวินาทีของธุรกรรมที่ไม่ได้ใช้งานนานที่สุด
วิ่ง. บรรทัดที่สี่ส่งคืนชื่อของฐานข้อมูลและข้อมูลอื่น ๆ เกี่ยวกับ
ธุรกรรมที่ยาวที่สุด

txn_time
("symlink: check_postgres_txn_time") ตรวจสอบความยาวของธุรกรรมที่เปิดอยู่ตั้งแต่หนึ่งรายการขึ้นไป
ฐานข้อมูล ไม่จำเป็นต้องเรียกใช้คำสั่งนี้มากกว่าหนึ่งครั้งต่อคลัสเตอร์ฐานข้อมูล
ฐานข้อมูลสามารถกรองโดยใช้ --รวม และ --ไม่รวม ตัวเลือก. ดู "พื้นฐาน
FILTERING" สำหรับรายละเอียดเพิ่มเติม เจ้าของธุรกรรมยังสามารถกรองโดย
ใช้ --includeuser และ --ไม่รวมผู้ใช้ ตัวเลือก. ดูส่วน "การกรองชื่อผู้ใช้"
.

ค่าหรือ --คำเตือน และ --วิกฤต ตัวเลือกคือหน่วยของเวลาและต้องระบุ
(ไม่มีค่าเริ่มต้น). หน่วยที่ถูกต้องคือ 'วินาที', 'นาที', 'ชั่วโมง' หรือ 'วัน' แต่ละคนอาจจะ
เขียนเอกพจน์หรือย่อแค่อักษรตัวแรก หากไม่มีหน่วยให้
หน่วยถือเป็นวินาที

การดำเนินการนี้ต้องใช้ Postgres 8.3 หรือดีกว่า

ตัวอย่างที่ 1: ให้ความสำคัญหากมีการเปิดธุรกรรมใด ๆ นานกว่า 10 นาที:

check_postgres_txn_time --port=5432 --critical='10 minutes'

ตัวอย่างที่ 1: เตือนหากผู้ใช้ 'คลังสินค้า' มีธุรกรรมที่เปิดเกิน 30 วินาที

check_postgres_txn_time --port-5432 --warning = 30s --includeuser = คลังสินค้า

สำหรับเอาต์พุต MRTG ส่งคืนเวลาสูงสุดเป็นวินาทีที่เปิดธุรกรรมบน
เส้นแรก. บรรทัดที่สี่ระบุชื่อของฐานข้อมูล

txn_wraparound
("symlink: check_postgres_txn_wraparound") ตรวจสอบว่าการทำธุรกรรมแบบวนรอบใกล้แค่ไหน
หรือได้รับฐานข้อมูลมากขึ้น NS --คำเตือน และ --วิกฤต ตัวเลือกระบุจำนวน
ของธุรกรรมที่ทำเสร็จแล้ว และต้องเป็นจำนวนเต็มบวก หากไม่ระบุตัวเลือกใดตัวเลือกหนึ่ง
ใช้ค่าเริ่มต้น 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 เวอร์ชันที่ต้องการคือ
วิ่ง. NS --คำเตือน และ --วิกฤต ตัวเลือก (ต้องการเพียงตัวเดียวเท่านั้น) จะต้องอยู่ในรูปแบบ
XY or XYZ ที่ไหน X คือหมายเลขเวอร์ชันหลัก Y คือหมายเลขรุ่นรอง และ Z is
การแก้ไข

ตัวอย่างที่ 1: ให้คำเตือนหากฐานข้อมูลบนพอร์ต 5678 ไม่ใช่เวอร์ชัน 8.4.10:

check_postgres_version --port=5678 -w=8.4.10

ตัวอย่างที่ 2: ให้คำเตือนหากฐานข้อมูลใด ๆ บนโฮสต์ Valley, Grain หรือ Sunshine ไม่ใช่ 8.3:

check_postgres_version -H หุบเขา, เมล็ดพืช, แสงแดด --critical=8.3

สำหรับเอาต์พุต MRTG รายงาน 1 หรือ 0 ที่ระบุว่าสำเร็จหรือล้มเหลวในบรรทัดแรก NS
บรรทัดที่สี่ระบุเวอร์ชันปัจจุบัน ต้องระบุเวอร์ชันผ่าน "--mrtg"
ตัวเลือก

วอล_ไฟล์
("symlink: check_postgres_wal_files") ตรวจสอบจำนวนไฟล์ WAL ที่มีอยู่ในไฟล์ pg_xlog
ไดเร็กทอรีซึ่งพบจาก your data_directory, บางครั้งก็เปรียบเสมือนเป็นเครื่องเชื่อมถึงกัน
ฟิสิคัลดิสก์ด้วยเหตุผลด้านประสิทธิภาพ การดำเนินการนี้ต้องเรียกใช้ในฐานะ superuser เพื่อ
เข้าถึงเนื้อหาของ pg_xlog ไดเร็กทอรี เวอร์ชันขั้นต่ำที่จะใช้การดำเนินการนี้คือ
โพสเกรส 8.1 NS --คำเตือน และ --วิกฤต ตัวเลือกเป็นเพียงจำนวนไฟล์ใน
pg_xlog ไดเร็กทอรี จะตั้งค่าตัวเลขใดจะแตกต่างกันไป แต่แนวทางทั่วไปคือให้ใส่
ตัวเลขที่สูงกว่าปกติเล็กน้อยเพื่อจับปัญหาแต่เนิ่นๆ

โดยปกติ ไฟล์ WAL จะถูกปิดและนำกลับมาใช้ใหม่ แต่เป็นธุรกรรมที่เปิดเป็นเวลานาน หรือ a
ความผิดพลาด archive_command สคริปต์อาจทำให้ Postgres สร้างไฟล์มากเกินไป ในที่สุด
การทำเช่นนี้จะทำให้พื้นที่ดิสก์ที่ใช้อยู่หมด ซึ่ง Postgres จะ
ปิดตัวลง.

ตัวอย่างที่ 1: ตรวจสอบว่าจำนวนไฟล์ WAL คือ 20 หรือน้อยกว่าบนโฮสต์ "pluto"

check_postgres_wal_files --host=พลูโต --critical=20

สำหรับเอาต์พุต MRTG รายงานจำนวนไฟล์ WAL ในบรรทัดที่ 1

สร้างใหม่_symlinks
สร้างใหม่_symlinks_force
การดำเนินการนี้ไม่ต้องการอาร์กิวเมนต์อื่น ๆ และไม่เชื่อมต่อกับฐานข้อมูลใด ๆ แต่เพียงแค่
สร้าง symlink ในไดเร็กทอรีปัจจุบันสำหรับแต่ละการกระทำในรูปแบบ
check_postgres_. หากไฟล์นั้นมีอยู่แล้ว ไฟล์นั้นจะไม่ถูกเขียนทับ ถ้า
การดำเนินการคือ rebuild_symlinks_force จากนั้น symlink จะถูกเขียนทับ ทางเลือก
--symlinks เป็นวิธีที่สั้นกว่าในการพูด --action=rebuild_symlinks

พื้นฐาน การกรอง


ตัวเลือกต่างๆ --รวม และ --ไม่รวม สามารถรวมกันเพื่อจำกัดสิ่งที่ตรวจสอบได้
ขึ้นอยู่กับการกระทำ ชื่อของฐานข้อมูลสามารถกรองได้เมื่อใช้ดังต่อไปนี้
การดำเนินการ: แบ็กเอนด์, database_size, ล็อก, 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

หากให้เฉพาะตัวเลือกการรวม ระบบจะตรวจสอบเฉพาะรายการที่ตรงกันเท่านั้น
อย่างไรก็ตาม หากให้ทั้งไม่รวมและรวม การยกเว้นจะกระทำก่อน และการรวม
หลังจากนั้นเพื่อคืนสถานะสิ่งที่อาจได้รับการยกเว้น ทั้งคู่ --รวม และ --ไม่รวม สามารถ
ให้หลายครั้ง และ/หรือเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค ตัวหนอนชั้นนำจะตรงกับ
คำต่อไปนี้เป็นนิพจน์ทั่วไป

หากต้องการจับคู่สคีมา ให้สิ้นสุดข้อความค้นหาด้วยจุดเดียว สามารถใช้ตัวหนอนชั้นนำได้
สำหรับสคีมาเช่นกัน

โปรดใช้ความระมัดระวังเมื่อใช้การกรอง: กฎการรวมที่แบ็กเอนด์ เช่น may
รายงานว่าไม่มีปัญหาเพียงเพราะฐานข้อมูลที่ตรงกันไม่มีแบ็กเอนด์ แต่เพราะคุณ
สะกดชื่อฐานข้อมูลผิด!

ตัวอย่าง:

ตรวจสอบเฉพาะรายการที่ชื่อ pg_class:

--include=pg_class

ตรวจสอบเฉพาะรายการที่มีตัวอักษร 'pg_':

--รวม=~pg_

ตรวจสอบเฉพาะรายการที่ขึ้นต้นด้วย 'pg_':

--รวม=~^pg_

ยกเว้นรายการที่ชื่อ 'test':

--exclude=ทดสอบ

ยกเว้นรายการทั้งหมดที่มีตัวอักษร 'test:

--exclude=~ทดสอบ

ยกเว้นรายการทั้งหมดในสคีมา 'pg_catalog':

--exclude='pg_catalog'

ยกเว้นรายการทั้งหมดที่มีตัวอักษร 'เอซ' แต่อนุญาตให้รายการ 'ปิดหน้า':

--exclude=~เอซ --include=faceoff

ไม่รวมรายการทั้งหมดที่ขึ้นต้นด้วยตัวอักษร 'pg_' ที่มีตัวอักษร 'slon' หรือ
ซึ่งมีชื่อว่า 'sql_settings' หรือ 'green' ตรวจสอบรายการด้วยตัวอักษรโดยเฉพาะ
'prod' ในชื่อของพวกเขา และตรวจสอบรายการที่ชื่อ 'pg_relname' เสมอ:

--exclude=~^pg_,~slon,sql_settings --exclude=green --include=~prod,pg_relname

USER ชื่อ การกรอง


ตัวเลือกต่างๆ --includeuser และ --ไม่รวมผู้ใช้ สามารถใช้กับการกระทำบางอย่างเพื่อตรวจสอบเท่านั้น
ออบเจ็กต์ฐานข้อมูลที่เป็นของ (หรือไม่ได้เป็นเจ้าของ) ผู้ใช้ตั้งแต่หนึ่งรายขึ้นไป หนึ่ง --includeuser ตัวเลือก
เสมอสำคัญกว่า an --ไม่รวมผู้ใช้ ตัวเลือก. คุณสามารถให้แต่ละตัวเลือกได้มากกว่าหนึ่งครั้งสำหรับ
ผู้ใช้หลายคน หรือคุณจะระบุรายการที่คั่นด้วยเครื่องหมายจุลภาคก็ได้ การกระทำที่ใช้อยู่ในปัจจุบัน
ตัวเลือกเหล่านี้คือ:

ฐานข้อมูล_ขนาด
สุดท้าย_วิเคราะห์
Last_วิเคราะห์อัตโนมัติ
Last_vacuum
Last_autovacuum
แบบสอบถาม_เวลา
ความสัมพันธ์_ขนาด
txn_time

ตัวอย่าง:

ตรวจสอบเฉพาะรายการที่เป็นเจ้าของโดยผู้ใช้ชื่อ greg:

--includeuser=greg

ตรวจสอบเฉพาะรายการที่เป็นเจ้าของโดยวัตสันหรือคริก:

--includeuser=วัตสัน,คริก

ตรวจสอบเฉพาะรายการที่เป็นของ crick,franklin, watson หรือ wilkins:

--includeuser=watson --includeuser=แฟรงคลิน --includeuser=crick,wilkins

ตรวจสอบรายการทั้งหมดยกเว้นรายการที่เป็นของผู้ใช้สกอตต์:

--excludeuser=scott

ทดสอบ โหมด


เพื่อช่วยในการตั้งค่า โปรแกรมนี้สามารถเรียกใช้ใน "โหมดทดสอบ" โดยระบุ
--ทดสอบ ตัวเลือก. การดำเนินการนี้จะทำการทดสอบพื้นฐานบางอย่างเพื่อให้แน่ใจว่าฐานข้อมูลสามารถ
ได้รับการติดต่อ และเป็นไปตามข้อกำหนดเบื้องต้นของการดำเนินการบางอย่าง เช่น ผู้ใช้เป็น .หรือไม่
superuser หาก Postgres เวอร์ชันใหม่เพียงพอ และหากเปิดใช้งาน stats_row_level

ใช้ check_postgres_table_sizep ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

  • 1
    Phaser
    Phaser
    Phaser เป็นโปรแกรมเปิดที่รวดเร็ว ฟรี และสนุก
    ซอร์สเฟรมเวิร์กเกม HTML5 ที่นำเสนอ
    การแสดงผล WebGL และ Canvas ทั่ว
    เว็บเบราว์เซอร์เดสก์ท็อปและมือถือ เกม
    สามารถร่วม...
    ดาวน์โหลดเฟสเซอร์
  • 2
    เครื่องยนต์ VASSAL
    เครื่องยนต์ VASSAL
    VASSAL เป็นเอ็นจิ้นเกมสำหรับการสร้าง
    บอร์ดอิเล็กทรอนิกส์แบบดั้งเดิม
    และการ์ดเกม มันให้การสนับสนุนสำหรับ
    การเรนเดอร์ชิ้นส่วนเกมและการโต้ตอบ
    และ ...
    ดาวน์โหลด VASSAL Engine
  • 3
    OpenPDF - ทางแยกของ iText
    OpenPDF - ทางแยกของ iText
    OpenPDF เป็นไลบรารี Java สำหรับสร้าง
    และแก้ไขไฟล์ PDF ด้วย LGPL และ
    ใบอนุญาตโอเพ่นซอร์ส MPL OpenPDF คือ
    LGPL / MPL โอเพ่นซอร์สผู้สืบทอดของ iText
    แล้ว ...
    ดาวน์โหลด OpenPDF - Fork of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - ระบบอัตโนมัติ
    การวิเคราะห์ทางธรณีวิทยา - เป็นภูมิศาสตร์
    ซอฟต์แวร์ระบบสารสนเทศ (GIS) พร้อม
    ความสามารถอันยิ่งใหญ่สำหรับ geodata
    การประมวลผลและอนา...
    ดาวน์โหลด SAGA GIS
  • 5
    กล่องเครื่องมือสำหรับ Java/JTOpen
    กล่องเครื่องมือสำหรับ Java/JTOpen
    IBM Toolbox สำหรับ Java / JTOpen คือ
    ไลบรารีของคลาส Java ที่สนับสนุน
    ไคลเอนต์/เซิร์ฟเวอร์และโปรแกรมอินเทอร์เน็ต
    รุ่นไปยังระบบที่ใช้ OS/400,
    i5/โอเอส โอ...
    ดาวน์โหลดกล่องเครื่องมือสำหรับ Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (หรือ D3 สำหรับเอกสารที่ขับเคลื่อนด้วยข้อมูล)
    เป็นไลบรารี JavaScript ที่ช่วยให้คุณ
    เพื่อสร้างข้อมูลเชิงโต้ตอบแบบไดนามิก
    การแสดงภาพในเว็บเบราว์เซอร์ ด้วย D3
    คุณ...
    ดาวน์โหลด D3.js
  • เพิ่มเติม»

คำสั่ง Linux

  • 1
    อธิบดี
    อธิบดี
    abidiff - เปรียบเทียบ ABI ของไฟล์ ELF
    Abidiff เปรียบเทียบ Application Binary
    อินเทอร์เฟซ (ABI) ของสองไลบรารีที่ใช้ร่วมกัน
    ในรูปแบบเอลฟ์ มันเปล่งออกมาอย่างมีความหมาย
    รายงาน...
    เรียกใช้ abidiff
  • 2
    อาบิดวี
    อาบิดวี
    abidw - ทำให้เป็นอันดับ ABI ของ ELF
    ไฟล์ abidw อ่านไลบรารีที่ใช้ร่วมกันใน ELF
    จัดรูปแบบและปล่อยการแสดง XML
    ของ ABI ไปยังเอาต์พุตมาตรฐาน เดอะ
    ปล่อยออกมา ...
    วิ่งต่อไป
  • 3
    โคแพค2xml
    โคแพค2xml
    bibutils - การแปลงบรรณานุกรม
    ค่าสาธารณูปโภค ...
    เรียกใช้ copac2xml
  • 4
    ชาวอียิปต์โบราณ
    ชาวอียิปต์โบราณ
    copt - เครื่องมือเพิ่มประสิทธิภาพตาแมว SYSNOPIS:
    ไฟล์คอปต์ .. รายละเอียด: คอปต์คือไฟล์
    เครื่องมือเพิ่มประสิทธิภาพช่องมองสำหรับวัตถุประสงค์ทั่วไป มัน
    อ่านรหัสจากอินพุตมาตรฐานและ
    เขียน ...
    เรียกใช้ตำรวจ
  • 5
    Gather_stx_titles
    Gather_stx_titles
    Gather_stx_titles - รวบรวมชื่อเรื่อง
    ประกาศจากเอกสาร Stx ...
    เรียกใช้ Gather_stx_titles
  • 6
    ม้านั่ง Gatling
    ม้านั่ง Gatling
    ม้านั่ง - เกณฑ์มาตรฐาน http ...
    เรียกม้านั่ง Gatling
  • เพิ่มเติม»

Ad