ããã¯ã³ãã³ã check_postgres_autovac_freezep ã§ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãMAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ã®è€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã® XNUMX ã€ã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããŸãã
ããã°ã©ã ïŒ
NAME
check_postgres-NagiosãMRTGãCactiãªã©ã®Postgresã¢ãã¿ãªã³ã°ã¹ã¯ãªãã
ãã®ããã¥ã¡ã³ãã§ã¯ãcheck_postgresããŒãžã§ã³2.22.0ã«ã€ããŠèª¬æããŠããŸã
SYNOPSIS
##ãã¹ãŠã®ã·ã³ããªãã¯ãªã³ã¯ãäœæãã
check_postgres --symlinks
## PostgresããŒã¿ããŒã¹ 'pluto'ãžã®æ¥ç¶ã確èªããŠãã ããïŒ
check_postgres --action = connection --db = pluto
##åãããšã§ãããã·ã³ããªãã¯ãªã³ã¯ã䜿çšããŸã
check_postgres_connection --db = pluto
## 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ã¯ãXNUMXã€ä»¥äžã«å¯ŸããŠããŸããŸãªãã¹ããå®è¡ããPerlã¹ã¯ãªããã§ãã
PostgresããŒã¿ããŒã¹ã psqlããã°ã©ã ã䜿çšããŠæ å ±ãåéãã
çµæã¯ãNagiosãMRTGããŸãã¯simpleã®XNUMXã€ã®åœ¢åŒã®ããããã«ãªããŸãã
åºå ã¢ãŒã
ã--outputããªãã·ã§ã³ã䜿çšããŠãåºåãå€æŽã§ããŸãã ããã©ã«ãã®åºåã¯nagiosã§ãã
ãã ããå¿ èŠã«å¿ããŠãã¹ã¯ãªããã®äžéšã§ãããå€æŽã§ããŸãã çŸåšã®ãªãã·ã§ã³
éžæè¢ã¯ Nagiosã®, MRTG, ã·ã³ãã«ãªã ããããåºååŒæ°ãå ¥åããå¿ èŠããªãããã
æéã®å Žåã-outputåŒæ°ãæå®ãããŠããªãå Žåãããã³åºåã®ã¿ã€ãã¯èªåçã«èšå®ãããŸãã
çŸåšã®ãã£ã¬ã¯ããªã®ååã«ã¯ãåºåãªãã·ã§ã³ã®XNUMXã€ãå«ãŸããŠããŸãã ããšãã°ã
mrtgãšããååã®ãã£ã¬ã¯ããªã§ã -ã·ã³ããªãã¯ãªã³ã¯ åŒæ°ã¯
ãã®ãã£ã¬ã¯ããªããå®è¡ãããã¢ã¯ã·ã§ã³ãåžžã«ããã©ã«ãã§ãmrtgãã®åºåã«ãªãããã«ããŸã
--output = simpleã®ã·ã§ãŒãã«ãããšããŠã-simpleãšå ¥åã§ããŸããããã¯ã
ãã£ã¬ã¯ããªã®åœåã®ããªãã¯ã
Nagios åºå
ããã©ã«ãã®åºå圢åŒã¯Nagiosçšã§ãããã¯XNUMXè¡ã®æ å ±ãš
XNUMXã€ã®ç¹å®ã®çµäºã³ãŒãïŒ
0ïŒOKïŒ
1ïŒèŠåïŒ
2ïŒã¯ãªãã£ã«ã«ïŒ
3ïŒäžæïŒ
åºåè¡ã¯ãäžèšã®åèªã®XNUMXã€ã§ãããã³ãã³ãšããã®å 容ã®ç°¡åãªèª¬æã§ãã
枬å®ãããŸããã è¿œå ã®çµ±èšæ å ±ãããã³ã³ãã³ãã®åèšæé
åã£ããåºåããããšãã§ããŸãïŒåŒæ°ã«é¢ããããã¥ã¡ã³ããåç §ããŠãã ãã --ã·ã§ãŒããã©ãŒãã³ã¹,
--perflimit, - ã·ã§ãŒã¿ã€ã .
MRTG åºå
MRTGåºåã¯XNUMXè¡ã§ãæåã®è¡ã¯åžžã«XNUMXã€ã®çªå·ã瀺ããŸãã
éèŠæ§ã å¯èœãªå Žåããã®æ°å€ã¯ã
ãã€ãã§ããããtrueããŸãã¯ãfalseãã®ã¿ãè¿ãã¢ã¯ã·ã§ã³ã®å Žåã¯1ãŸãã¯0ã«ãªãããšããããŸãã
check_postgres_versionãšããŠã XNUMXè¡ç®ã¯è¿œå ã®çµ±èšã§ããã次ã®å Žåã«ã®ã¿äœ¿çšãããŸãã
ããã€ãã®ã¢ã¯ã·ã§ã³ã XNUMXè¡ç®ã¯ã皌åæéãã瀺ããŠããã䜿çšãããŠããŸããã XNUMXè¡ç®ã¯
説æãšéåžžã¯ããŒã¿ããŒã¹ã®ååã瀺ããæåã®è¡ããã®çµ±èš
ããåŒã£åŒµãããŸããããã¢ã¯ã·ã§ã³ã«ãã£ãŠç°ãªãå ŽåããããŸãã
äžéšã®ã¢ã¯ã·ã§ã³ã¯ãªãã·ã§ã³ãåãå ¥ããŸã --MRTG åºåãããã«å¶åŸ¡ããããã®åŒæ°ã
åã¢ã¯ã·ã§ã³ã®æ£ç¢ºãªMRTGåºåã®è©³çŽ°ã«ã€ããŠã¯ãåã¢ã¯ã·ã§ã³ã®ããã¥ã¡ã³ããåç §ããŠãã ããã
ç°¡åãªæ¡åŒµã§ åºå
åçŽãªåºåã¯ãMRTGã®ãã®ã®åçŽãªåãæšãŠãããããŒãžã§ã³ã§ãããåçŽã«
æåã®çªå·ãšä»ã«ã¯äœããããŸããã ããã¯ãç¶æ ã確èªãããã ãã®å Žåã«éåžžã«äŸ¿å©ã§ãã
ãããå€ã«é¢ä¿ãªããäœãã®ã æ°å€åºåã¯æ¬¡ã®ããã«å€æã§ããŸã
KBãMBãGBãTBããŸãã¯EBãåºååŒæ°ã«è¿œå ããŸãã次ã«äŸã瀺ããŸãã
--output = simpleãMB
ãµããã³ åºå
Cactiã®åºåã¯ãåãè¡ã«ããXNUMXã€ä»¥äžã®ã¢ã€ãã ã§æ§æãããåçŽãªååãä»ããããŠããŸãã
ã³ãã³ããããŠæ°åã çŸæç¹ã§ã¯ãæ瀺çãªCactiåºåã䜿çšããå¯äžã®ã¢ã¯ã·ã§ã³ã¯
'dbstats'ã§ããããã®å ŽåãCactiã®ã¿ã§ããããã-outputãªãã·ã§ã³ã䜿çšããå¿ èŠã¯ãããŸããã
ãã®ã¢ã¯ã·ã§ã³ã®åºåã ä»ã®å€ãã®ã¢ã¯ã·ã§ã³ã§ã¯ã-simpleã䜿çšããã ãã§Cactiãäœæã§ããŸã
幞ãã
DATABASE ã€ã³ã¿ãŒãã§ã€ã¹ OPTIONS
ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ãããŒã¿ããŒã¹ãªãã·ã§ã³ã®å ±éã»ãããåãå ¥ããŸãã
-H NAME or --host = NAME
NAMEã§ç€ºããããã¹ãã«æ¥ç¶ããŸãã ååã®ã³ã³ãåºåããªã¹ãã«ããããšãã§ããŸãã
è€æ°ã®ãã¹ãåŒæ°ã䜿çšã§ããŸãã ãã¹ããæå®ãããŠããªãå Žåãããã©ã«ãã§ãPGHOSTãã«ãªããŸã
ç°å¢å€æ°ãŸãã¯ãã¹ãããŸã£ãããªãïŒããŒã«ã«Unixãœã±ããã䜿çšããŠããããšã瀺ããŸãïŒã
ã--dbhostãã䜿çšããããšãã§ããŸãã
-p PORT or --port = PORT
æå®ãããããŒãçªå·ã䜿çšããŠæ¥ç¶ããŸãã ããŒãã®ã³ã³ãåºåããªã¹ãã«ããããšãã§ããŸã
çªå·ãããã³è€æ°ã®ããŒãåŒæ°ãèš±å¯ãããŸãã ããŒãçªå·ãæå®ãããŠããªãå Žåãããã©ã«ã
ãPGPORTãç°å¢å€æ°ã«ã ãããèšå®ãããŠããªãå Žåãããã©ã«ãã§5432ã«ãªããŸãã
ã--dbportãã䜿çšããŸã
-ãã·ãã« 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ã«ãããŸãã ããªããããå Žå
Postgresã®ããŒãžã§ã³9.0以éã䜿çšãããšã次ã®ãã¡ã€ã«ã.pg_service.confãã䜿çšã§ããŸãã
ã¹ã¯ãªãããå®è¡ããŠãããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªïŒäŸïŒnagiosïŒã
ãã®ãã¡ã€ã«ã«ã¯ãæ¥ç¶ãªãã·ã§ã³ã®ç°¡åãªãªã¹ããå«ãŸããŠããŸãã è¿œå ã§æž¡ãããšãã§ããŸã
--dbservice = "maindatabase sslmode = require"ãªã©ã®ãã®ãªãã·ã§ã³ã䜿çšããå Žåã®æ å ±
ãã®ãã¡ã€ã«ã®ããã¥ã¡ã³ãã¯æ¬¡ã®å Žæã«ãããŸãã
http://www.postgresql.org/docs/current/static/libpq-pgservice.html
ããŒã¿ããŒã¹æ¥ç¶ãªãã·ã§ã³ã¯ã°ã«ãŒãåã§ããŸãã --host = aãb --host = c -ããŒã= 1234
-ããŒã= 3344 a-1234ãb-1234ãããã³c-3344ã«æ¥ç¶ããŸãã äžåºŠèšå®ãããšããªãã·ã§ã³ã«æ³šæããŠãã ãã
åã³å€æŽããããŸã§æã¡è¶ãããŸãã
äŸïŒ
--host = aãb --port = 5433 --db = c
ããŒã¿ããŒã¹cã䜿çšããŠãããŒã5433ã«5433åæ¥ç¶ãããã¹ãaããã³bã«æ¥ç¶ããŸããa-5433-cb-XNUMX-c
--host = aãb --port = 5433 --db = cãd
5433åæ¥ç¶ããŸãïŒa-5433-c a-5433-d b-5433-c b-XNUMX-d
--host = aãb --host = foo --port = 1234 --port = 5433 --db = eãf
1234åæ¥ç¶ããŸãïŒa-1234-e a-1234-f b-1234-e b-5433-f foo-5433-e foo-XNUMX-f
--host = aãb --host = x --port = 5432,5433 --dbuser = alice --dbuser = bob -db = baz
5432åæ¥ç¶ããŸãïŒa-5433-alice-baz b-5433-alice-baz x-XNUMX-bob-baz
--dbservice = "foo" --port = 5433
pg_service.confãã¡ã€ã«ã®ååä»ããµãŒãã¹ãfooãã䜿çšããŠæ¥ç¶ããŸãããããŒãããªãŒããŒã©ã€ãããŸã
ãã®ä» OPTIONS
ãã®ä»ã®ãªãã·ã§ã³ãå«ãŸããŸãïŒ
--action = NAME
å®è¡ããŠããã¢ã¯ã·ã§ã³ã瀺ããŸãã ã·ã³ããªãã¯ãªã³ã¯ããããã¡ã€ã«ã䜿çšããªãéãå¿ é ã§ãã
ãã¡ã€ã«ã®ååãã¢ã¯ã·ã§ã³ãç解ããããã«äœ¿çšãããå Žåã
-èŠå= VAL or -w VAL
èŠåã¢ã©ãŒããçºçãããããå€ãèšå®ããŸãã ãã®ããã®æå¹ãªãªãã·ã§ã³
ãªãã·ã§ã³ã¯ã䜿çšããã¢ã¯ã·ã§ã³ã«ãã£ãŠç°ãªããŸãã
--critical = VAL or -c VAL
ã¯ãªãã£ã«ã«ã¢ã©ãŒããçºçãããããå€ãèšå®ããŸãã ãã®ããã®æå¹ãªãªãã·ã§ã³
ãªãã·ã§ã³ã¯ã䜿çšããã¢ã¯ã·ã§ã³ã«ãã£ãŠç°ãªããŸãã
-t VAL or --timeout = VAL
ã¿ã€ã ã¢ãŠããç§åäœã§èšå®ããŸãããã®åŸãã¹ã¯ãªããã¯å®è¡äžã®åŠçãäžæ¢ãã
UNKNOWNã¹ããŒã¿ã¹ãè¿ããŸãã ã¿ã€ã ã¢ãŠãã¯Postgresã¯ã©ã¹ã¿ãŒããšã§ãããå šäœã§ã¯ãããŸãã
èæ¬ã ããã©ã«ãå€ã¯10ã§ãã åäœã¯åžžã«ç§åäœã§ãã
--ã¹ã¿ã³ãã€ã¢ãŒããæ³å®
æå®ããå Žåãæåã«ã¹ã¿ã³ãã€ã¢ãŒãã®ãµãŒããŒãå®è¡ããããã©ããã確èªããŸãïŒ--datadir
ãå¿ èŠã§ãïŒããã®å ŽåãSQLã¯ãšãªãå¿ èŠãšãããã¹ãŠã®ãã§ãã¯ã¯ç¡èŠãããããµãŒããŒ
代ããã«ã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
-ä»®å®-prod
æå®ãããŠããå Žåã¯ãæ¬çªã¢ãŒãã®ãµãŒããŒãå®è¡ãããŠãããã©ããã確èªããŸãïŒ--datadirãå¿ èŠã§ãïŒã
ãã®ãªãã·ã§ã³ã¯ïŒ "symlinkïŒcheck_postgres_checkpoint"ïŒã«ã®ã¿é¢é£ããŸãã
äŸïŒ
postgres @ db $ ./ check_postgres --action = checkpoint --datadir /var/lib/postgresql/8.3/main/ --assume-prod
POSTGRES_CHECKPOINT OKïŒæåŸã®ãã§ãã¯ãã€ã³ãã¯72ç§åã§ãã| 幎霢= 72 ;; 300ã¢ãŒã=ãã¹ã¿ãŒ
-h or - å©ããŠ
ãã¹ãŠã®ã¢ã¯ã·ã§ã³ãšãªãã·ã§ã³ã®æŠèŠã瀺ããã«ãç»é¢ã衚瀺ããŸãã
- ç·
ããã¥ã¢ã«å šäœã衚瀺ããŸãã
-V or - ããŒãžã§ã³
çŸåšã®ããŒãžã§ã³ã衚瀺ããŸãã
-v or -詳现
詳现ã¬ãã«ãèšå®ããŸãã ã¬ãã«ãäžããããã«è€æ°ååŒã³åºãããšãã§ããŸãã ã«èšå®ãã
XNUMXã€ä»¥äžïŒã€ãŸããã-v -v -vããçºè¡ïŒã¯ããããã°æ å ±ããªã³ã«ããŸã
stderrã«éä¿¡ããããã®ããã°ã©ã ã®å Žåã
--showperf = VAL
è¿œå ã®ããã©ãŒãã³ã¹ããŒã¿ãæšæºã®Nagios圢åŒã§åºåãããã©ããã決å®ããŸãïŒæåŸã«
æååã®ããã€ãã·ã³ãã«ã®åŸãname = valueã䜿çšïŒã VALã¯0ãŸãã¯1ã§ããå¿ èŠããããŸããããã©ã«ã
ã¯1ã§ããNagiosåºåã¢ãŒãã䜿çšããŠããå Žåã«ã®ã¿æå¹ã«ãªããŸãã
--perflimit = i
ã䜿çšãããšãã«å ±åããã察象ã¢ã€ãã ã®æ°ã«å¶éãèšå®ããŸã
ã·ã§ãŒããŒã ãªãã·ã§ã³ã ããã¯ãå€æ°ãè¿ãã¢ã¯ã·ã§ã³ã«ã®ã¿å¹æããããŸã
ãªã©ã®ã¢ã€ãã ããŒãã«ãµã€ãºã ããã©ã«ãã¯0ããŸãã¯å¶éãªãã§ãã ããã䜿çšãããšãã¯æ³šæããŠãã ãã
- å«ã or -é€å€ãã ãããã®å¶éãè¡ãããããããªãã·ã§ã³ After ã
ã¯ãšãªãå®è¡ããããããå¶éã«å¿ èŠãªã¢ã€ãã ãå«ãŸããŠããªãå¯èœæ§ããããŸãã åãã ã
Nagiosåºåã¢ãŒãã䜿çšããå Žåã®å¹æã
--showtime = VAL
åã¯ãšãªã®å®è¡ã«ããã£ãæéãåºåã«è¡šç€ºããããã©ããã決å®ããŸãã VALã¯0ã§ããå¿ èŠããããŸã
ãŸãã¯1.ããã©ã«ãã¯1ã§ãã ã·ã§ãŒããŒã ãªã³ã«ãªã£ãŠããŸãã 䜿çšããå Žåã«ã®ã¿æå¹ã«ãªããŸã
Nagiosåºåã¢ãŒãã
- ãã¹ã
ãã¹ãã¢ãŒããæå¹ã«ããŸãã 以äžã®ããã¹ãã¢ãŒããã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
--PGBINDIR = PATH
psqlãã€ããªã®å Žæãã¹ã¯ãªããã«æ瀺ããŸãã è€æ°ããå Žåã«äŸ¿å©ã§ã
ã·ã¹ãã äžã®PostgreSQLå®è¡å¯èœãã¡ã€ã«ã®ããŒãžã§ã³ããŸãã¯ã·ã¹ãã ã«ååšããªãå Žå
éã ãã®ãªãã·ã§ã³ã¯ãã¹ãŠå€§æåã§ããããšã«æ³šæããŠãã ããã ããã©ã«ãã§ã¯ããã®ãªãã·ã§ã³ã¯
èš±å¯ãããŠã ãããæå¹ã«ããã«ã¯ãã¹ã¯ãªããã®äžéšã«ãã$ NO_PSQL_OPTIONãå€æŽããå¿ èŠããããŸã
å¯èœã§ããã°ããã®ãªãã·ã§ã³ã®äœ¿çšãé¿ãã代ããã«ç°å¢å€æ°ã䜿çšããŠãã ããã
NS ãŸãã¯ãã¹ã¯ãªããã®äžéšã«ããããŒãã³ãŒãããã$ PGBINDIRå€æ°ãèšå®ããŸã
䜿çšããPostgreSQLãžã®ãã¹ã
--PSQL = PATH
ïŒéæšå¥šã ãã® ãªãã·ã§ã³ ãããããŸãã be åé€ in a æªæ¥ ãªãªãŒã¹ïŒïŒ ã¹ã¯ãªããã«ã©ãã«æ瀺ããã
psqlããã°ã©ã ãæ€çŽ¢ããŸãã psqlã®ããŒãžã§ã³ãè€æ°ããå Žåã«äŸ¿å©ã§ã
ã·ã¹ãã ã§å®è¡å¯èœãã¡ã€ã«ããŸãã¯ãã¹ã«psqlããã°ã©ã ããªãå Žåã ããã«æ³šæããŠãã ãã
ãªãã·ã§ã³ã¯ãã¹ãŠå€§æåã§ãã ããã©ã«ãã§ã¯ããã®ãªãã·ã§ã³ã¯ èš±å¯ãããŠã ãããæå¹ã«ããã«ã¯ã
ã¹ã¯ãªããã®äžéšã«ãã$ NO_PSQL_OPTIONã0ã«å€æŽããå¿ èŠããããŸããããã¯äœ¿çšããªãã§ãã ããã
å¯èœã§ããã°ãªãã·ã§ã³ãéžæãã代ããã«psqlã®å Žæã$ PSQLå€æ°ã«ããŒãã³ãŒãã£ã³ã°ããŸãã
ã¹ã¯ãªããã®äžéšã«ããããŸãã
-ã·ã³ããªãã¯ãªã³ã¯
ã¢ã¯ã·ã§ã³ããšã«ã¡ã€ã³ããã°ã©ã ãžã®ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸãã
--output = VAL
ããŸããŸãªããã°ã©ã ã§äœ¿çšããããã«ãåºåã®åœ¢åŒã決å®ããŸãã ããã©ã«ãã¯
ãnagiosãã 䜿çšå¯èœãªãªãã·ã§ã³ã¯ããnagiosãããmrtgãããsimpleããããã³ãcactiãã§ãã
--mrtg = VAL
ããã€ãã®ç¹å®ã®ã¢ã¯ã·ã§ã³ã®ããã«ãMRTGãŸãã¯åçŽãªåºåã«ã®ã¿äœ¿çšãããŸãã
--debugoutput = VAL
ãããã°ã§äœ¿çšããããã«ãpsqlã«ãã£ãŠè¿ãããæ£ç¢ºãªæååãåºåããŸãã å€ã¯XNUMXãŸãã¯
åºåã衚瀺ããããã©ããã決å®ããããå€ãã®æåãããã§ããaã=ãã¹ãŠããcã
=ã¯ãªãã£ã«ã«ã 'w' =èŠåã 'o' = okãããã³ 'u' =äžæã æåãçµã¿åãããããšãã§ããŸãã
--get_method = VAL
ãnew_version_cpãã®æ å ±ããã§ããããããã«äœ¿çšãããã¡ãœããã®æå®ãèš±å¯ããŸãã
ãnew_version_pgãããnew_version_bcãããnew_version_boxããããã³ãnew_version_tnmããã§ãã¯ã
Webããæ å ±ãååŸããããã«ã次ã®ããã°ã©ã ãè©Šè¡ãããŸããGETã
wgetãfetchãcurlãlynxãlinksã XNUMXã€ã ãã®äœ¿çšã匷å¶ããã«ã¯ïŒãããã£ãŠã
ãããã®ãããããæ©èœãããŸã§ä»ã®ãã¹ãŠãè©ŠããªãŒããŒãããïŒãååã®XNUMXã€ã次ã®ããã«å ¥åããŸã
get_methodãžã®åŒæ°ã ããšãã°ãBSDããã¯ã¹ã¯æ¬¡ã®è¡ãå ¥åããå ŽåããããŸã
ãããã®ã.check_postgresrcããã¡ã€ã«ïŒ
get_method = fetch
--language = VAL
ãã¹ãŠã®åºåã¡ãã»ãŒãžã«äœ¿çšããèšèªãèšå®ããŸãã éåžžãããã¯ã«ãã£ãŠæ€åºãããŸã
ç°å¢å€æ°LC_ALLãLC_MESSAGESãããã³LANGã調ã¹ãŸããããããèšå®ããŸã
ãªãã·ã§ã³ã¯ããã®ãããªæ€åºããªãŒããŒã©ã€ãããŸãã
ACTIONS
ã¹ã¯ãªããã¯XNUMXã€ä»¥äžã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã ããã¯ã-actionãã©ã°ã䜿çšãããã次ã®æ¹æ³ã§å®è¡ã§ããŸãã
å éšã®ã¢ã¯ã·ã§ã³ã®ååãå«ãã¡ã€ã³ãã¡ã€ã«ãžã®ã·ã³ããªãã¯ãªã³ã¯ã䜿çšããŸãã ã«ãšã£ãŠ
ããšãã°ãã¢ã¯ã·ã§ã³ãtimesyncããå®è¡ããã«ã¯ã次ã®ãããããçºè¡ããŸãã
check_postgres --action = timesync
ãŸãã¯ã次ã®ååã®ããã°ã©ã ã䜿çšããŸãã
check_postgres_timesync
ãªãã·ã§ã³--symlinksã䜿çšãããšããã¹ãŠã®ã·ã³ããªãã¯ãªã³ã¯ãçŸåšã®ãã£ã¬ã¯ããªã«äœæãããŸãã
perl check_postgres --symlinks
ãã¡ã€ã«åãæ¢ã«ååšããå ŽåãäžæžããããŸããã ãã¡ã€ã«ãååšãã
ã·ã³ããªãã¯ãªã³ã¯ãã-action = build_symlinks_forceãã䜿çšããŠåŒ·å¶çã«äžæžãã§ããŸã
ã»ãšãã©ã®ã¢ã¯ã·ã§ã³ã¯ - èŠå ãã©ã«ããŒãšãã®äžã« - èŽåœç ãªãã·ã§ã³ãã©ã®æç¹ã§å€æŽãããã瀺ããŸã
OKããWARNINGãŸã§ããããŠã©ã®ãã€ã³ãã§CRITICALã«è¡ããŸããã ã¯ãªãã£ã«ã«ã¯
åžžã«æåã«ãã§ãã¯ããèŠåãã¯ãªãã£ã«ã«ã«çããèšå®ããããšã¯ã
èŠåããªãã«ããŠãåžžã«ã¯ãªãã£ã«ã«ãäžããŸãã
çŸåšãµããŒããããŠããã¢ã¯ã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
ã¢ãŒã«ã€ãæºåå®äº
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_archive_ready"ïŒæ¡åŒµåãä»ããWALãã¡ã€ã«ã®æ°ã確èªããŸã ãæºå
ã«ååšãã pg_xlog / archive_status ããªãã®å€ã«ãããã£ã¬ã¯ã㪠ããŒã¿ãã£ã¬ã¯ããª.
ãã®ã¢ã¯ã·ã§ã³ã¯ãã®ã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããããã«ãã¹ãŒããŒãŠãŒã¶ãŒãšããŠå®è¡ããå¿ èŠããããŸã
pg_xlog / archive_status ãã£ã¬ã¯ããªã ãã®ã¢ã¯ã·ã§ã³ã䜿çšããããã®æå°ããŒãžã§ã³ã¯Postgres8.1ã§ãã
ãã® - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯åã«æ°ã§ã ãæºå ã®ãã¡ã€ã«
pg_xlog / archive_status ãã£ã¬ã¯ããªã éåžžããããã®å€ã¯äœãããªã³ã«ããå¿ èŠããããŸã
ã¢ãŒã«ã€ãã¡ã«ããºã ã§ã¯ãéåžžãWALãã¡ã€ã«ãã§ããã ãéãã¢ãŒã«ã€ãããå¿ èŠããããŸãã
ã¢ãŒã«ã€ãã³ãã³ãã倱æããå Žåã pg_xlog ãã£ã¬ã¯ããªã¯ãŸã§å€§ãããªããŸã
ãã¹ãŠã®ãã£ã¹ã¯ã¹ããŒã¹ã䜿ãæãããPostgreSQLããã ã¡ã«åæ¢ãããŸãã
äŸ1ïŒãã¹ããplutoãã§æºåãã§ããŠããWALãã¡ã€ã«ã®æ°ã10以äžã§ããããšã確èªããŸã
check_postgres_archive_ready --host = pluto --critical = 10
MRTGåºåã®å Žåã1è¡ç®ã«æºåãã§ããŠããWALãã¡ã€ã«ã®æ°ãå ±åããŸãã
autovac_freeze
ïŒ "symlinkïŒcheck_postgres_autovac_freeze"ïŒåããŒã¿ããŒã¹ã
Postgres 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åºåã®å Žåãå šäœã®æé«ããŒã»ã³ããŒãžãæåã®è¡ã«å ±åããã
æé«å¹Žéœ¢ã¯XNUMXè¡ç®ã«å ±åãããŠããŸãã ããã®ããŒã»ã³ããŒãžãæã€ãã¹ãŠã®ããŒã¿ããŒã¹
æåã®è¡ã¯ããã€ãèšå·ã§åºåãããXNUMXè¡ç®ã«å ±åãããŸãã
ããã¯ãšã³ã
ïŒ "symlinkïŒcheck_postgres_backends"ïŒçŸåšã®æ¥ç¶æ°ãXNUMXã€ãŸãã¯
ããå€ãã®ããŒã¿ããŒã¹ãããã³ãªãã·ã§ã³ã§ãããèš±å¯ãããæ倧å€ãšæ¯èŒããŸãã
Postgresæ§æå€æ° max_connectionsãéžæããŸãã - èŠå ãš - èŽåœç ãªãã·ã§ã³
XNUMXã€ã®åœ¢åŒã®ãããããåãããšãã§ããŸãã ãŸããåçŽãªæ°ãäžããããšãã§ããŸããããã¯ã
ã¢ã©ãŒããåºãããæ¥ç¶ã®æ°ã ãã®éžæã§ã¯ã
max_connections èšå®ã 次ã«ã䜿çšå¯èœãªæ¥ç¶ã®å²åãæå®ã§ããŸãã
第äžã«ãæ®ã£ãŠããæ¥ç¶ã®æ°ãè¡šãè² ã®æ°ãäžããããšãã§ããŸã
ãŸã§ max_connections ãéæãããã ã®ããã©ã«ãå€ - èŠå ãš - èŽåœç ã
ã90ïŒ ãããã³ã95ïŒ ãã ã䜿çšããŠããŒã¿ããŒã¹ããã£ã«ã¿ãªã³ã°ããããšãã§ããŸã - å«ã ãš -é€å€ãã
ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ã¢ã€ãã«ç¶æ ã§ãªãããã»ã¹ã®ã¿ã衚瀺ããã«ã¯ã --ãã€ãã« å£è«ã ãŠãŒã¶ãŒã¯ããªãã«æ³šæããŠãã ãã
ãããæ£ããæ©èœããã«ã¯ãã¹ãŒããŒãŠãŒã¶ãŒã§ããå¿ èŠããããããæ¥ç¶ããŠããŸãã
äŸ1ïŒãã¹ãquirmã®æ¥ç¶æ°ã120ã«éãããšãã«èŠåãåºãã
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 = plasmid
äŸ4ïŒååã«ãtestããå«ãŸããŠããããŒã¿ããŒã¹ãé€ããã¹ãŠã®ããŒã¿ããŒã¹ããã§ãã¯ããŸããã
ãpg_greatestããšããååã§ãã æåã®5432ã€ã®ãã¹ãã§ã¯ããŒã5433ãšããŠæ¥ç¶ããäžã®ããŒãXNUMXãšããŠæ¥ç¶ããŸãã
30ã€ç®ã XNUMX以äžã®æ¥ç¶ã«éãããšãã¯ãåžžã«ã¯ãªãã£ã«ã«ãã¹ããŒããããšèããŠããŸãã
check_postgres_backends --dbhost = hongãkong --dbhost = fooey --dbport = 5432 --dbport = 5433 --warning = 30 --critical = 30 --exclude = "ãtest" --include = "pg_greatestããprod ãã
MRTGåºåã®å Žåãæ¥ç¶æ°ã¯XNUMXè¡ç®ãXNUMXè¡ç®ã§å ±åãããŸã
è¡ã¯ãããŒã¿ããŒã¹ã®ååãšçŸåšã®maximum_connectionsã瀺ããŸãã 以äžã®å Žå
XNUMXã€ã®ããŒã¿ããŒã¹ãç §äŒãããæ¥ç¶æ°ãæãå€ãããŒã¿ããŒã¹ãåºåãããŸãã
èšæºæ
ïŒ "symlinkïŒcheck_postgres_bloat"ïŒããŒãã«ãšã€ã³ããã¯ã¹ã®è¥å€§åã®éããã§ãã¯ããŸãã ïŒèšæºæ
äžè¬ã«ãããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ã§äœ¿çšãããŠããæªäœ¿çšã®ãããã¹ããŒã¹ã®éã§ãã ãã®ã¹ããŒã¹ã¯
éåžžãVACUUMã³ãã³ãã䜿çšããŠåå©çšãããŸããïŒãã®ã¢ã¯ã·ã§ã³ã«ã¯ãçµ±èšãå¿ èŠã§ãã
ã¿ãŒã²ããããŒã¿ããŒã¹ã§ã³ã¬ã¯ã·ã§ã³ãæå¹ã«ããANALYZEãå®è¡ããå¿ èŠããããŸã
é »ç¹ã«ã NS - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã䜿çšããŠãã©ã®ããŒãã«ãé€å€ããããé€å€ã§ããŸã
èŠãã 詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ãã® - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ããµã€ãºãããŒã»ã³ãããŸãã¯ãã®äž¡æ¹ãšããŠæå®ã§ããŸãã æå¹
ãµã€ãºã®åäœã¯ããã€ãããããã€ããã¡ã¬ãã€ããã®ã¬ãã€ãããã©ãã€ãããšã¯ãµãã€ãããã¿ãã€ããããã³
ãŒã¿ãã€ãã ããããã¹ãŠãæåã®æåã§çç¥ã§ããŸãã ãŠãããã®ãªãã¢ã€ãã ã¯
'ãã€ã'ãšèŠãªãããŸãã ããã©ã«ãå€ã¯ã1GBãããã³ã5GBãã§ãã å€ã¯
ãç¡é§ãªãã€ããã®æ°ããŸãã¯ããŒãã«ã§å®éã«äœ¿çšãããŠãããã®ãšã®å·®
ã€ã³ããã¯ã¹ãããã³ãããã©ãããã¹ãããèšç®ããŸãã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯XNUMXã€ã®ããŒãã³ãŒããããå€ããããå°ããå Žåã®èª€èŠå ±ãåé¿ããããšã«æ³šæããŠãã ããã
é¢ä¿ã ããŒãã«ã«ã¯ãå°ãªããšã10ããŒãžãã€ã³ããã¯ã¹ã¯å°ãªããšã15ããŒãžããå¿ èŠããããŸãã
ãã®ãã¹ãã§èæ ®ãããŸãã ãããã®å€ãæ¬åœã«èª¿æŽãããå Žåã¯ã
variables $ MINPAGES ãš $ MINIPAGES ãcheck_bloatããµãã«ãŒãã³ã®å é ã«ãããŸãã ãããã¯
ããããã®å Žåãå€ã¯ç¡èŠãããŸã -é€å€ãã or - å«ã 䜿çšãããŠããã
æãè¥å€§åããäžäœ10ã®é¢ä¿ã®ã¿ã衚瀺ãããŸãã ãã®çªå·ã¯ã
--perflimit ç¬èªã®å¶éãèšå®ãããªãã·ã§ã³ã
'information_schema'ãšããååã®ã¹ããŒãã¯ããã®ãã¹ãããé€å€ãããŸãã
å«ãã¯å°ãããå€æŽãããŸããã
ãã®ã¢ã¯ã·ã§ã³ã«ãã£ãŠèšç®ãããå€ã¯æ£ç¢ºã§ã¯ãªãããã次ã®ããã«äœ¿çšããå¿ èŠãããããšã«æ³šæããŠãã ããã
ã¬ã€ãã©ã€ã³ã®ã¿ã ããŒãã«ã®æ£ãããµã€ãºãèŠç©ããããã«å€å€§ãªåªåãæãããŸãããã
æåŸã«ãããã¯åãªãèŠç©ããã§ãã æ£ããã€ã³ããã¯ã¹ãµã€ãºã¯ã
ããŒãã«ã®ãµã€ãºã¯æ£ããã§ãããã©ã¡ããè¥å€§åãããã®ã®å€§ãŸããªã¢ã€ãã¢ãæäŸããã¯ãã§ãã
äŸ1ïŒããŒã5432ã®ããŒãã«ã100 MBãè¶ ããŠè¥å€§åããŠããå Žåã¯èŠåãã200ãè¶ ããŠããå Žåã¯é倧ã§ã
MB
check_postgres_bloat --port = 5432 --warning = '100 M'-critical = '200 M'
äŸ2ïŒãã¹ããsamiãã®ããŒãã«ãordersãã«10ã¡ã¬ãã€ããè¶ ããèšåŒµãããå Žåã«ã¯ãªãã£ã«ã«ãäžãã
check_postgres_bloat --host = sami --include = orders --critical = '10 MB '
äŸ3ïŒããŒã¿ããŒã¹ 'sales'ã®ããŒãã« 'q4'ã50ïŒ ä»¥äžè¥å€§åããŠããå Žåã«ã¯ãªãã£ã«ã«ãäžãã
check_postgres_bloat --db = sales --include = q4 --critical = '50ïŒ '
äŸ4ïŒ20ïŒ ãè¶ ããè¥å€§åããããŒãã«ãã¯ãªãã£ã«ã«ã«ãã ãš 150MB以äžã®èšæºæããããŸãïŒ
check_postgres_bloat --port = 5432 --critical = '20ïŒ ããã³150 M '
äŸ5ïŒ40ïŒ ãè¶ ããè¥å€§åããããŒãã«ãã¯ãªãã£ã«ã«ã«ãã or 500MB以äžã®èšæºæããããŸãïŒ
check_postgres_bloat --port = 5432 --warning = '500 MãŸãã¯40ïŒ '
MRTGåºåã®å Žåãæåã®è¡ã¯ããŒãã«ã®ç¡é§ãªãã€ãæ°ãæãå€ãããšã瀺ããŠããŸãã
XNUMXè¡ç®ã¯ãã€ã³ããã¯ã¹ã®ç¡é§ãªãã€ãæ°ãæãå€ãããšã瀺ããŠããŸãã 第XNUMX
è¡ã¯ãããŒã¿ããŒã¹åãããŒãã«åãããã³ã€ã³ããã¯ã¹åã®æ å ±ã瀺ããŸãã ããªãããããå Žåã¯
代ããã«èšæºçãåºåããŸãïŒé¢ä¿ãã©ã®ããã«æ¯èŒãããããšæ¯èŒããŠäœå倧ãããïŒ
倧ããã¯ãã§ãïŒãã-mrtg = ratioããæž¡ãã ãã§ãã
ãã§ãã¯ãã€ã³ã
ïŒ "symlinkïŒcheck_postgres_checkpoint"ïŒæåŸã®ãã§ãã¯ãã€ã³ãããã®çµéæéã決å®ããŸã
å®è¡ãããŸããã ããã¯ããã§ãã¯ãããŠããããŒã¿ããŒã¹ãšåããµãŒããŒã§å®è¡ããå¿ èŠããããŸãïŒäŸïŒ
-hãã©ã°ã¯æ©èœããŸããïŒã ãã®ãã§ãã¯ã¯ãããŠã©ãŒã ã¹ã¿ã³ãã€ããµãŒããŒã§å®è¡ããããšãç®çãšããŠããŸãã
åºè·ãããWALãã¡ã€ã«ãã¢ã¯ãã£ãã«åŠçãããŠã©ãŒã ã¹ã¿ã³ãã€ã
æ¬åœã«ãæãããã ããŒã¿ãã£ã¬ã¯ããªã¯ãç°å¢å€æ°ã®ããããã«ãã£ãŠèšå®ããå¿ èŠããããŸã
ãPGDATAãããŸãã¯ã--datadirãåŒæ°ãæž¡ããŸãã ããã®ç§æ°ãè¿ããŸã
ãpg_controldataããžã®åŒã³åºãã解æããããšã«ãã£ãŠæ±ºå®ãããããã«ãæåŸã®ãã§ãã¯ãã€ã³ããå®è¡ãããŸããã ã®ãã
ãã®å Žåãpg_controldataå®è¡å¯èœãã¡ã€ã«ãçŸåšã®ãã¹ã§äœ¿çšå¯èœã§ããå¿ èŠããããŸãã ãŸãã¯ã
ååšãããã£ã¬ã¯ããªãšããŠãPGBINDIRããæå®ã§ããŸãã䜿çšããããšãã§ããŸãã
ç¹å¥ãªãªãã·ã§ã³ -ä»®å®-prod or --ã¹ã¿ã³ãã€ã¢ãŒããæ³å®ãèŠã€ãã£ãã¢ãŒãã
äºæ³ããããã®ãšããŠãCRITICALãæŸåºãããŸãã
å°ãªããšãXNUMXã€ã®èŠåãŸãã¯éèŠãªåŒæ°ãèšå®ããå¿ èŠããããŸãã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãDate :: Parseã¢ãžã¥ãŒã«ãå¿ èŠã§ãã
MRTGãŸãã¯åçŽåºåã®å Žåãç§æ°ãè¿ããŸãã
ã¯ã©ã¹ã¿ãŒID
ïŒ "symlinkïŒcheck_postgres_cluster-id"ïŒããŒã¿ããŒã¹ã·ã¹ãã èå¥åãæäŸãããŠããããšã確èªããŸã
by 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ãåŒæ°ãšããŠèå¥åãæå®ããå¿ èŠããããŸãã åžžã«XNUMXè¡ç®
çŸåšã®èå¥åã瀺ããŸãã
ã³ãããã¡ã³ã
ïŒ "symlinkïŒcheck_postgres_commitratio"ïŒãã¹ãŠã®ããŒã¿ããŒã¹ã®ã³ãããçããã§ãã¯ãã
ããããäœããããšæå¥ãèšããŸãã ãã®ã³ãã³ããXNUMXåã«XNUMXå以äžå®è¡ããå¿ èŠã¯ãããŸããã
ããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒã ããŒã¿ããŒã¹ã¯ã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã èŠã
詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã ãããã¯ãŸãã®ææè ã«ãã£ãŠãã£ã«ã¿ãªã³ã°ããããšãã§ããŸã
ããŒã¿ããŒã¹ãš --includeuser ãš --excludeuser ãªãã·ã§ã³ã ããŠãŒã¶ãŒåããåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ãããã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
èŠåããã³ã¯ãªãã£ã«ã«ãªãã·ã§ã³ã¯ãããŒã»ã³ããŒãžã§æå®ããå¿ èŠããããŸãã ååšããŸãã
ãã®ã¢ã¯ã·ã§ã³ã®ããã©ã«ãïŒèŠåãšã¯ãªãã£ã«ã«ãæå®ããå¿ èŠããããŸãã èŠåå€
èšçå€ãã倧ããããããšã¯ã§ããŸããã åºåã¯ã䞊ã¹æ¿ãããããã¹ãŠã®ããŒã¿ããŒã¹ãè¿ããŸã
ã³ãããã¡ã³ããæåã«æå°ã
äŸïŒãã¹ãflaggäžã®ããŒã¿ããŒã¹ã®commitratioã90ïŒ æªæºã§ãããã¯ãªãã£ã«ã«ã§ããå Žåã«èŠåããŸã
80ïŒ æªæºã®å Žåã
check_postgres_database_commitratio --host = flagg --warning = '90ïŒ '--critical = '80ïŒ '
MRTGåºåã®å Žåãã³ãããã¡ã³ããæå°ã®ããŒã¿ããŒã¹ã®ããŒã»ã³ããŒãžãè¿ããŸã
æåã®è¡ãããã³XNUMXè¡ç®ã®ããŒã¿ããŒã¹ã®ååã
æ¥ç¶
ïŒ "symlinkïŒcheck_postgres_connection"ïŒåã«æ¥ç¶ãã 'SELECTãçºè¡ããŸã ããŒãžã§ã³ïŒïŒ'ãããã³
èã£ã±ã ããããŸãã - èŠå or - èŽåœç ãªãã·ã§ã³ã
MRTGåºåã®å Žåãæåã«1ïŒæ¥ç¶ãè¯å¥œïŒãŸãã¯0ïŒæ¥ç¶ãäžè¯ïŒãåºåããã ãã§ãã
ã©ã€ã³ã
ã«ã¹ã¿ã ã¯ãšãª
ïŒ "symlinkïŒcheck_postgres_custom_query"ïŒéžæããã«ã¹ã¿ã ã¯ãšãªãå®è¡ãã解æããŸã
çµæã ã¯ãšãªèªäœã¯ãqueryãåŒæ°ãä»ããŠæž¡ããã次ã®ããã«ãªããŸãã
å¯èœãªéãã·ã³ãã«ã«ä¿ã¡ãŸãã å¯èœã§ããã°ãããããã¥ãŒãŸãã¯é¢æ°ã§ã©ããããŠä¿æããŸã
管çãããããã®ã ã¯ãšãªã¯XNUMXã€ãŸãã¯XNUMXã€ã®åãè¿ãå¿ èŠããããŸãã ãããå¿ èŠã§ã
åã®XNUMXã€ã¯ãçµæããšããååã§ã
èŠåãšéèŠãªå€ã XNUMXçªç®ã®åã¯ãããã©ãŒãã³ã¹ããŒã¿ãšä»»æã®ååã§ã
䜿çšã§ããŸãïŒããã¯ãããã©ãŒãã³ã¹ããŒã¿ã»ã¯ã·ã§ã³å ã®ãå€ãã«ãªããŸãã
å°ãªããšãXNUMXã€ã®èŠåãŸãã¯ã¯ãªãã£ã«ã«åŒæ°ãæå®ããå¿ èŠããããŸãã ããããäœã«èšå®ãããŠãããã¯
å®è¡ããŠããã¯ãšãªã®çš®é¡ã custom_queriesã«ã¯XNUMXã€ã®ã¿ã€ãããããŸã
ãvaltypeãåŒæ°ã§æå®ãããå®è¡ã äœãæå®ãããŠããªãå Žåããã®ã¢ã¯ã·ã§ã³ã®ããã©ã«ãã¯
'æŽæ°'ã XNUMXã€ã®ã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
æŽæ°ïŒåçŽãªæŽæ°æ¯èŒãè¡ããŸãã æåã®åã¯åçŽãªæŽæ°ã§ããå¿ èŠããããŸãã
èŠåå€ãšã¯ãªãã£ã«ã«å€ã¯åãã§ããå¿ èŠããããŸãã
stringïŒèŠåãšã¯ãªãã£ã«ã«ã¯æååã§ããã
æåã®åã¯ããã«å®å šã«äžèŽããŸãã ããã¯å€§æåãšå°æåãåºå¥ãããŸãã
æéïŒèŠåãšã¯ãªãã£ã«ã«ã¯æéã§ãããç§ãåã
æéããŸãã¯æ¥ã ãããããåæ°ã§æžãããããšãããã°ãæåã®æåã ãã«çç¥ãããããšããããŸãã ããã
åäœã¯æå®ãããŠããããç§ãæ³å®ãããŠããŸãã æåã®åã¯æŽæ°ã§ããå¿ èŠããããŸã
ãã§ãã¯ããç§æ°ãè¡šããŸãã
ãµã€ãºïŒèŠåãšã¯ãªãã£ã«ã«ã¯ãµã€ãºã§ããããã€ãããããã€ãã
ã¡ã¬ãã€ããã®ã¬ãã€ãããã©ãã€ãããŸãã¯ãšã¯ãµãã€ãã ãããããæåã®æåã«çç¥ãããå ŽåããããŸãã
åäœãæå®ãããŠããªãå Žåããã€ããæ³å®ãããŸãã æåã®åã¯æŽæ°ã§ããå¿ èŠããããŸã
ãã§ãã¯ãããã€ãæ°ãè¡šããŸãã
éåžžãè¿ãããå€ã次ã®å Žåã«ã¢ã©ãŒããããªã¬ãŒãããŸã 倧ãã ãã ãŸãã¯ã«çãã
ã¯ãªãã£ã«ã«å€ãŸãã¯èŠåå€ã ãã ãã - éè¡ãã 次ã®å Žåã«ã¢ã©ãŒããããªã¬ãŒããŸã
æ»ãå€ã¯ äžåŽ ãã ãŸãã¯ã¯ãªãã£ã«ã«å€ãŸãã¯èŠåå€ã«çããã
äŸ1ïŒ100ããŒãžãè¶ ãããªã¬ãŒã·ã§ã³ã«ãradããšããååãä»ããŠããå Žåã¯èŠåããããŒãžæ°ãå ¥åããŸã
ããã©ãŒãã³ã¹ããŒã¿ã»ã¯ã·ã§ã³å ã
check_postgres_custom_query --valtype = string -w "rad" --query =
"SELECT relname AS resultãrelpages AS pages FROM pg_class WHERE 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 ãš --excludeuser ãªãã·ã§ã³ã ããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ããåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
èŠåããã³ã¯ãªãã£ã«ã«ãªãã·ã§ã³ã¯ããã€ãããããã€ããã¡ã¬ãã€ãã
ã®ã¬ãã€ãããã©ãã€ãããŸãã¯ãšã¯ãµãã€ãã ãããããæåã®æåã«çç¥ãããããšããããŸãã
åäœãæå®ãããŠããªãå Žåãåäœã¯ãã€ããšèŠãªãããŸãã ããã«ã¯ããã©ã«ãã¯ãããŸãã
ã¢ã¯ã·ã§ã³ïŒèŠåãšã¯ãªãã£ã«ã«ãæå®ããå¿ èŠããããŸãã èŠåå€ã倧ããããããšã¯ã§ããŸãã
èšçå€ããã åºåã¯ãæåã«æ倧ãµã€ãºã§ãœãŒãããããã¹ãŠã®ããŒã¿ããŒã¹ãè¿ããŸãã
çã®ãã€ããšãµã€ãºã®ãããããªãããŒãžã§ã³ã®äž¡æ¹ã衚瀺ããŸãã
äŸ1ïŒãã¹ãflaggäžã®ããŒã¿ããŒã¹ã®ãµã€ãºã1 TBãè¶ ããŠããå Žåã¯èŠåããè¶ ããŠããå Žåã¯ã¯ãªãã£ã«ã«
1.1 TBã
check_postgres_database_size --host = flagg --warning = '1 TB' --critical = '1.1 t'
äŸ2ïŒããŒã1ã®ããŒã¿ããŒã¹template5432ã10 MBãè¶ ããå Žåã¯ãã¯ãªãã£ã«ã«ãæå®ããŸãã
check_postgres_database_size --port = 5432 --include = template1 --warning = '10MB' --critical = '10MB'
äŸ3ïŒãŠãŒã¶ãŒãtomããææãããã¹ããtardisãäžã®ããŒã¿ããŒã¹ãçµäºããå Žåã«èŠåã衚瀺ããŸã
5 GB
check_postgres_database_size --host = tardis --includeuser = tom --warning = '5 GB' --critical = '10 GB '
MRTGåºåã®å Žåãæåã®è¡ã«æ倧ã®ããŒã¿ããŒã¹ã®ãµã€ãºããã€ãåäœã§è¿ãã
XNUMXè¡ç®ã®ããŒã¿ããŒã¹ã®ååã
dbstats
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_dbstats"ïŒpg_stat_databaseãã¥ãŒããæ å ±ãå ±åããŸãã
ãããŠããããµããã³ã«åªããæ¹æ³ã§åºåããŸãã åºåãã§ãããããä»ã®åºåã¯ãµããŒããããŠããŸãã
æ å ±æäŸã§ãããNagiosã§äœ¿çšããããããªã¢ã©ãŒãã«ã¯é©ããŠããŸããã ãªãã·ã§ã³ããªãå Žå
ãæå®ããããšããã¹ãŠã®ããŒã¿ããŒã¹ãXNUMXè¡ã«XNUMXã€ãã€è¿ãããŸãã ç¹å®ã®ããŒã¿ããŒã¹ãå«ããããšãã§ããŸã
ã--includeããªãã·ã§ã³ã䜿çšããããã-dbnameããªãã·ã§ã³ã䜿çšã§ããŸãã
åè¡ã«XNUMXåã®ã¢ã€ãã ããnameïŒvalueã®åœ¢åŒã§ãXNUMXã€ã§åºåãããŠè¿ãããŸãã
ã¹ããŒã¹ã ã¢ã€ãã ã¯æ¬¡ã®ãšããã§ãã
ããã¯ãšã³ã
ãã®ããŒã¿ããŒã¹ã§çŸåšå®è¡äžã®ããã¯ãšã³ãã®æ°ã
ã³ããããã
ãã®ããŒã¿ããŒã¹ãäœæãŸãã¯ãªã»ãããããŠããã®ããã®ããŒã¿ããŒã¹ã®ã³ãããã®ç·æ°ã
ããŒã«ããã¯
ãã®ããŒã¿ããŒã¹ãäœæãŸãã¯ãªã»ãããããŠããã®ããã®ããŒã¿ããŒã¹ã®ããŒã«ããã¯ã®ç·æ°ã
read
èªã¿åããããã£ã¹ã¯ãããã¯ã®ç·æ°ã
hitãããã¡ãããã®ç·æ°ã
retè¿ãããè¡ã®ç·æ°ã
ãã§ãã
ãã§ãããããè¡ã®ç·æ°ã
insæ¿å ¥ãããè¡ã®ç·æ°ã
updæŽæ°ãããè¡ã®ç·æ°ã
delåé€ãããè¡ã®ç·æ°ã
ããŒã¿ããŒã¹å
ããŒã¿ããŒã¹ã®ååã
PostgresãããŒãžã§ã³0ã®å Žåãretãfetchãinsãupdãããã³delã¢ã€ãã ã¯åžžã«8.2ã«ãªãããšã«æ³šæããŠãã ããã
ãããã®çµ±èšã¯ãããã®ããŒãžã§ã³ã§ã¯å©çšã§ããªãã£ãããã以äžã
dbnameåŒæ°ãæå®ãããšã次ã®XNUMXã€ã®è¿œå é ç®ãè¿ãããŸãã
idxscan
ãŠãŒã¶ãŒã€ã³ããã¯ã¹ã¹ãã£ã³ã®ç·æ°ã
idxtupread
è¿ããããŠãŒã¶ãŒã€ã³ããã¯ã¹ãšã³ããªã®ç·æ°ã
idxtupfetch
åçŽãªãŠãŒã¶ãŒã€ã³ããã¯ã¹ã¹ãã£ã³ã«ãã£ãŠãã§ãããããè¡ã®ç·æ°ã
idxblksread
ãã¹ãŠã®ãŠãŒã¶ãŒã€ã³ããã¯ã¹ã«å¯ŸããŠèªã¿åããããã£ã¹ã¯ãããã¯ã®ç·æ°ã
ã©ããã
ãã¹ãŠã®ãŠãŒã¶ãŒã€ã³ããã¯ã¹ã®ãããã¡ãããã®ç·æ°ã
ã·ãŒã±ã³ã¹ã¹ãã£ã³
ãã¹ãŠã®ãŠãŒã¶ãŒããŒãã«ã«å¯Ÿããé 次ã¹ãã£ã³ã®ç·æ°ã
ã·ãŒã±ã³ã¹ã¢ããã¬ãã
ãã¹ãŠã®ãŠãŒã¶ãŒããŒãã«ããè¿ãããã¿ãã«ã®ç·æ°ã
äŸ1ïŒãã¹ããwillowãã®ãproductsããšããååã®ããŒã¿ããŒã¹ã®çµ±èšãååŸããŸãã
check_postgres_dbstats --dbhost willow --dbname 補å
è¿ãããåºåã¯æ¬¡ã®ããã«ãªããŸãïŒãã¹ãŠXNUMXè¡ã§ãæãè¿ãããŠããŸããïŒã
ããã¯ãšã³ãïŒ82ã³ãããïŒ58374408ããŒã«ããã¯ïŒ1651èªã¿åãïŒ268435543ãããïŒ2920381758idxscanïŒ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
disable_triggers
ïŒ "symlinkïŒcheck_postgres_disabled_triggers"ïŒç¡å¹ã«ãããããªã¬ãŒã®æ°ããã§ãã¯ããŸã
ããŒã¿ããŒã¹å ã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ãã®ãããªããªã¬ãŒã®æ°ã§ã
ãèŠã€ãããããªã¬ãŒãç¡å¹ã«ããéåžžã®äœ¿çšæ³ã§ã¯å±éºã§ãããããäž¡æ¹ãšãããã©ã«ãã§ã1ãã«ãªããŸã
ã€ãã³ãã ãã§ãã¯å¯Ÿè±¡ã®ããŒã¿ããŒã¹ã8.3以äžã®å Žåããã§ãã¯å¯Ÿè±¡ã®ããŒã¿ããŒã¹ã®æ°ã¯
ãç¡å¹ãã¹ããŒã¿ã¹ã®ããªã¬ãŒïŒãåžžã«ããŸãã¯ãã¬ããªã«ãã§ã¯ãªãïŒã NS
åºåã«ã¯ãããŒãã«ã®ååãšç¡å¹ã«ãããåããªã¬ãŒã®ååã衚瀺ãããŸã
åŒãéã
äŸ1ïŒç¡å¹ãªããªã¬ãŒããªãããšã確èªããŸã
check_postgres_disabled_triggers
MRTGåºåã®å Žåãæåã®è¡ã§ç¡å¹ã«ãªã£ãŠããããªã¬ãŒã®æ°ãè¿ããŸãã
ãã£ã¹ã¯ã¹ããŒã¹
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_disk_space"ïŒã«ãã£ãŠäœ¿çšããã䜿çšå¯èœãªç©çãã£ã¹ã¯å®¹éããã§ãã¯ããŸã
Postgresã ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãå®è¡å¯èœãã¡ã€ã«ãå¿ èŠã§ãã/ bin / df"å ±åå¯èœ
ãã£ã¹ã¯ãµã€ãºã§ãã¹ãŒããŒãŠãŒã¶ãŒãšããŠå®è¡ããå¿ èŠãããããã
ããŒã¿ãã£ã¬ã¯ã㪠Postgreså ã®èšå®ã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ãäžããããŸã
ãµã€ãºãŸãã¯ããŒã»ã³ããŒãžããããã¯ãã®äž¡æ¹ã§ã ãµã€ãºã䜿çšããå Žåãæšæºã®åäœã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
èš±å¯ïŒãã€ãããããã€ããã®ã¬ãã€ããã¡ã¬ãã€ããã®ã¬ãã€ãããã©ãã€ãããŸãã¯ãšã¯ãµãã€ãã å
æåã®æåã®ã¿ã«çç¥ã§ããŸãã åäœããŸã£ãããªãå Žåã¯ããã€ããã瀺ããŸãã NS
ããã©ã«ãå€ã¯ã90ïŒ ãããã³ã95ïŒ ãã§ãã
ãã®ã³ãã³ãã¯ã次ã®ããšããã§ãã¯ããŠããã¹ãŠã®ç°ãªãç©çãã£ã¹ã¯ãå€å¥ããŸã
Postgresã«ãã£ãŠäœ¿çšãããŠããŸãã
ããŒã¿ãã£ã¬ã¯ã㪠-ã¡ã€ã³ããŒã¿ãã£ã¬ã¯ããªã眮ãããŠãããã£ã¹ã¯ã
ãã° ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã -ãã°ãã¡ã€ã«ã眮ãããŠãããã£ã¹ã¯ã
WAL file ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã -å è¡æžã蟌ã¿ãã°ãèšé²ãããŠãããã£ã¹ã¯ïŒäŸïŒã·ã³ããªãã¯ãªã³ã¯ãããpg_xlogïŒ
è¡šé å -åå¥ã®ãã£ã¹ã¯äžã«ããåè¡šé åã
åºåã«ã¯ãåãã£ã¹ã¯ã§äœ¿çšããã³äœ¿çšå¯èœãªåèšãµã€ãºãšã
䜿çšãããããŒã»ã³ããŒãžã®é«ããã®ããäœããã®ã®é ã«äžŠã¹ãããããŒã»ã³ããŒãžã äžèšã®åã¢ã€ãã ã¯ãã¡ã€ã«ã«ããããããŸã
ã·ã¹ãã ïŒãããã¯å«ããããšãé€å€ããããšãã§ããŸãã 詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
詳现ã
äŸ1ïŒããŒã90ã®ããŒã¿ããŒã¹ã§5432ïŒ ãè¶ ãããã¡ã€ã«ã·ã¹ãã ããªãããšã確èªããŸãã
check_postgres_disk_space --port = 5432 --warning = '90ïŒ '--critical = '90ïŒ '
äŸ2ïŒ/ dev / sdaã§å§ãŸããã¹ãŠã®ãã¡ã€ã«ã·ã¹ãã ã10GBæªæºã§ããã
11 GBïŒèŠåããã³ã¯ãªãã£ã«ã«ïŒ
check_postgres_disk_space --port = 5432 --warning = '10 GB '-critical = '11 GB'-include = "ã^ / dev / sda"
äŸ4ïŒäž¡æ¹ãšã50ïŒ ãè¶ ãããã¡ã€ã«ã·ã¹ãã ããªãããšã確èªããŸã ãš 15GB以äžãããŸã
check_postgres_disk_space --critical = '50ïŒ ããã³15 GB '
äŸ5ïŒãã¡ã€ã«ã·ã¹ãã ã70ïŒ ãè¶ ããŠããå Žåã¯ãèŠåãçºè¡ããŸã or 1T以äžãããŸã
check_postgres_disk_space --warning = '1TãŸãã¯75'
MRTGåºåã®å Žåãæåã®è¡ã«ãã¡ã€ã«ã·ã¹ãã ã®ãµã€ãºããã€ãåäœã§è¿ãã
XNUMXè¡ç®ã®ãã¡ã€ã«ã·ã¹ãã ã®ååã
fsm_pages
ïŒ "symlinkïŒcheck_postgres_fsm_pages"ïŒã¯ã©ã¹ã¿ãŒãPostgresã«ã©ãã ãè¿ããããã§ãã¯ããŸã
max_fsm_pages èšå®ã ãã®ã¢ã¯ã·ã§ã³ã¯ã8.2以éã®ããŒã¿ããŒã¹ã§ã®ã¿æ©èœããŸãã
contribã¢ãžã¥ãŒã«ãå¿ èŠã§ã pg_freespacemap ã€ã³ã¹ããŒã«ãããŸãã NS - èŠå ãš - èŽåœç
ãªãã·ã§ã³ã¯ããŒã»ã³ããŒãžã§è¡šãå¿ èŠããããŸãã 空ãé åãããã§äœ¿çšãããŠããããŒãžã®æ°
pg_freespacemap_relationsãã¥ãŒã確èªããæ°åŒãå®è¡ããããšã§æ±ºå®ãããŸã
ç空åé·ã§èªç±ç©ºéãããããŒãžã¹ããããåºåããããã«äœ¿çšãããåŒã«åºã¥ã
æå³ã ããã©ã«ãå€ã¯ 85ïŒ èŠåãš 95ïŒ ã¯ãªãã£ã«ã«ã®ããã«ã
äŸ1ïŒã¯ã©ã¹ã¿ãŒã空ãé åã®ããŒãžã¹ãããã®76ïŒ ã䜿ãæããããšãã«ãèŠåã衚瀺ããŸãã
pg_freespacemapãããŒã¿ããŒã¹robertã«ã€ã³ã¹ããŒã«ãããŠãã
check_postgres_fsm_pages --dbname = robert --warning = "76ïŒ "
pg_freespacemapãã€ã³ã¹ããŒã«ãããŠããããŒã¿ããŒã¹ã®ååãæž¡ãå¿ èŠããããŸããã
ãã®ãã§ãã¯ã¯ãã¯ã©ã¹ã¿ãŒããšã«XNUMXåã ãå®è¡ããå¿ èŠããããŸãã ãŸãããã®æ å ±ã確èªããã«ã¯ã
空ãé åãããã§ç¹å¥ãªããã¯ãååŸããããããããå®è¡ããªãããšããå§ãããŸã
çãééã§ç¢ºèªããŠãã ããã
MRTGåºåã®å Žåãæåã®è¡ã®ç©ºãé åãããã®å²åãšæ°å€ãè¿ããŸã
XNUMXè¡ç®ã§çŸåšäœ¿çšãããŠããããŒãžã®æ°ã
fsm_é¢ä¿
ïŒ "symlinkïŒcheck_postgres_fsm_relations"ïŒã¯ã©ã¹ã¿ãŒãPostgresã«ã©ãã ãè¿ããããã§ãã¯ããŸã
max_fsm_relations èšå®ã ãã®ã¢ã¯ã·ã§ã³ã¯ã8.2以éã®ããŒã¿ããŒã¹ã§ã®ã¿æ©èœããŸãã
contribã¢ãžã¥ãŒã«ãå¿ èŠã§ã pg_freespacemap ã€ã³ã¹ããŒã«ãããŸãã NS - èŠå ãš - èŽåœç
ãªãã·ã§ã³ã¯ããŒã»ã³ããŒãžã§è¡šãå¿ èŠããããŸãã ããªãŒã§äœ¿çšãããé¢ä¿ã®æ°-
ã¹ããŒã¹ãããã¯ãpg_freespacemap_relationsãã¥ãŒã調ã¹ãããšã«ãã£ãŠæ±ºå®ãããŸãã ããã©ã«ã
å€ã¯ 85ïŒ èŠåãš 95ïŒ ã¯ãªãã£ã«ã«ã®ããã«ã
äŸ1ïŒã¯ã©ã¹ã¿ãŒãèªç±ç©ºéé¢ä¿ã®80ïŒ ã䜿ãæããããšãã«ãèŠåãåºããŸãã
pg_freespacemapãããŒã¿ããŒã¹dylanã«ã€ã³ã¹ããŒã«ãããŠãã
check_postgres_fsm_relations --dbname = dylan --warning = "75ïŒ "
pg_freespacemapãã€ã³ã¹ããŒã«ãããŠããããŒã¿ããŒã¹ã®ååãæž¡ãå¿ èŠããããŸããã
ãã®ãã§ãã¯ã¯ãã¯ã©ã¹ã¿ãŒããšã«XNUMXåã ãå®è¡ããå¿ èŠããããŸãã ãŸãããã®æ å ±ã確èªããã«ã¯ã
空ãé åãããã§ç¹å¥ãªããã¯ãååŸããããããããå®è¡ããªãããšããå§ãããŸã
çãééã§ç¢ºèªããŠãã ããã
MRTGåºåã®å Žåãæåã®è¡ã®ç©ºãé åãããã®å²åã
XNUMXè¡ç®ã§çŸåšäœ¿çšãããŠãããªã¬ãŒã·ã§ã³ã
ãããç
ïŒ "symlinkïŒcheck_postgres_hitratio"ïŒãã¹ãŠã®ããŒã¿ããŒã¹ã®ãããçããã§ãã¯ããŠæå¥ãèšã
ããããäœããããšãã ããŒã¿ããŒã¹ããšã«ãã®ã³ãã³ããè€æ°åå®è¡ããå¿ èŠã¯ãããŸãã
éãŸãã ããŒã¿ããŒã¹ã¯ã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã ãåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã ãããã¯ãã®ææè ã«ãã£ãŠãã£ã«ã¿ãªã³ã°ããããšãã§ããŸã
ããŒã¿ããŒã¹ãš --includeuser ãš --excludeuser ãªãã·ã§ã³ã ããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ããåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
èŠåããã³ã¯ãªãã£ã«ã«ãªãã·ã§ã³ã¯ãããŒã»ã³ããŒãžã§æå®ããå¿ èŠããããŸãã ååšããŸãã
ãã®ã¢ã¯ã·ã§ã³ã®ããã©ã«ãïŒèŠåãšã¯ãªãã£ã«ã«ãæå®ããå¿ èŠããããŸãã èŠåå€
èšçå€ãã倧ããããããšã¯ã§ããŸããã åºåã¯ã䞊ã¹æ¿ãããããã¹ãŠã®ããŒã¿ããŒã¹ãè¿ããŸã
hitratioãæåã«æå°ã
äŸïŒãã¹ãflaggäžã®ããŒã¿ããŒã¹ã®ãããçã90ïŒ æªæºã®å Žåã«èŠåãã次ã®å Žåã«ã¯ãªãã£ã«ã«
80ïŒ æªæºã
check_postgres_hitratio --host = flagg --warning = '90ïŒ '--critical = '80ïŒ '
MRTGåºåã®å Žåããããçãæå°ã®ããŒã¿ããŒã¹ã®ããŒã»ã³ããŒãžãè¿ããŸãã
æåã®è¡ãããã³XNUMXè¡ç®ã®ããŒã¿ããŒã¹ã®ååã
ãããã¹ã¿ã³ãã€é 延
ïŒ "symlinkïŒcheck_hot_standby_delay"ïŒãèšç®ããŠãã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³ã®é 延ããã§ãã¯ããŸãã
ãã¹ã¿ãŒãµãŒããŒã®çŸåšã®xlogäœçœ®ãšã®åçå Žæã®éã®ãã«ã¿
ããã«æ¥ç¶ãããã¹ã¬ãŒãã ã¹ã¬ãŒããµãŒããŒã¯hot_standbyïŒèªã¿åãå°çšãªã©ïŒã¢ãŒãã§ããå¿ èŠããããŸãã
ãããã£ãŠããã®ã¢ã¯ã·ã§ã³ã䜿çšããããã®æå°ããŒãžã§ã³ã¯Postgres9.0ã§ãã NS - èŠå ãš
- èŽåœç ãªãã·ã§ã³ã¯ãxlogã®å Žæéã®ãã«ã¿ã§ãã ãããã®å€ã¯ãã€ããªã®ã§
WALã®ãªãã»ããã¯ãã¢ããªã±ãŒã·ã§ã³ã®äºæ³ããããã©ã³ã¶ã¯ã·ã§ã³éãšäžèŽããå¿ èŠããããŸã
誀æ€ç¥ãŸãã¯èª€æ€ç¥ãé²ãããã
æåã®ã--dbnameããã-hostããã-portããªã©ã®ãªãã·ã§ã³ã¯ãã¹ã¿ãŒãšèŠãªãããŸãã NS
XNUMXçªç®ã¯ã¹ã¬ãŒãã«å±ããŸãã
ãã€ãå€ã¯ãã¹ããªãŒãã³ã°ãè¡ãããã«å¿ èŠãªãã©ã³ã¶ã¯ã·ã§ã³ã®éã«åºã¥ãå¿ èŠããããŸã
Postgresã«ãã£ãŠæ±ºå®ãããã©ã°ã倧ãããããããã¬ããªã±ãŒã·ã§ã³ããã¹ã¿ãŒããåæãããŸã
æ§æå€æ° wal_keep_segmentsã æéã®åäœã®å Žåãæå¹ãªåäœã¯ãç§ãã§ãã
ãåãããæéãããŸãã¯ãæ¥ãã ãããããåæ°ã§æžãããšããåã«
æåã®äžæåã äž¡æ¹ãæå®ããå Žåã¯ã 'ã®åœ¢åŒã§ãã€ã ãš æé'ãäž¡æ¹ã®æ¡ä»¶ã¯
ãããå€ãæºããããå Žåã¯trueã
ã«ã³ãã§åºåã£ãŠããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããæ¹æ³ã«é¢ããæ å ±ãæäŸããå¿ èŠããããŸã
ã--dbport = 5432,5543ããªã©ã®--dbhostããã³--dbportãã©ã¡ãŒã¿ãŒã«ãªã¹ãããŸãã äžããããŠããªãå Žåã
ã¢ã¯ã·ã§ã³ã¯å€±æããŸãã
äŸ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ã1WALã»ã°ã¡ã³ãåŸãã«é 眮ããŸã
ã¹ããªãŒãã³ã°ã¬ããªã±ãŒã·ã§ã³æ¥ç¶ãåŠçã§ãããããå€ãã®ã¢ã¯ãã£ããã£ããŸãã¯10åé ããŠ
ãã¹ã¿ãŒãã»ãšãã©ã¢ã¯ãã£ããã£ã確èªããŠãããããã©ã³ã¶ã¯ã·ã§ã³ãåŠçããŠããªããã
äž¡æ¹ãããã¯ãã¬ããªã±ãŒã·ã§ã³æ¥ç¶ã«æ°žç¶çãªåé¡ãããããšã瀺ããŠããŸãã
check_hot_standby_delay --dbhost = masterãreplica1 --warning = '1048576ããã³2å' --critical = '16777216ããã³10å'
ã€ã³ããã¯ã¹ãµã€ãº
ããŒãã«ãµã€ãº
Relation_size
ïŒã·ã³ããªãã¯ãªã³ã¯ïŒ "check_postgres_index_size"ã "check_postgres_table_size"ãããã³
"check_postgres_relation_size"ïŒã¢ã¯ã·ã§ã³ ããŒãã«ãµã€ãº ãš ã€ã³ããã¯ã¹ãµã€ãº åã«
ã®ããªãšãŒã·ã§ã³ Relation_size ã¢ã¯ã·ã§ã³ããããæé·ããé¢ä¿ããã§ãã¯ããŸã
倧ããã ãªã¬ãŒã·ã§ã³ïŒã€ãŸããããŒãã«ãšã€ã³ããã¯ã¹ïŒã¯ã - å«ã
ãš -é€å€ãã ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã é¢ä¿ã¯ã§ããŸã
ãŸããããããææãããŠãŒã¶ãŒã«ãã£ãŠã --includeuser ãš --excludeuser
ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ãããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ããåç §ããŠãã ããã
ã®å€ - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ãã¡ã€ã«ãµã€ãºã§ãããåäœã¯
ãã€ãããããã€ããã¡ã¬ãã€ããã®ã¬ãã€ãããã©ãã€ãããŸãã¯ãšã¯ãµãã€ãã ãããããçç¥ã§ããŸã
æåã®æåã«ã åäœãæå®ãããŠããªãå Žåããã€ããæ³å®ãããŸãã ããã©ã«ãã¯ãããŸãã
å€ïŒèŠåãšã¯ãªãã£ã«ã«ã®äž¡æ¹ã®ãªãã·ã§ã³ãæå®ããå¿ èŠããããŸãã æ»ãããã¹ãã«ã¯ã
èŠã€ãã£ãæ倧ã®é¢ä¿ã®ãµã€ãºã
Status --ã·ã§ãŒããã©ãŒãã³ã¹ ãªãã·ã§ã³ãæå¹ã«ãªã£ãŠããã ã ãããã®ãµã€ãºãšã®é¢ä¿ã®ãäžããããŸãã
ãããé²ãããã«ã --perflimit ãªãã·ã§ã³ãããã¯åå ã«ãªããŸã
ãORDERBYsize DESC LIMITïŒperflimitïŒããå®è¡ããããã®ã¯ãšãªã
äŸ1ïŒãã¹ãburrickã§600MBãè¶ ããããŒãã«ãããå Žåã¯ã¯ãªãã£ã«ã«ãæå®ããŸãã
check_postgres_table_size --critical = '600 MB' --warning = '600 MB' --host = burrick
äŸ2ïŒããŒãã«è£œåã®ãµã€ãºã4 GBãè¶ ããŠããå Žåã¯èŠåãã4.5GBã§ã¯ãªãã£ã«ã«ãæå®ããŸãã
check_postgres_table_size --host = burrick --warning = '4 GB' --critical = '4.5 GB' --include = products
äŸ3ïŒpostgresãææããŠããªãã€ã³ããã¯ã¹ã500MBãè¶ ããå Žåã«èŠåããŸãã
check_postgres_index_size --port = 5432 --excludeuser = postgres -w 500MB -c 600MB
MRTGåºåã®å Žåãæ倧ã®é¢ä¿ã®ãã€ãåäœã®ãµã€ãºãšã
XNUMXè¡ç®ãšããŠããŒã¿ããŒã¹ãšãªã¬ãŒã·ã§ã³ã
last_analyze
last_vacuum
last_autoanalyze
last_autovacuum
ïŒã·ã³ããªãã¯ãªã³ã¯ïŒ "check_postgres_last_analyze"ã "check_postgres_last_vacuum"ã
"check_postgres_last_autoanalyze"ãããã³ "check_postgres_last_autovacuum"ïŒã©ã®ãããã®æéããã§ãã¯ããŸãã
XNUMXã€ä»¥äžã®ããŒã¿ããŒã¹ã®åããŒãã«ã§ããã¥ãŒã ïŒãŸãã¯åæïŒãæåŸã«å®è¡ãããŠããã§ãã
ãããã®ã¢ã¯ã·ã§ã³ã䜿çšããã«ã¯ãã¿ãŒã²ããããŒã¿ããŒã¹ãããŒãžã§ã³8.3以éã§ããå¿ èŠããããŸãã
ããŒãžã§ã³ã¯8.2ã§ãæ§æå€æ°ã¯ stats_row_level æå¹ã«ãªã£ãŠããŸãã ããŒãã«
ã§ãã£ã«ã¿ãªã³ã°ããããšãã§ããŸã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã ãåºæ¬çãªãã£ã«ã¿ãªã³ã°ããåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã ããŒãã«ã¯ãææè ãã䜿çšããŠãã£ã«ã¿ãªã³ã°ããããšãã§ããŸãã
--includeuser ãš --excludeuser ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ãããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
詳现ã
ã®åäœ - èŠå ãš - èŽåœç æéãšããŠæå®ãããŸãã æå¹ãªåäœã¯ç§ã§ãã
åãæéãæ¥; ãã¹ãŠæåã®æåã«çç¥ã§ããŸãã ãŠãããããªãå Žå
äžããããå Žåããç§ããæ³å®ãããŸãã ããã©ã«ãå€ã¯ã1æ¥ããšã2æ¥ãã§ãã ã泚æãã ãã
ãã®ãã£ãŒã«ããèªåçã«å ¥åãããªãå ŽåããããŸãã 確ããªã
ããŒãã«ã¯ããªãã«åé¡ãäžããŠããŸããããããæé€æ©ããããããã«æ»ãã åãæã£ãŠããããšã確èªããŠãã ããããŸãã¯åã«
ãããããã¹ãããé€å€ããŸãã
'information_schema'ãšããååã®ã¹ããŒãã¯ããã®ãã¹ãããé€å€ãããŸãã
å«ãã¯å°ãããå€æŽãããŸããã
ãèªåã以å€ã®ããŒãžã§ã³ãèªåããŒãžã§ã³ããã§ãã¯ããããšã«æ³šæããŠãã ããã ãã®ä»
ã€ãŸããlast_vacuumã䜿çšãããšãéåžžã®ããã¥ãŒã ã§ãã£ããã©ããã«é¢ä¿ãªããæåŸã®ããã¥ãŒã ãå ±åãããŸãã
ãŸãã¯ãautovacuumããŒã¢ã³ã«ãã£ãŠå®è¡ããããã®ã
äŸ1ïŒ3æ¥éæé€æ©ããããããŠããªãããŒãã«ãããå Žåã¯èŠåãã
é±ããã¹ããããã®å Žå
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ããã®æå°æéãç§åäœã§è¿ããŸãã
ããŒãã«ã¯æåŸã«æé€æ©ãããããããåæãããŸããã XNUMXè¡ç®ã¯ãããŒã¿ããŒã¹ã®ååãš
ããŒãã«ã®ååã
ãªã¹ããŒ
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_listener"ïŒèª°ããXNUMXã€ä»¥äžããªãã¹ã³ããŠããããšã確èªããŸã
pg_listenerããŒãã«ãèŠãŠãç¹å®ã®æååïŒLISTEN / NOTIFYã·ã¹ãã ã䜿çšïŒã
èŠåãŸãã¯ã¯ãªãã£ã«ã«ã®ããããXNUMXã€ã ããå¿ èŠã§ãã 圢åŒã¯ããè¡šãåçŽãªæååã§ãã
LISTENã¿ãŒã²ããããŸãã¯ãã«ãæåã®åŸã«æ£èŠè¡šçŸãã§ãã¯çšã®æååãç¶ããŸãã
ãã®ãã§ãã¯ã¯ãPostgres9.0以éã®ããŒãžã§ã³ã§ã¯æ©èœããªãããšã«æ³šæããŠãã ããã
äŸ1ïŒããŒãã§æååbucardo_mcp_pingããªãã¹ã³ããŠãã人ãããªãå Žåã¯ãèŠåã衚瀺ããŸã
5555ãš5556
check_postgres_listener --port = 5555,5556 --warning = bucardo_mcp_ping
äŸ2ïŒãgrimmãã«äžèŽããã¢ã¯ãã£ããªLISTENãªã¯ãšã¹ãããªãå Žåã«ã¯ãªãã£ã«ã«ãäžãã
ããŒã¿ããŒã¹oskar
check_postgres_listener --db oskar --critical = ãgrimm
MRTGåºåã®å Žåãæåã«1ãŸãã¯0ãè¿ããæåãŸãã¯å€±æã瀺ããŸãã åå
éç¥ã® --MRTG ãªãã·ã§ã³ãéžæããŸãã
ããã¯
ïŒ "symlinkïŒcheck_postgres_locks"ïŒXNUMXã€ä»¥äžã®ããã¯ã®ç·æ°ã確èªããŸã
ããŒã¿ããŒã¹ã ããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒããšã«ãããè€æ°åå®è¡ããå¿ èŠã¯ãããŸããã ããŒã¿ããŒã¹ã¯ã§ããŸã
ã§ãã£ã«ã¿ãªã³ã°ãããŸã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã ãåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ãã
ã®ã¬ã€ãããåç §ãã ããã
ãã® - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ã以äžãè¡šãåçŽãªæ°å€ãšããŠæå®ã§ããŸãã
ããã¯ã®ç·æ°ããŸãã¯ããã¯ã®çš®é¡ããšã«åé¡ã§ããŸãã æå¹ãªããã¯å
'total'ã 'waiting'ããŸãã¯Postgresã§äœ¿çšãããããã¯ã¿ã€ãã®ååã§ãã ãããã®ååã¯
倧æåãšå°æåãåºå¥ãããæåŸã«ãããã¯ãéšåã¯å¿ èŠãããŸããã æä»ç㪠äžèŽããŸã
'ExclusiveLock'ã 圢åŒã¯name = numberã§ãã³ãã³ãŸãã¯ã³ãã³ã§åºåãããããŸããŸãªé ç®ããããŸãã
ã»ãã³ãã³ïŒãŸãã¯ãã®ä»ã®èšå·ïŒã
äŸ1ïŒããã¯ã®æ°ã100以äžã®å Žåã¯èŠåãã200以äžã®å Žåã¯ã¯ãªãã£ã«ã«
ãã¹ãã®ã£ã¬ãã
check_postgres_locks --host = garrett --warning = 100 --critical = 200
äŸ2ïŒãã¹ãã¢ã«ãã ã¹ã§ã200以äžã®ããã¯ãååšããå Žåã¯èŠåãã
åèš250ãè¶ ããããã¯ãååšããå ŽåããŸãã¯20ãè¶ ããæä»ããã¯ãååšããå ŽåããŸãã¯5ãè¶ ããæ¥ç¶ãããå Žå
ããã¯ãåŸ ã£ãŠããŸãã
check_postgres_locks --host = artemus --warning = 200 --critical = "total = 250ïŒwaiting = 5ïŒexclusive = 20"
MRTGåºåã®å Žåãæåã®è¡ã®ããã¯ã®æ°ãšã
XNUMXè¡ç®ã®ããŒã¿ããŒã¹ã
ãã°ãã¡ã€ã«
ïŒ "symlinkïŒcheck_postgres_logfile"ïŒãã°ãã¡ã€ã«ãäºæãããå Žæã«ããããšã確èªããŸã
ã«ãã°ã€ã³ããŠããŸãã ãã®ã¢ã¯ã·ã§ã³ã¯ãããããã«ãšã©ãŒãã¹ããŒããã³ãã³ããçºè¡ããŸã
ãã§ãã¯ããŠããããŒã¿ããŒã¹ã§ãããã¡ãã»ãŒãžããã°ã«è¡šç€ºãããããšã確èªããŸãã ã¹ãã£ã³ããŸã
ãã°ãã©ãã«ããã¹ãããç解ããããã®Postgreså ã®ããŸããŸãªlog_ *èšå®ã ããããããã
syslogã䜿çšããŠããå Žåã倧ãŸããªïŒãã ã絶察確å®ã§ã¯ãªãïŒã¹ãã£ã³ãå®è¡ããŸã /etc/syslog.conf.
ãŸãã¯ããã°ãã¡ã€ã«ã®ååã --ãã°ãã¡ã€ã« ãªãã·ã§ã³ã ããã¯
ãã°ã«å€éšããã°ã©ã ã«ãã£ãŠé§åãããã«ã¹ã¿ã ããŒããŒã·ã§ã³ã¹ããŒã ãããå Žåã«ç¹ã«äŸ¿å©ã§ãã
ãã® --ãã°ãã¡ã€ã« ãªãã·ã§ã³ã¯æ¬¡ã®ãšã¹ã±ãŒãæåããµããŒãããŸãïŒ "ïŒ YïŒ mïŒ dïŒ H"ããã
ãããããçŸåšã®å¹Žãæãæ¥ä»ãããã³æéãè¡šããŸãã ãšã©ãŒã¯åžžã«
èŠåãªãã·ã§ã³ããŒã以å€ã®å€ãšããŠæž¡ãããŠããªãéããã¯ãªãã£ã«ã«ãšããŠå ±åãããŸãã
ãã®ç¹å®ã®äœ¿çšæ³ä»¥å€ã«ãã-warningãããã³ã--criticalããªãã·ã§ã³ã¯ 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ãè¿ããæåãŸãã¯å€±æã瀺ããŸãã ã®
é害ãçºçããå Žåã¯ãXNUMXè¡ç®ã«çºçããé害ã®è©³çŽ°ã瀺ãããŸãã
æ°ããããŒãžã§ã³_bc
ïŒ "symlinkïŒcheck_postgres_new_version_bc"ïŒæ°ããããŒãžã§ã³ã®Bucardoãã©ããã確èªããŸã
ããã°ã©ã ãå©çšå¯èœã§ãã çŸåšã®ããŒãžã§ã³ã¯ããbucardo_ctl--versionããå®è¡ããããšã§ååŸãããŸãã
ã¡ãžã£ãŒã¢ããã°ã¬ãŒããå©çšå¯èœãªå ŽåãèŠåãè¿ãããŸãã ãªããžã§ã³ã®ã¢ããã°ã¬ãŒãã
å©çšå¯èœã§ããå Žåãã¯ãªãã£ã«ã«ãè¿ãããŸãã ïŒãã«ã«ãã¯ãã¹ã¿ãŒããã¹ã¬ãŒãããããŠãã¹ã¿ãŒãããã¹ã¿ãŒã§ã
Postgresã®ã¬ããªã±ãŒã·ã§ã³ã·ã¹ãã ïŒãåç §ããŠãã ãã http://bucardo.org 詳现ã«ã€ããŠã¯ïŒã ãåç §ããŠãã ãã
ã--get_methodããªãã·ã§ã³ã«é¢ããæ å ±ã
æ°ããããŒãžã§ã³ããã¯ã¹
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_new_version_box"ïŒæ°ããããŒãžã§ã³ã®boxinfoãã©ããã確èªããŸã
ããã°ã©ã ãå©çšå¯èœã§ãã çŸåšã®ããŒãžã§ã³ã¯ããboxinfo.pl--versionããå®è¡ããŠååŸããŸãã
ã¡ãžã£ãŒã¢ããã°ã¬ãŒããå©çšå¯èœãªå ŽåãèŠåãè¿ãããŸãã ãªããžã§ã³ã®ã¢ããã°ã¬ãŒãã
å©çšå¯èœã§ããå Žåãã¯ãªãã£ã«ã«ãè¿ãããŸãã ïŒboxinfoã¯éèŠãªãã®ãã€ããããã®ããã°ã©ã ã§ã
ãµãŒããŒããã®æ å ±ãšãããHTML圢åŒã«å€æããïŒãåç §ããŠãã ããã
http://bucardo.org/wiki/boxinfo 詳现ã«ã€ããŠã¯ïŒã ã«é¢ããæ å ±ãåç §ããŠãã ããã
ã--get_methodããªãã·ã§ã³ã
æ°ããããŒãžã§ã³_cp
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_new_version_cp"ïŒãã®ããã°ã©ã ã®æ°ããããŒãžã§ã³ãã©ããã確èªããŸã
ïŒcheck_postgresïŒã¯ãã¡ã€ã³ã®å°ããªããã¹ããã¡ã€ã«ããããŒãžã§ã³ãååŸããããšã§å©çšã§ããŸã
ãããžã§ã¯ãã®ããŒã ããŒãžã®ããŒãžã è¿ãããããŒãžã§ã³ãããã§ãªãå Žåã¯èŠåãè¿ããŸã
å®è¡ããŠãããã®ãšäžèŽããŸãã 確èªããæšå¥šééã¯XNUMXæ¥XNUMXåã§ãã ãåç §ããŠãã ãã
ã--get_methodããªãã·ã§ã³ã«é¢ããæ å ±ã
æ°ããããŒãžã§ã³_ããŒãž
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_new_version_pg"ïŒPostgresã®æ°ãããªããžã§ã³ãååšãããã©ããã確èªããŸã
æ¥ç¶ãããŠããããŒã¿ããŒã¹ããšã«ã ããã¯ãªããžã§ã³ã®ã¿ããã§ãã¯ããããšã«æ³šæããŠãã ããã
8.3.6ãã8.3.7ã ãªããžã§ã³ã¯åžžã«100ïŒ ãã€ããªäºæã§ããããã³ãã
埩å ããŠã¢ããã°ã¬ãŒãããŸãã ãã°ã«å¯ŸåŠããããã«æ¹èšãè¡ãããŠãããããã§ããã ãæ©ãã¢ããã°ã¬ãŒãããŠãã ãã
åžžã«ãå§ãããŸãã ææ°ã®ãªããžã§ã³ããªãå Žåã¯èŠåãè¿ããŸãã ã§ã
ãã®ãã§ãã¯ã¯å°ãªããšãXNUMXæ¥ã«XNUMXåå®è¡ããããšããå§ãããŸãã ã«é¢ããæ å ±ãåç §ããŠãã ããã
ã--get_methodããªãã·ã§ã³ã
æ°ããããŒãžã§ã³_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
ïŒã·ã³ããªãã¯ãªã³ã¯ïŒ "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_ãã ã¢ã¯ãã£ããªã¯ã©ã€ã¢ã³ãæ¥ç¶ã¯ãçŸåšãªã³ã¯ãããŠããæ¥ç¶ã§ã
ã¢ã¯ãã£ããªãµãŒããŒæ¥ç¶ã䜿çšããŸãã ã¯ã©ã€ã¢ã³ãæ¥ç¶ããåŸ æ©äžãã§ããå¯èœæ§ããããŸããã€ãŸãã
ãµãŒããŒæ¥ç¶ã¯ãŸã å²ãåœãŠãããŠããŸããã ãµãŒããŒæ¥ç¶ã¯ãã¢ã¯ãã£ããã§ãïŒãªã³ã¯ãããŠããŸãïŒ
ã¯ã©ã€ã¢ã³ããžïŒããã¢ã€ãã«ãïŒãªã³ã¯ããã¯ã©ã€ã¢ã³ãæ¥ç¶ãåŸ æ©ïŒãã䜿çšæžã¿ãïŒã¡ããã©
ã¯ã©ã€ã¢ã³ããããªã³ã¯è§£é€ããããŸã ã¢ã€ãã«ããŒã«ã«æ»ãããŠããªãïŒãããã¹ãæžã¿ãïŒçŸåšã¯
ãã¹ãæžã¿ïŒããã³ããã°ã€ã³ãïŒãã°ã€ã³äžïŒã maxwaitå€ã¯ã
åŸ æ©äžã®æãå€ãã¯ã©ã€ã¢ã³ãæ¥ç¶ãåŸ æ©ããŠããç§æ°ã
pgbouncer_backends
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_pgbouncer_backends"ïŒçŸåšã®æ¥ç¶æ°ã確èªããŸã
pgbouncerãä»ããŠXNUMXã€ä»¥äžã®ããŒã¿ããŒã¹ã«å¯ŸããŠããªãã·ã§ã³ã§æ倧å€ãšæ¯èŒããŸã
èš±å¯ãããŸããããã¯ãpgbounceræ§æå€æ°ã«ãã£ãŠæ±ºå®ãããŸãã max_client_connãéžæããŸãã
- èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ãXNUMXã€ã®åœ¢åŒã®ãããããåãããšãã§ããŸãã ãŸããåçŽãªæ°ã¯
ãäžããããŸããããã¯ãã¢ã©ãŒããåºãããæ¥ç¶ã®æ°ãè¡šããŸãã
ãã®éžæã§ã¯ã max_connections èšå®ã 第äºã«ãå©çšå¯èœãªã®å²å
æ¥ç¶ãäžããããšãã§ããŸãã 第äžã«ãè² ã®æ°ãäžããããšãã§ããŸãã
ãŸã§æ®ã£ãŠããæ¥ç¶ã®æ° max_connections ãéæãããã ã®ããã©ã«ãå€
- èŠå ãš - èŽåœç ã90ïŒ ããšã95ïŒ ãã§ãã ã䜿çšããŠããŒã¿ããŒã¹ããã£ã«ã¿ãªã³ã°ããããšãã§ããŸã
ã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ããåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ã¢ã€ãã«ç¶æ ã§ãªãããã»ã¹ã®ã¿ã衚瀺ããã«ã¯ã --ãã€ãã« å£è«ã ãŠãŒã¶ãŒã¯ããªãã«æ³šæããŠãã ãã
ãããæ£ããæ©èœããã«ã¯ãã¹ãŒããŒãŠãŒã¶ãŒã§ããå¿ èŠããããããæ¥ç¶ããŠããŸãã
äŸ1ïŒãã¹ãquirmã®æ¥ç¶æ°ã120ã«éãããšãã«èŠåãåºãã
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åºåã®å Žåãæ¥ç¶æ°ã¯XNUMXè¡ç®ãXNUMXè¡ç®ã§å ±åãããŸã
è¡ã¯ãããŒã¿ããŒã¹ã®ååãšçŸåšã®max_client_connã瀺ããŸãã è€æ°ã®å Žå
ããŒã¿ããŒã¹ãç §äŒãããæ¥ç¶æ°ãæãå€ãããŒã¿ããŒã¹ãåºåãããŸãã
pgbouncer_checksum
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_pgbouncer_checksum"ïŒãã¹ãŠã®pgBouncerèšå®ã
ååãã§ãã¯ããæãšåãã§ãã ããã¯ã䞊ã¹æ¿ãããããªã¹ãã®ãã§ãã¯ãµã ãçæããããšã«ãã£ãŠè¡ãããŸãã
ååãšãã®å€ãèšå®ããŸãã ããŒã¿ããŒã¹åãæå®ããã¹ãã§ã¯ãªãããšã«æ³šæããŠãã ããã
èªåçã«ããã©ã«ãã§pgbouncerã«ãªããŸãã ã©ã¡ãã - èŠå ãŸã㯠- èŽåœç ãªãã·ã§ã³
äžããå¿ èŠããããŸãããäž¡æ¹ã§ã¯ãããŸããã ããããã®å€ã¯ãã§ãã¯ãµã ã32æåã§ã
0é²å€ã ç¹å¥ãªã--critical = XNUMXããªãã·ã§ã³ãæå®ããŠå®è¡ãããšã
æ¢åã®ãã§ãã¯ãµã ã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãDigest :: MD5ã¢ãžã¥ãŒã«ãå¿ èŠã§ãã
äŸ1ïŒããŒã6432ã§pgbounceræ§æã®åæãã§ãã¯ãµã ãèŠã€ããã«ã¯ã
ããã©ã«ããŠãŒã¶ãŒïŒéåžžã¯postgresïŒ
check_postgres_pgbouncer_checksum --port = 6432 --critical = 0
äŸ2ïŒèšå®ãå€æŽãããŠããªãããšã確èªããå€æŽãããŠããå Žåã¯èŠåããŸãã
äžèšã
check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
MRTGåºåã®å Žåããã§ãã¯ãµã ã®äžèŽã«å€±æããããšã瀺ã1ãŸãã¯0ãè¿ããŸãã
ãã§ãã¯ãµã ã¯ã--mrtgãåŒæ°ãšããŠæäŸããå¿ èŠããããŸãã XNUMXè¡ç®ã¯åžžã«
çŸåšã®ãã§ãã¯ãµã ã
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
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_prepared_txns"ïŒæ¢åã®æºåæžã¿ã®å¹Žéœ¢ã確èªããŸã
ãã©ã³ã¶ã¯ã·ã§ã³ã 圌ãã¯äžéšã§ãããããã»ãšãã©ã®äººã¯æºåããããã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããªãããšã«æ³šæããŠãã ãã
XNUMXã€ã®éšåãããªãã³ãããã§ãããä¿å®ãè€éã§ãã ãŸããããããæ··åããªãã§ãã ãã
ããªãã¢ãã¹ããŒãã¡ã³ããããã¯ãã»ãšãã©ã®äººãããªãã¢ããèãããšãã«èãããã®ã§ãã NS
èŠåã®ããã©ã«ãå€ã¯1ç§ã§ãæºåããããã©ã³ã¶ã¯ã·ã§ã³ã®äœ¿çšãæ€åºããŸãã
ã»ãšãã©ã®ã·ã¹ãã ã§ã¯ããããééãã§ãã èŠåãšã¯ãªãã£ã«ã«ã¯ç§æ°ã§ã
ã¢ã©ãŒããåºãããåã«ãæºåããããã©ã³ã¶ã¯ã·ã§ã³ãéãããŠããŸãã
äŸ1ïŒæºåããããã©ã³ã¶ã¯ã·ã§ã³ã®æ€åºã«ã€ããŠèŠåãåºããŸãã
check_postgres_prepared_txns -w 0
äŸ2ïŒæºåããããã©ã³ã¶ã¯ã·ã§ã³ã10ãè¶ ããŠéãããŠããå Žåã¯ãã¯ãªãã£ã«ã«ãæå®ããŸã
ç§ã§ãããããŒã¿ããŒã¹ã®ãshrikeãã«ã¯æ倧360ç§ããããŸãã
check_postgres_prepared_txns --critical = 10 --exclude = shrike
check_postgres_prepared_txns --critical = 360 --include = shrike
MRTGåºåã®å Žåãæãå€ããã©ã³ã¶ã¯ã·ã§ã³ãéããŠããç§æ°ã次ã®ããã«è¿ããŸãã
æåã®è¡ãããã³ã©ã®ããŒã¿ããŒã¹ãæåŸã®è¡ãšããŠååŸããããã
ã¯ãšãªå®è¡æé
ïŒ "symlinkïŒcheck_postgres_query_runtime"ïŒç¹å®ã®ã¯ãšãªã®å®è¡ã«ãããæéããã§ãã¯ããŸãã
ããã«å¯ŸããŠãEXPLAINANALYZEããå®è¡ããŸãã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯
ã¯ãšãªã«ãããæ倧æéã æå¹ãªåäœã¯ãç§ãåãããã³æéã§ãã
anyã¯æåã®æåã«çç¥ã§ããŸãã åäœãæå®ãããŠããªãå Žåããç§ããæ³å®ãããŸãã
èŠåãšã¯ãªãã£ã«ã«ãªãã·ã§ã³ã®äž¡æ¹ãæå®ããå¿ èŠããããŸãã ãã¥ãŒãŸãã¯é¢æ°ã®åå
å®è¡ããã«ã¯ãã«æž¡ãå¿ èŠããããŸã --ã¯ãšãªå ãªãã·ã§ã³ã XNUMXã€ã®åèªã§æ§æãããŠããå¿ èŠããããŸã
ïŒãŸãã¯schema.wordïŒãæåŸã«ãªãã·ã§ã³ã®æ¬åŒ§ããããŸãã
äŸ1ïŒãspeedtestããšããååã®é¢æ°ã10ç§ä»¥å ã«å®è¡ã«å€±æããå ŽåããŸãã¯
ãã£ãšå°ãªãã
check_postgres_query_runtime --queryname = 'speedtestïŒïŒ' --critical = 10 --warning = 10
MRTGåºåã®å Žåãã¯ãšãªãæåã®è¡ã§å®äºãããŸã§ã®æéãç§åäœã§å ±åããŸãã
XNUMXè¡ç®ã«ã¯ãããŒã¿ããŒã¹ããªã¹ããããŠããŸãã
ã¯ãšãªæé
ïŒ "symlinkïŒcheck_postgres_query_time"ïŒXNUMXã€ä»¥äžã§å®è¡äžã®ã¯ãšãªã®é·ââãããã§ãã¯ããŸã
ããŒã¿ããŒã¹ã åãããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒã§ãããè€æ°åå®è¡ããå¿ èŠã¯ãããŸããã ããŒã
ããã¯ãããã©ã³ã¶ã¯ã·ã§ã³ã§ã¢ã€ãã«ç¶æ ãã®ã¯ãšãªããã§ã«é€å€ããŠããããšã ããŒã¿ããŒã¹ã¯
ã䜿çšããŠãã£ã«ã¿ãªã³ã° - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã ãåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ã ã¯ãšãªãå®è¡ããŠãããŠãŒã¶ãŒããã£ã«ã¿ãªã³ã°ããããšãã§ããŸã --includeuser
ãš --excludeuser ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ãããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ããåç §ããŠãã ããã
ã®å€ - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯æéã§ãããããã©ã«ã㯠'2
ãããããåããšã5åãã æå¹ãªåäœã¯ããç§ãããåãããæéãããŸãã¯
'æ¥ã 'ã ãããããåæ°ã§æžãããããšãããã°ãæåã®æåã ãã«çç¥ãããããšããããŸãã ãŠãããããªãå Žå
ãäžããããå Žåãåäœã¯ç§ãšèŠãªãããŸãã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãPostgres8.1以éãå¿ èŠã§ãã
äŸ1ïŒã¯ãšãªã3åãè¶ ããŠå®è¡ãããŠããå Žåã¯èŠåãåºãã
5åããé·ãå Žåã¯éèŠã§ãã
check_postgres_query_time --port = 5432 --warning = '3å' --critical = '5å'
äŸ2ïŒããã©ã«ãå€ïŒ2åãš5åïŒã䜿çšããŠãããããé€ããã¹ãŠã®ããŒã¿ããŒã¹ããã§ãã¯ããŸã
'template'ã§å§ãŸããŸãã
check_postgres_query_time --port = 5432 --exclude =ã^ template
äŸ3ïŒãŠãŒã¶ãŒ 'don'ã®ã¯ãšãªã20ç§ãè¶ ããŠå®è¡ãããŠããå Žåã«èŠåãã
check_postgres_query_time --port = 5432 --includeuser = don --warning = 20s
MRTGåºåã®å Žåãæåã®ã¯ãšãªã§æãé·ãå®è¡ãããŠããã¯ãšãªã®é·ââããç§åäœã§è¿ããŸã
ã©ã€ã³ã XNUMXè¡ç®ã¯ãããŒã¿ããŒã¹ã®ååã瀺ããŠããŸãã
Replica_row
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_replicate_row"ïŒãã¹ã¿ãŒ/ã¹ã¬ãŒãã¬ããªã±ãŒã·ã§ã³ãæ©èœããŠããããšã確èªããŸã
XNUMXã€ä»¥äžã®ã¹ã¬ãŒãã«ã
æåã®ã--dbnameããã-hostããã-portããªã©ã®ãªãã·ã§ã³ã¯ãã¹ã¿ãŒãšèŠãªãããŸãã
ãã®åŸã®äœ¿çšã¯ã¹ã¬ãŒãã§ãã å€ãŸã㯠- èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯
æéã®åäœã§ãããå°ãªããšãXNUMXã€ãæå®ããå¿ èŠããããŸãïŒããã©ã«ããªãïŒã æå¹ãªåäœã¯ãç§ãã§ãã
ãåãããæéãããŸãã¯ãæ¥ãã ãããããåæ°ã§æžãããšããåã«
æåã®äžæåã åäœãæå®ãããŠããªãå Žåãåäœã¯ç§ãšèŠãªãããŸãã
ãã®ãã§ãã¯ã¯ããã¹ã¿ãŒã®XNUMXã€ã®è¡ãæŽæ°ããŠãããæèŠæéã枬å®ããŸãã
ã¹ã¬ãŒãã«é©çšãããŸãã ãããè¡ãã«ã¯ãã¬ããªã±ãŒããããŠããããŒãã«ãéžæããŠããã
å€æŽå¯èœã§ãä»ã®ããã»ã¹ã«ãã£ãŠå€æŽãããªãè¡ãèŠã€ããŸãã NS
ãã®è¡ã®ç¹å®ã®åã¯ãããå€ããå¥ã®å€ã«å€æŽãããŸãã ãã®ãã¹ãŠãäŸçµŠãããŸã
ãrepinfoããªãã·ã§ã³ã«è¿œå ããã³ã³ãã§åºåã£ãŠæ¬¡ã®ãªãã·ã§ã³ãå«ããå¿ èŠããããŸãã
ããŒãã«åãäž»ããŒãããŒIDãåãæåã®å€ãXNUMXçªç®ã®å€ã
äŸ1ïŒSlonyã¯ããordersããšããååã®ããŒãã«ããã¹ããalphaããããã¹ããbetaãã«è€è£œããŠããŸãã
ããŒã¿ããŒã¹ã®ã販売ãã ããŒãã«ã®äž»ããŒã®ååã¯idã§ã次ã®ããã«ãªããŸãã
IDã3ã®è¡ããã¹ãããŸãïŒããã¯å±¥æŽã§ãããå€æŽãããããšã¯ãããŸããïŒã ã³ã©ã ããããŸã
ãslonãã®å€ãããnolsãã«åãæ¿ããŠãã§ãã¯ãããsalesrepããšããåå
ã¬ããªã±ãŒã·ã§ã³ã ã¬ããªã±ãŒã·ã§ã³ã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ããããã¹ãã«è€è£œããŠããŸã
ãèµ€ãããéãããé»è²ãã äž¡åŽã®ããŒã¿ããŒã¹ã¯ãpublicãã§ãã ã¹ã¬ãŒãããŒã¿ããŒã¹
ããŒã5455ã§å®è¡ãããŠããŸããäž»ããŒã®ååã¯ãreceipt_idãã§ã䜿çšããè¡ã§ãã
ã®å€ã¯9ã§ããã¹ãçšã«å€æŽããåã¯ããŸãŒã³ããšåŒã°ããŸãã è¯ã
ãã®åã®å€ãšããŠãnorthããšãsouthããåãæ¿ãã次ã®å Žåã«ã¯ãªãã£ã«ã«ãã¹ããŒããŸãã
å€æŽã¯ã5ç§ä»¥å ã«XNUMXã€ã®ã¹ã¬ãŒããã¹ãŠã«é©çšãããããã§ã¯ãããŸããã
check_postgres_replicate_row --host = green --port = 5455 --host = redãblueãyellow
--critical = 5 --repinfo = receiptãreceipt_idã9ãzoneãnorthãsouth
MRTGåºåã®å Žåãã¬ããªã±ãŒã·ã§ã³ã«ãããæéãç§åäœã§æåã®è¡ã«è¿ããŸã
çµäºã æ倧æéã¯4å30ç§ã«èšå®ãããŠããŸãïŒã¬ããªã±ãŒã·ã§ã³ãè¡ãããŠããªãå Žå
ãã®é·ãé眮ããšããšã©ãŒãã¹ããŒãããŸãã
åãã¹ããŒã
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_same_schema"ïŒXNUMXã€ä»¥äžã®ããŒã¿ããŒã¹ãåäžã§ããããšã確èªããŸã
ã¹ããŒãã«é¢ããéãïŒãã ããå éšã®ããŒã¿ã¯å«ãŸããŸããïŒã ããã¯ç¹ã«äœæã«äŸ¿å©ã§ã
ãã¹ã¿ãŒããã¹ã¬ãŒãã«äœ¿çšããå Žåã¯ãã¹ã¬ãŒããå€æŽãŸãã¯ç ŽæããŠããªãããšã確èªããŠãã ãã
ã¬ããªã±ãŒã·ã§ã³ã ä»ã®ã»ãšãã©ã®ã¢ã¯ã·ã§ã³ãšã¯ç°ãªããããã«ã¯èŠåãéèŠãªåºæºã¯ãããŸãã-
ããŒã¿ããŒã¹ã¯åæããŠããããåæããŠããªããã®ã©ã¡ããã§ãã ããããç°ãªãå Žåã¯ã
éãã衚瀺ãããŸãã
ç¹å®ã®éããé€å€ãŸãã¯é€å€ããããšããå§ãããŸãã ãããè¡ãæ¹æ³ã¯ãè¿œå ããããšã§ã
ã--filterããªãã·ã§ã³ãžã®æååã ãªããžã§ã¯ãã®ã¿ã€ããé€å€ããã«ã¯ããnonameãã䜿çšããŸããããã§ããnameã
ãªããžã§ã¯ãã®ã¿ã€ãã§ããããšãã°ããnoschemaãã§ãã ç¹å®ã®ã¿ã€ãã®ãªããžã§ã¯ããé€å€ããã«ã¯
ãããã®ååã«å¯Ÿããæ£èŠè¡šçŸã«ã¯ããnoname = regexãã䜿çšããŸãã 以äžã®äŸãåç §ããŠãã ããã
ããè¯ãç解ã
ãã£ã«ã¿ãªã³ã°ã§ãããªããžã§ã¯ãã®ã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
user
ã¹ããŒã
ããŒãã«
ãã¥ãŒ
index
ã·ãŒã±ã³ã¹
å¶çŽ
ããªã¬ãŒ
function
ãã£ã«ã¿ãªãã·ã§ã³ãnopositionãã¯ãå ã®åã®äœçœ®ã®æ€èšŒãé²ããŸã
åã§çªå·ã®æšªã«ããXãã¯ãªãã¯ããŸãã
ãã£ã«ã¿ãªãã·ã§ã³ãnofuncbodyãã¯ããã¹ãŠã®é¢æ°ã®æ¬äœã®æ¯èŒãé²ããŸãã
ãã£ã«ã¿ãªãã·ã§ã³ãnopermãã¯ããªããžã§ã¯ãã®ã¢ã¯ã»ã¹èš±å¯ã®æ¯èŒãé²ããŸãã
XNUMXçªç®ã®ããŒã¿ããŒã¹ãæäŸããã«ã¯ã次ã®åŒã³åºãã«ãã£ãŠæåã®ããŒã¿ããŒã¹ã«éããè¿œå ããã ãã§ãã
é©åãªæ¥ç¶åŒæ°ã ããšãã°ããã¹ãalphaãšã®ããŒã¿ããŒã¹ãæ¯èŒããã«ã¯
ãã©ããŒãã-dbhost = alphaãbravoãã䜿çšããŸãã 以äžã®äŸãåç §ããŠãã ããã
åäžã®ãã¹ãã®ã¿ãæå®ãããŠããå Žåã¯ããæéããŒã¹ã®ãã¬ããŒããå®è¡ããŠãããšèŠãªãããŸãã NS
ãããåããŠå®è¡ããããšãããŒã¿ããŒã¹å ã®ãã¹ãŠã®ã¢ã€ãã ã®ã¹ãããã·ã§ãããããŒã«ã«ã«ä¿åãããŸã
ãã¡ã€ã«ã å床å®è¡ãããšããã®ã¹ãããã·ã§ãããèªã¿èŸŒãŸãããããŒã¿ããŒã¹ïŒ2ãã«ãªããŸãã
çŸåšã®ããŒã¿ããŒã¹ãšæ¯èŒã
å€ãä¿åãã¡ã€ã«ãæ°ããããŒãžã§ã³ã«çœ®ãæããã«ã¯ã-replaceåŒæ°ã䜿çšããŸãã
ããŸããŸãªæç¹ã§ã¹ãããã·ã§ãããæå¹ã«ããã«ã¯ãã-suffixãåŒæ°ã䜿çšããŠäœæããŸãã
åå®è¡ã«åºæã®ãã¡ã€ã«åã 以äžã®äŸãåç §ããŠãã ããã
äŸ1ïŒãã¹ãã®ã¹ã¿ãŒãšã©ã€ã³äžã®XNUMXã€ã®ããŒã¿ããŒã¹ãåãã§ããããšã確èªããŸãã
check_postgres_same_schema --dbhost = starãline
äŸ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 = batchstar --dbport = 5432,5544
äŸ5ïŒæ¥æ¬¡ããã³é±æ¬¡ã®ã¹ãããã·ã§ãããã¡ã€ã«ãäœæãã
check_postgres_same_schema --dbname = Cyclon --suffix = daily
check_postgres_same_schema --dbname = Cyclon --suffix = weekly
äŸ6ïŒå±¥æŽæ¯èŒãå®è¡ããŠããããã¡ã€ã«ã眮ãæããŸã
check_postgres_same_schema --dbname = Cyclon --suffix = daily --replace
ã·ãŒã±ã³ã¹
ïŒ "symlinkïŒcheck_postgres_sequence"ïŒã®ãã¹ãŠã®ã·ãŒã±ã³ã¹ã«æ®ã£ãŠããã¹ããŒã¹ããã§ãã¯ããŸã
ããŒã¿ããŒã¹ã ããã¯ã䜿çšãããå¯èœæ§ã®ããåèšå€ã®ããŒã»ã³ããšããŠæž¬å®ãããŸã
ã·ãŒã±ã³ã¹ããšã«ã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯æ¬¡ã®ããã«è¡šçŸããå¿ èŠããããŸã
ããŒã»ã³ããŒãžã ããã©ã«ãå€ã¯ 85ïŒ èŠåãš 95ïŒ ã¯ãªãã£ã«ã«ã®ããã«ã ããŠãããã§ã
--includeããã³--excludeã䜿çšããŠããã§ãã¯ããã·ãŒã±ã³ã¹ãå¶åŸ¡ããŸãã ããã«æ³šæããŠãã ãã
ãã§ãã¯ã¯ç°åžžã説æããŸã æå°å€ ãš å¢å by å€ã§ããã
ã·ãŒã±ã³ã¹ã¯ãµã€ã¯ã«ãããã©ããã«èšå®ãããŸãã
Nagiosã®åºåã«ã¯ãã·ãŒã±ã³ã¹ã®ååã䜿çšãããããŒã»ã³ããŒãžãããã³æ°ã瀺ãããŸã
æ®ãã®ãåŒã³åºããã®æ°ã¯ããã®ã·ãŒã±ã³ã¹ã§nextvalãããã«äœååŒã³åºãããšãã§ãããã瀺ããŸã
æ倧å€ã«éããåã«ã
MRTGã®åºåã¯ãæåã®è¡ã®ãã¹ãŠã®ã·ãŒã±ã³ã¹ã§æé«ã®ããŒã»ã³ããŒãžãè¿ããŸãã
XNUMXè¡ç®ã«ãã®ããŒã»ã³ããŒãžãã|ãã§åºåãããåã·ãŒã±ã³ã¹ã®åå
ïŒãã€ãïŒãã®ããŒã»ã³ããŒãžã«è€æ°ã®ã·ãŒã±ã³ã¹ãããå Žåã
äŸ1ïŒã·ãŒã±ã³ã¹ã95ïŒ ãã£ã±ãã«è¿ã¥ããŠããå Žåã¯ãèŠåã衚瀺ããŸãã
check_postgres_sequence --dbport = 5432 --warning = 95ïŒ
äŸ2ïŒãorders_id_seqããšããååã®ã·ãŒã±ã³ã¹ãåå以äžã§ããããšã確èªããŸãã
check_postgres_sequence --dbport = 5432 --critical = 50ïŒ -include = orders_id_seq
èšå®_ãã§ãã¯ãµã
ïŒ "symlinkïŒcheck_postgres_settings_checksum"ïŒãã¹ãŠã®Postgresèšå®ã
ååãã§ãã¯ããæãšåãã§ãã ããã¯ã䞊ã¹æ¿ãããããªã¹ãã®ãã§ãã¯ãµã ãçæããããšã«ãã£ãŠè¡ãããŸãã
ååãšãã®å€ãèšå®ããŸãã åãããŒã¿ããŒã¹å ã®ç°ãªããŠãŒã¶ãŒãæã£ãŠããå¯èœæ§ãããããšã«æ³šæããŠãã ãã
ALTER USERã®äœ¿çšãããã³ã¹ãŒããŒãŠãŒã¶ãŒãããå€ããèŠããšããäºå®ã®ããã«ãç°ãªããã§ãã¯ãµã
éåžžã®ãŠãŒã¶ãŒãããèšå®ã ã©ã¡ãã - èŠå ãŸã㯠- èŽåœç ãªãã·ã§ã³ã¯
äžããããŸãããäž¡æ¹ã§ã¯ãããŸããã ããããã®å€ã¯ãã§ãã¯ãµã ã§ããã32æåã®XNUMXé²æ°ã§ãã
䟡å€ã ç¹å¥ãªã--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ãè¿ããŸãã
ãã§ãã¯ãµã ã¯ã--mrtgãåŒæ°ãšããŠæäŸããå¿ èŠããããŸãã XNUMXè¡ç®ã¯åžžã«
çŸåšã®ãã§ãã¯ãµã ã
slony_status
ïŒ "symlinkïŒcheck_postgres_slony_status"ïŒSlonyã¯ã©ã¹ã¿ãŒã®ã¹ããŒã¿ã¹ããã§ãã¯ã€ã³ãã
Slonyã®sl_statusãã¥ãŒã®çµæãèŠãŠãã ããã ããã¯ãã®æ°ãšããŠè¿ãããŸã
ãã©ã°ã¿ã€ã ãã®ç§ã 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"ïŒããŒã«ã«ã·ã¹ãã æå»ãå ±åãããæå»ãšæ¯èŒããŸã
XNUMXã€ä»¥äžã®ããŒã¿ããŒã¹ã«ããã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ã®æ°ãè¡šããŸã
ã¢ã©ãŒããçºçããåã®XNUMXã€ã®ã·ã¹ãã éã®ç§æ°ã ã©ã¡ããæå®ãããŠããªãå Žåã
ããã©ã«ãå€ã§ããã2ããšã5ãã䜿çšãããŸãã èŠåå€ã¯ãããã倧ããããããšã¯ã§ããŸãã
èšçå€ã ãã®ãã¹ãã¯æ£ç¢ºã§ã¯ãªããããã0ããŸãã¯ã1ãã®å€ã¯ããã§ã¯ãããŸããã
ãå§ãããŸãã
è¿ãããæååã¯ãæéå·®ãšãæžã蟌ãŸããååŽã®æéã瀺ããŸã
äžè¶³ããŠããŸãã
äŸ1ïŒãã¹ãankhãmorporkãããã³klatchã®ããŒã¿ããŒã¹ã3以äžã§ããããšã確èªããŸã
çŸå°æéããã®ç§æ°ïŒ
check_postgres_timesync --host = ankhãmorporkãklatch --critical = 3
MRTGåºåã®å Žåãæåã®XNUMXè¡ã«ã
çŸå°æéãšããŒã¿ããŒã¹æéã XNUMXè¡ç®ã¯ãããŒã¿ããŒã¹ã®ååãè¿ããŸãã
txn_idle
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_txn_idle"ïŒ "ã¢ã€ãã«ã€ã³ã®æ°ãšæéããã§ãã¯ããŸã
XNUMXã€ä»¥äžã®ããŒã¿ããŒã¹ã§ã®ãã©ã³ã¶ã¯ã·ã§ã³ãã¯ãšãªããããè€æ°åå®è¡ããå¿ èŠã¯ãããŸããã
åãããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒäžã ããŒã¿ããŒã¹ã¯ãã䜿çšããŠãã£ã«ã¿ãªã³ã°ã§ããŸã - å«ã ãš
-é€å€ãã ãªãã·ã§ã³ã 詳现ã«ã€ããŠã¯ã以äžã®ãåºæ¬çãªãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããã
ãã® - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ãæéã®åäœã笊å·ä»ãæŽæ°ããŸãã¯
æéã®åäœãè¡šãæŽæ°ãäž¡æ¹ãæå®ããå¿ èŠããããŸãïŒããã©ã«ãã¯ãããŸããïŒã æå¹ãªåäœ
ãç§ãããåãããæéãããŸãã¯ãæ¥ãã§ãã ãããããåæ°ãŸãã¯çç¥åœ¢ã§æžãããšãã§ããŸã
æåã®æåã ãã«ã åäœãæå®ãããŠããããçªå·ã笊å·ãªãã®å Žåãåäœ
ç§ãšèŠãªãããŸãã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãPostgres8.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 for 10 seconds'
MRTGåºåã®å Žåãæãé·ãã¢ã€ãã«ãã©ã³ã¶ã¯ã·ã§ã³ããã£ãæéãç§åäœã§è¿ããŸã
ã©ã³ãã³ã°ã XNUMXè¡ç®ã¯ãããŒã¿ããŒã¹ã®ååãšãã®ä»ã®æ å ±ãè¿ããŸãã
æé·ã®ãã©ã³ã¶ã¯ã·ã§ã³ã
txn_time
ïŒ "symlinkïŒcheck_postgres_txn_time"ïŒXNUMXã€ä»¥äžã®ãªãŒãã³ãã©ã³ã¶ã¯ã·ã§ã³ã®é·ãããã§ãã¯ããŸã
ããŒã¿ããŒã¹ã ããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒããšã«ãã®ã³ãã³ããè€æ°åå®è¡ããå¿ èŠã¯ãããŸããã
ããŒã¿ããŒã¹ã¯ãã䜿çšããŠãã£ã«ã¿ãªã³ã°ã§ããŸãã - å«ã ãš -é€å€ãã ãªãã·ã§ã³ã ãBASICããåç §ããŠãã ãã
詳现ã«ã€ããŠã¯ãããã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ããããã©ã³ã¶ã¯ã·ã§ã³ã®ææè ã¯ã次ã®æ¹æ³ã§ãã£ã«ã¿ãªã³ã°ããããšãã§ããŸãã
æŽ»çš --includeuser ãš --excludeuser ãªãã·ã§ã³ã ããŠãŒã¶ãŒåã®ãã£ã«ã¿ãªã³ã°ãã»ã¯ã·ã§ã³ãåç §ããŠãã ãã
ã®ã¬ã€ãããåç §ãã ããã
å€ãŸã㯠- èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯æéã®åäœã§ãããæäŸããå¿ èŠããããŸã
ïŒããã©ã«ããªãïŒã æå¹ãªåäœã¯ããç§ãããåãããæéãããŸãã¯ãæ¥ãã§ãã ããããã
åæ°ã§æžãããããæåã®æåã ãã«çç¥ãããŸãã åäœãæå®ãããŠããªãå Žåã
åäœã¯ç§ãšèŠãªãããŸãã
ãã®ã¢ã¯ã·ã§ã³ã«ã¯ãPostgres8.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åºåã®å Žåããã©ã³ã¶ã¯ã·ã§ã³ãéããŠããæ倧æéãç§åäœã§è¿ããŸãã
æåã®è¡ã XNUMXè¡ç®ã¯ãããŒã¿ããŒã¹ã®ååã瀺ããŠããŸãã
txn_wraparound
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_txn_wraparound"ïŒãã©ã³ã¶ã¯ã·ã§ã³ã®ã©ããã¢ã©ãŠã³ãã«ã©ãã ãè¿ããããã§ãã¯ããŸã
以äžã®ããŒã¿ããŒã¹ãååŸãããŠããŸãã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯çªå·ã瀺ããŸã
å®è¡ããããã©ã³ã¶ã¯ã·ã§ã³ã®æ°ã§ãããæ£ã®æŽæ°ã§ããå¿ èŠããããŸãã ã©ã¡ãã®ãªãã·ã§ã³ãæå®ãããŠããªãå Žåã
ããã©ã«ãå€ã®1.3åãš1.4åã䜿çšãããŸãã ãã®ã³ãã³ãããã以äžå®è¡ããå¿ èŠã¯ãããŸãã
ããŒã¿ããŒã¹ã¯ã©ã¹ã¿ãŒããšã«XNUMXå以äžã ãã®æ°ã®è©³çŽ°ã«ã€ããŠã¯
ãè¡šããããã«ã€ããŠäœããã¹ãããããŒãžãã芧ãã ãã
<http://www.postgresql.org/docs/current/static/routine-vacuuming.htmlïŒVACUUM-FOR-WRAPAROUND>
èŠåãšéèŠãªå€ã¯ãPerlã®ããã«ãèªã¿ãããã®ããã«æ°åã«ã¢ã³ããŒã¹ã³ã¢ãä»ããããšãã§ããŸã
ãããŸããã
äŸ1ïŒããŒã«ã«ãã¹ãããŒã¿ããŒã¹ã®ããã©ã«ãå€ã確èªãã
check_postgres_txn_wraparound --host = localhost
äŸ2ïŒããŒã6000ã確èªãã1.7åã®ãã©ã³ã¶ã¯ã·ã§ã³ãããããããšãã«ã¯ãªãã£ã«ã«ãäžããŸãã
check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000
MRTGåºåã®å ŽåãXNUMXè¡ç®ã®ãã¹ãŠã®ããŒã¿ããŒã¹ã®æ倧ãã©ã³ã¶ã¯ã·ã§ã³æ°ãè¿ããŸãã
4è¡ç®ã¯ããããã©ã®ããŒã¿ããŒã¹ã§ãããã瀺ããŠããŸãã
ããŒãžã§ã³
ïŒ "symlinkïŒcheck_postgres_version"ïŒå¿ èŠãªããŒãžã§ã³ã®Postgresã
ã©ã³ãã³ã°ã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ïŒXNUMXã€ã ããå¿ èŠïŒã¯æ¬¡ã®åœ¢åŒã§ããå¿ èŠããããŸã
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
XNUMXè¡ç®ã¯ãçŸåšã®ããŒãžã§ã³ã瀺ããŠããŸãã ããŒãžã§ã³ã¯ã--mrtgããä»ããŠæäŸããå¿ èŠããããŸã
ãªãã·ã§ã³ãéžæããŸãã
wal_files
ïŒ "ã·ã³ããªãã¯ãªã³ã¯ïŒcheck_postgres_wal_files"ïŒWALãã¡ã€ã«ãããã€ååšãããã確èªããŸã pg_xlog
ããªãã®å€ã«ãããã£ã¬ã¯ã㪠ããŒã¿ãã£ã¬ã¯ããªãæã«ã¯å¥ã®ã·ã³ããªãã¯ãªã³ã¯ãšããŠ
ããã©ãŒãã³ã¹äžã®çç±ããç©çãã£ã¹ã¯ã ãã®ã¢ã¯ã·ã§ã³ã¯ãã¹ãŒããŒãŠãŒã¶ãŒãšããŠå®è¡ããå¿ èŠããããŸãã
ã®å 容ã«ã¢ã¯ã»ã¹ãã pg_xlog ãã£ã¬ã¯ããªã ãã®ã¢ã¯ã·ã§ã³ã䜿çšããããã®æå°ããŒãžã§ã³ã¯
Postgres8.1ã NS - èŠå ãš - èŽåœç ãªãã·ã§ã³ã¯ãåã«ãã¡ã€ã«ã®æ°ã§ãã
pg_xlog ãã£ã¬ã¯ããªã ãããèšå®ããæ°ã¯ããŸããŸã§ãããäžè¬çãªã¬ã€ãã©ã€ã³ã¯
åé¡ãæ©æã«çºèŠããããã«ãéåžžããããããã«é«ãæ°å€ã
éåžžãWALãã¡ã€ã«ã¯éããããŠããåå©çšãããŸãããå®è¡æéã®é·ããªãŒãã³ãã©ã³ã¶ã¯ã·ã§ã³ããŸãã¯
æ¬ é¥ã®ãã ã¢ãŒã«ã€ãã³ãã³ã ã¹ã¯ãªããã䜿çšãããšãPostgresãäœæãããã¡ã€ã«ãå€ãããå¯èœæ§ããããŸãã æçµçã«ã¯ã
ããã«ããããããã眮ãããŠãããã£ã¹ã¯ã®ã¹ããŒã¹ãäžè¶³ãããã®æç¹ã§Postgresã¯
ã·ã£ããããŠã³ã
äŸ1ïŒãã¹ããplutoãã§WALãã¡ã€ã«ã®æ°ã20以äžã§ããããšã確èªããŸã
check_postgres_wal_files --host = pluto --critical = 20
MRTGåºåã®å Žåã1è¡ç®ã®WALãã¡ã€ã«ã®æ°ãå ±åããŸãã
åæ§ç¯_ã·ã³ããªãã¯ãªã³ã¯
åæ§ç¯_symlinks_force
ãã®ã¢ã¯ã·ã§ã³ã¯ä»ã®åŒæ°ãå¿ èŠãšãããããŒã¿ããŒã¹ã«æ¥ç¶ããŸããããåã«æ¥ç¶ããŸã
åã¢ã¯ã·ã§ã³ã®çŸåšã®ãã£ã¬ã¯ããªã«ã次ã®åœ¢åŒã§ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸã
check_postgres_ã ãã¡ã€ã«ããã§ã«ååšããå Žåãããã¯äžæžããããŸããã ããã
ã¢ã¯ã·ã§ã³ã¯rebuild_symlinks_forceã§ãããã·ã³ããªãã¯ãªã³ã¯ã¯äžæžããããŸãã ãªãã·ã§ã³
--symlinksã¯ã-action = rebuild_symlinksã®çãèšãæ¹ã§ãã
BASIC ãã£ã«ã¿ãªã³ã°
ãªãã·ã§ã³ - å«ã ãš -é€å€ãã ãã§ãã¯ãããã®ãå¶éããããã«çµã¿åãããããšãã§ããŸãã
ã¢ã¯ã·ã§ã³ã«å¿ããŠã 以äžã䜿çšãããšãããŒã¿ããŒã¹ã®ååããã£ã«ã¿ãªã³ã°ã§ããŸã
ã¢ã¯ã·ã§ã³ïŒããã¯ãšã³ãã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ã¢ã¯ã·ã§ã³ã䜿çšãããšããã¡ã€ã«ã·ã¹ãã ã®ååããã£ã«ã¿ãªã³ã°ã§ããŸãã
ã€ã³ã¯ã«ãŒããªãã·ã§ã³ã®ã¿ãæå®ãããŠããå Žåã¯ãäžèŽãããšã³ããªã®ã¿ããã§ãã¯ãããŸãã
ãã ããé€å€ãšå å«ã®äž¡æ¹ãæå®ãããŠããå Žåã¯ãæåã«é€å€ãè¡ãããå å«ãæåã«è¡ãããŸãã
ãã®åŸãé€å€ãããå¯èœæ§ã®ãããã®ãå ã«æ»ãããã äž¡æ¹ - å«ã ãš -é€å€ãã ã§ãã
è€æ°åæå®ããããã³ã³ãåºåãã®ãªã¹ããšããŠæå®ããŸãã äž»èŠãªãã«ãã¯
æ£èŠè¡šçŸãšããŠæ¬¡ã®åèªã
ã¹ããŒããäžèŽãããã«ã¯ãæ€çŽ¢èªãåäžã®ããªãªãã§çµäºããŸãã ãªãŒãã£ã³ã°ãã«ãã䜿çšã§ããŸã
ã¹ããŒãã«ã€ããŠãåæ§ã§ãã
ãã£ã«ã¿ãªã³ã°ã䜿çšãããšãã¯æ³šæããŠãã ãããããšãã°ãããã¯ãšã³ãã®å å«ã«ãŒã«ã¯æ¬¡ã®ããã«ãªããŸãã
äžèŽããããŒã¿ããŒã¹ã«ããã¯ãšã³ãããªãã£ãã ãã§ãªãã
ããŒã¿ããŒã¹ã®ååã®ã€ã¥ããééããŸããïŒ
äŸïŒ
pg_classãšããååã®ã¢ã€ãã ã®ã¿ããã§ãã¯ããŸãã
--include = pg_class
æåãpg_ããå«ãã¢ã€ãã ã®ã¿ããã§ãã¯ããŸãã
--include = ãpg_
'pg_'ã§å§ãŸãé ç®ã®ã¿ããã§ãã¯ããŠãã ããïŒ
--include =ã^ pg_
'test'ãšããååã®é ç®ãé€å€ããŸãã
--exclude = test
æå 'testãå«ããã¹ãŠã®ã¢ã€ãã ãé€å€ããŸãã
--exclude = ãtest
ã¹ããŒã 'pg_catalog'ã®ãã¹ãŠã®ã¢ã€ãã ãé€å€ããŸãã
--exclude = 'pg_catalogã'
æåãaceããå«ããã¹ãŠã®ã¢ã€ãã ãé€å€ããŸãããã¢ã€ãã ãfaceoffãã¯èš±å¯ããŸãã
--exclude = ãace --include = faceoff
æåãslonããå«ãæåãpg_ãã§å§ãŸããã¹ãŠã®ã¢ã€ãã ãé€å€ããããŸãã¯
'sql_settings'ãŸã㯠'green'ãšããååã§ãã å ·äœçã«ã¯æåã§é ç®ã確èªããŠãã ãã
ååã«ãprodããå«ãŸãããpg_relnameããšããååã®é ç®ãåžžã«ãã§ãã¯ããŸãã
--exclude =ã^ pg _ããslonãsql_settings --exclude = green --include = ãprodãpg_relname
USER NAME ãã£ã«ã¿ãªã³ã°
ãªãã·ã§ã³ --includeuser ãš --excludeuser äžéšã®ã¢ã¯ã·ã§ã³ã§äœ¿çšããŠã調æ»ã®ã¿ãè¡ãããšãã§ããŸã
XNUMX人以äžã®ãŠãŒã¶ãŒãææããïŒãŸãã¯ææããªãïŒããŒã¿ããŒã¹ãªããžã§ã¯ãã NS --includeuser ãªãã·ã§ã³
åžžã«åãæ --excludeuser ãªãã·ã§ã³ã åãªãã·ã§ã³ãè€æ°åæå®ã§ããŸã
è€æ°ã®ãŠãŒã¶ãŒããŸãã¯ã³ã³ãåºåãã®ãªã¹ããæå®ã§ããŸãã çŸåšäœ¿çšããŠããã¢ã¯ã·ã§ã³
ãããã®ãªãã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
ããŒã¿ããŒã¹ãµã€ãº
last_analyze
last_autoanalyze
last_vacuum
last_autovacuum
ã¯ãšãªæé
Relation_size
txn_time
äŸïŒ
gregãšããååã®ãŠãŒã¶ãŒãææããã¢ã€ãã ã®ã¿ããã§ãã¯ããŸãã
--includeuser = greg
watsonãŸãã¯crickã®ãããããææããã¢ã€ãã ã®ã¿ã確èªããŠãã ããã
--includeuser = watsonãcrick
crickãfranklinãwatsonããŸãã¯wilkinsãææããã¢ã€ãã ã®ã¿ã確èªããŠãã ããã
--includeuser = watson --includeuser = franklin --includeuser = crickãwilkins
ãŠãŒã¶ãŒscottã«å±ãããã®ãé€ããã¹ãŠã®é ç®ããã§ãã¯ããŸãã
--excludeuser = scott
ãã¹ã ã¢ãŒã
èšå®ãæ¯æŽããããã«ããã®ããã°ã©ã ã¯ããæå®ããããšã«ãã£ãŠããã¹ãã¢ãŒããã§å®è¡ã§ããŸãã
- ãã¹ã ãªãã·ã§ã³ã ããã«ãããããã€ãã®åºæ¬çãªãã¹ããå®è¡ãããããŒã¿ããŒã¹ã次ã®ããã«ãªãããšã確èªããŸãã
é£çµ¡ãããããŠãŒã¶ãŒã
Postgresã®ããŒãžã§ã³ãååã«æ°ãããstats_row_levelãæå¹ã«ãªã£ãŠããå Žåã¯ãã¹ãŒããŒãŠãŒã¶ãŒã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ check_postgres_autovac_freezep ã䜿çšãã