์ด๊ฒ์ Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ check_postgres_slony_statusp ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
check_postgres - Nagios, MRTG, Cacti ๋ฐ ๊ธฐํ๋ฅผ ์ํ Postgres ๋ชจ๋ํฐ๋ง ์คํฌ๋ฆฝํธ
์ด ๋ฌธ์๋ check_postgres ๋ฒ์ 2.22.0์ ๋ํด ์ค๋ช ํฉ๋๋ค.
๊ฐ์
## ๋ชจ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ ์์ฑ
check_postgres --symlink
## Postgres ๋ฐ์ดํฐ๋ฒ ์ด์ค 'pluto'์ ๋ํ ์ฐ๊ฒฐ ํ์ธ:
check_postgres --action=connection --db=๋ช ์์ฑ
## ๋์ผํ์ง๋ง ์ฌ๋ณผ๋ฆญ ๋งํฌ ์ฌ์ฉ
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=๋จ์
## ๋ค๋ฅธ ์์ ๊ณผ ์ต์ ์ด ๋ง์ด ์์ต๋๋ค. ๊ณ์ ์ฝ์ด์ฃผ์ธ์.
์ต์ ๋ด์ค์ ๋ฌธ์๋ ํญ์ ๋ค์์์ ์ฐพ์ ์ ์์ต๋๋ค.
http://bucardo.org/check_postgres/
๊ธฐ์
check_postgres๋ ํ๋ ์ด์์ ํ ์คํธ์ ๋ํด ๋ค์ํ ํ ์คํธ๋ฅผ ์คํํ๋ Perl ์คํฌ๋ฆฝํธ์ ๋๋ค.
Postgres ๋ฐ์ดํฐ๋ฒ ์ด์ค. psql ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ์ ๋ณด๋ฅผ ์์งํ๊ณ ์ถ๋ ฅํฉ๋๋ค.
Nagios, MRTG ๋๋ simple์ ์ธ ๊ฐ์ง ํ์ ์ค ํ๋๊ฐ ์์ฑ๋ฉ๋๋ค.
์ฐ์ถ ๋ชจ๋
์ถ๋ ฅ์ "--output" ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ถ๋ ฅ์ nagios,
์ํ๋ ๊ฒฝ์ฐ ์คํฌ๋ฆฝํธ ์๋จ์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ํ์ฌ ์ต์
์ ํ์ Nagios๋, mrtg๋ฐ ๊ฐํธํ ์ค์น. ๊ฐ๊ฐ์ ์ถ๋ ฅ ์ธ์๋ฅผ ์ ๋ ฅํ์ง ์์๋ ๋๋๋ก
--output ์ธ์๊ฐ ์ฃผ์ด์ง์ง ์์ผ๋ฉด ์ถ๋ ฅ ์ ํ์ด ์๋์ผ๋ก ์ค์ ๋๊ณ ,
ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์ด๋ฆ์๋ ์ถ๋ ฅ ์ต์ ์ค ํ๋๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด,
mrtg๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ์ด๋ฅผ ํตํด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก ์ฑ์๋๋ค. --์ฌ๋ณผ ๋งํฌ ์ฃผ์ฅ์
ํด๋น ๋๋ ํ ๋ฆฌ์์ ์คํ๋๋ ๋ชจ๋ ์์ ์ด ํญ์ "mrtg"์ ์ถ๋ ฅ์ผ๋ก ๊ธฐ๋ณธ ์ค์ ๋๋๋ก ํฉ๋๋ค.
--output=simple์ ๋ฐ๋ก ๊ฐ๊ธฐ๋ก --simple์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
๋๋ ํ ๋ฆฌ ๋ช ๋ช ํธ๋ฆญ.
๋๊ธฐ ์ค์ค ์ถ๋ ฅ
๊ธฐ๋ณธ ์ถ๋ ฅ ํ์์ ์ ๋ณด์ ํ ์ค์ธ Nagios์ฉ์ ๋๋ค.
XNUMX๊ฐ์ ํน์ ์ข ๋ฃ ์ฝ๋:
0 (ํ์ธ)
1(๊ฒฝ๊ณ )
2(์ค์)
3(์ ์ ์์)
์ถ๋ ฅ ๋ผ์ธ์ ์์ ๋จ์ด ์ค ํ๋, ์ฝ๋ก , ๋ค์์ ๋ํ ์งง์ ์ค๋ช ์ ๋๋ค.
์ธก์ ๋์๋ค. ์ถ๊ฐ ํต๊ณ ์ ๋ณด ๋ฐ ์ด ๋ช ๋ น ์๊ฐ
๋ํ ์ถ๋ ฅ๋ ์ ์์ต๋๋ค. ์ธ์์ ๋ํ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค. --showperf,
--perflimit๋ฐ --์ผํ์.
MRTG ์ถ๋ ฅ
MRTG ์ถ๋ ฅ์ โโXNUMX์ค์ด๋ฉฐ ์ฒซ ๋ฒ์งธ ์ค์ ํญ์ ๋จ์ผ ๋ฒํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ค์์ฑ. ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ด ์ซ์๋ ๋ค์๊ณผ ๊ฐ์ ์ค์ ๊ฐ์ ๋ํ๋ ๋๋ค.
๋ฐ์ดํธ์ด์ง๋ง "true" ๋๋ "false"๋ง ๋ฐํํ๋ ์์ ์ ๊ฒฝ์ฐ 1 ๋๋ 0์ผ ์๋ ์์ต๋๋ค.
check_postgres_version์ผ๋ก. ๋ ๋ฒ์งธ ์ค์ ์ถ๊ฐ ํต๊ณ์ด๋ฉฐ ๋ค์ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋ฉ๋๋ค.
๋ช ๊ฐ์ง ํ๋. ์ธ ๋ฒ์งธ ์ค์ "๊ฐ๋ ์๊ฐ"์ ๋ํ๋ด๋ฉฐ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ๋ค ๋ฒ์งธ ์ค์
์ค๋ช ์ด๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ์ฒซ ๋ฒ์งธ ์ค์ ํต๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
์์ ๋นผ๋์ง๋ง, ๋์์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์ผ๋ถ ์์ ์ ์ ํ ์ฌํญ์ ํ์ฉํฉ๋๋ค. --mrtg ์ถ๋ ฅ์ ์ถ๊ฐ๋ก ์ ์ดํ๊ธฐ ์ํ ์ธ์.
๊ฐ ์์ ์ ๋ํ ์ ํํ MRTG ์ถ๋ ฅ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ฐ ์์ ์ ๋ํ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋จ์, ๊ฐ๋จ, ํธ๋ฆฌ ์ถ๋ ฅ
๋จ์ ์ถ๋ ฅ์ ๋จ์ํ MRTG ๋ฒ์ ์ ์๋ฆฐ ๋ฒ์ ์ด๋ฉฐ ๋จ์ํ ๋ค์์ ๋ฐํํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ซ์์ด๊ณ ๋ค๋ฅธ ๊ฒ์ ์์ต๋๋ค. ์ํ๋ฅผ ํ์ธํ๊ณ ์ถ์ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
์๊ณ๊ฐ์ ๊ด๊ณ์์ด ๋ฌด์ธ๊ฐ์. ๋ค์๊ณผ ๊ฐ์ด ์ซ์ ์ถ๋ ฅ์ ๋ณํํ ์ ์์ต๋๋ค.
์ถ๋ ฅ ์ธ์์ KB, MB, GB, TB ๋๋ EB๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--์ถ๋ ฅ=๋จ์,MB
์ ์ธ์ฅ ์ถ๋ ฅ
Cacti ์ถ๋ ฅ์ ๋์ผํ ์ค์ ์๋ ํ๋ ์ด์์ ํญ๋ชฉ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ๊ฐ๋จํ ์ด๋ฆ,
์ฝ๋ก , ์ซ์. ํ์ฌ๋ก์๋ Cacti๊ฐ ๋ช ์์ ์ผ๋ก ์ถ๋ ฅ๋๋ ์ ์ผํ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
'dbstats'์ด๊ณ ์ด ๊ฒฝ์ฐ์๋ Cacti๊ฐ ์ ์ผํ๋ฏ๋ก --output ์ต์ ์ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค.
์ด ์์ ์ ๋ํ ์ถ๋ ฅ์ ๋๋ค. ๋ค๋ฅธ ๋ง์ ์์ ์ ๊ฒฝ์ฐ --simple์ ์ฌ์ฉํ๋ฉด Cacti๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
ํ๋ณต.
๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ต์
๋ชจ๋ ์์ ์ ๊ณตํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต์ ์งํฉ์ ํ์ฉํฉ๋๋ค.
-H ์ด๋ฆ or --ํธ์คํธ=์ด๋ฆ
NAME์ผ๋ก ํ์๋ ํธ์คํธ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ผํ๋ก ๊ตฌ๋ถ๋ ์ด๋ฆ ๋ชฉ๋ก์ผ ์ ์์ต๋๋ค.
์ฌ๋ฌ ํธ์คํธ ์ธ์๊ฐ ํ์ฉ๋ฉ๋๋ค. ํธ์คํธ๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ "PGHOST"์ ๋๋ค.
ํ๊ฒฝ ๋ณ์ ๋๋ ํธ์คํธ๊ฐ ์ ํ ์์(๋ก์ปฌ Unix ์์ผ ์ฌ์ฉ์ ๋ํ๋).
"--dbhost"๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
-p PORT or --ํฌํธ=ํฌํธ
์ง์ ๋ PORT ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํฉ๋๋ค. ์ผํ๋ก ๊ตฌ๋ถ๋ ํฌํธ ๋ชฉ๋ก์ผ ์ ์์ต๋๋ค.
์ซ์ ๋ฐ ์ฌ๋ฌ ํฌํธ ์ธ์๊ฐ ํ์ฉ๋ฉ๋๋ค. ํฌํธ ๋ฒํธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ
"PGPORT" ํ๊ฒฝ ๋ณ์์. ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ 5432์ ๋๋ค.
"--dbport"๋ ์ฌ์ฉํ์ญ์์ค.
-DB ์ด๋ฆ or --dbname=์ด๋ฆ
์ฐ๊ฒฐํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ ํฉ๋๋ค. ์ผํ๋ก ๊ตฌ๋ถ๋ ์ด๋ฆ ๋ชฉ๋ก์ผ ์ ์์ผ๋ฉฐ
์ฌ๋ฌ dbname ์ธ์๊ฐ ํ์ฉ๋ฉ๋๋ค. dbname ์ต์ ์ด ์ ๊ณต๋์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์
"PGDATABASE" ํ๊ฒฝ ๋ณ์. ์ค์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ 'postgres'์ ๋๋ค.
psql์ด ๋ฒ์ 8 ์ด์์ธ ๊ฒฝ์ฐ, ๊ทธ๋ ์ง ์์ผ๋ฉด 'template1'์ ๋๋ค.
-u ์ฌ์ฉ์ ์ด๋ฆ 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
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. --ํธ์คํธ=a,b --ํธ์คํธ=c --ํฌํธ=1234
--ํฌํธ=3344 a-1234, b-1234 ๋ฐ c-3344์ ์ฐ๊ฒฐํฉ๋๋ค. ํ ๋ฒ ์ค์ ํ๋ฉด ์ต์
๋ค์ ๋ณ๊ฒฝ๋ ๋๊น์ง ์ด์๋ฉ๋๋ค.
์ :
--ํธ์คํธ=a,b --ํฌํธ=5433 --db=c
๋ฐ์ดํฐ๋ฒ ์ด์ค c๋ฅผ ์ฌ์ฉํ์ฌ ํฌํธ 5433์ ๋ ๋ฒ ์ฐ๊ฒฐํ๊ณ ํธ์คํธ 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
1234๋ฒ ์ฐ๊ฒฐ: a-1234-e a-1234-f b-1234-e b-5433-f foo-5433-e foo-XNUMX-f
--ํธ์คํธ=a,b --ํธ์คํธ=x --ํฌํธ=5432,5433 --dbuser=์จ๋ฆฌ์ค --dbuser=bob -db=baz
์ธ ๋ฒ ์ฐ๊ฒฐ: a-5432-alice-baz b-5433-alice-baz x-5433-bob-baz
--dbservice="foo" --ํฌํธ=5433
pg_service.conf ํ์ผ์์ ๋ช ๋ช ๋ ์๋น์ค 'foo'๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐํ์ง๋ง ํฌํธ๋ฅผ ์ฌ์ ์ํฉ๋๋ค.
๊ธฐํ ์ต์
๊ธฐํ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
--action=์ด๋ฆ
์คํ ์ค์ธ ์์ ์ ๋ํ๋ ๋๋ค. ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ ํ์ผ์ ์ฌ์ฉํ์ง ์๋ ํ ํ์
๊ฒฝ์ฐ ํ์ผ ์ด๋ฆ์ด ์์ ์ ํ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
--๊ฒฝ๊ณ =VAL or -w VAL
๊ฒฝ๊ณ ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ๋ ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด์ ๋ํ ์ ํจํ ์ต์
์ต์ ์ ์ฌ์ฉ๋ ์์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
--์ค์=VAL or -c VAL
์ํ ๊ฒฝ๋ณด๊ฐ ๋ฐ์ํ๋ ์๊ณ๊ฐ์ ์ค์ ํฉ๋๋ค. ์ด์ ๋ํ ์ ํจํ ์ต์
์ต์ ์ ์ฌ์ฉ๋ ์์ ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
-t VAL or --timeout=๋ฐ
์คํฌ๋ฆฝํธ๊ฐ ์ํ ์ค์ธ ์์ ์ ์ค๋จํ๊ณ ์๊ฐ ์ด๊ณผ๋ฅผ ์ด ๋จ์๋ก ์ค์ ํฉ๋๋ค.
์ ์ ์๋ ์ํ๋ฅผ ๋ฐํํฉ๋๋ค. ์๊ฐ ์ด๊ณผ๋ ์ ์ฒด๊ฐ ์๋๋ผ 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
--๊ฐ์ ์ ํ
์ง์ ๋ ๊ฒฝ์ฐ ํ๋ก๋์ ๋ชจ๋์ ์๋ฒ๊ฐ ์ํ๋๋์ง ํ์ธํฉ๋๋ค(--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=๋ฐ
์ถ๊ฐ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ํ์ค Nagios ํ์์ผ๋ก ์ถ๋ ฅํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
name=value๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํ ๊ธฐํธ ๋ค์ ๋ฌธ์์ด). VAL์ 0 ๋๋ 1์ด์ด์ผ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ
is 1. Nagios ์ถ๋ ฅ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค.
--perflimit=๋
์ฌ์ฉ ์ ๋ณด๊ณ ๋๋ ๊ด์ฌ ํญ๋ชฉ ์์ ๋ํ ์ ํ์ ์ค์ ํฉ๋๋ค.
์ผํผ ์ต์ . ์ด๊ฒ์ ๋ง์ ์๋ฅผ ๋ฐํํ๋ ์์ ์๋ง ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ ํญ๋ชฉ ํ ์ด๋ธ ํฌ๊ธฐ. ๊ธฐ๋ณธ๊ฐ์ 0 ๋๋ ์ ํ ์์์ ๋๋ค. ์ด๊ฒ์ ์ฌ์ฉํ ๋ ์ฃผ์ํ์ญ์์ค
์ ๋๋ถ์ด --ํฌํจํ๋ค or --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ , ์ด๋ฌํ ์ ํ์ด ์๋ฃ๋๋ฉด ์๊ฐ ๋ด์ ์ ์,
์ฟผ๋ฆฌ๊ฐ ์คํ๋์์ผ๋ฏ๋ก ํ๋์ ์ํ๋ ํญ๋ชฉ์ด ํฌํจ๋์ง ์์ ์ ์์ต๋๋ค. ๋ง ์์
Nagios ์ถ๋ ฅ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํจ๊ณผ.
--showtime=๋ฐ
๊ฐ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ด ์ถ๋ ฅ์ ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. VAL์ 0์ด์ด์ผ ํฉ๋๋ค.
๋๋ 1. ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. ์ผํผ ์ผ์ ธ ์์ต๋๋ค. ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค.
Nagios ์ถ๋ ฅ ๋ชจ๋.
--์ํ
ํ ์คํธ ๋ชจ๋๋ฅผ ํ์ฑํํฉ๋๋ค. ์๋์ "ํ ์คํธ ๋ชจ๋" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
--PGBINDIR=๊ฒฝ๋ก
psql ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฐพ์ ์์น๋ฅผ ์คํฌ๋ฆฝํธ์ ์๋ ค์ค๋๋ค. ๋ ์ด์์ธ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
์์คํ ์ ์๋ PostgreSQL ์คํ ํ์ผ์ ๋ฒ์ ๋๋ ์์คํ ์ ์๋ ๊ฒฝ์ฐ
๊ธธ. ์ด ์ต์ ์ ๋ชจ๋ ๋๋ฌธ์์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ต์ ์ ์ง์
์. ํ์ฑํํ๋ ค๋ฉด ์คํฌ๋ฆฝํธ ์๋จ ๊ทผ์ฒ์ ์๋ $NO_PSQL_OPTION์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
0์ผ๋ก ์ค์ ํ์ญ์์ค. ๊ฐ๋ฅํ๋ฉด ์ด ์ต์ ์ ์ฌ์ฉํ์ง ๋ง๊ณ ๋์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ญ์์ค.
์จ ๋๋ ์คํฌ๋ฆฝํธ ์๋จ ๊ทผ์ฒ์ ์๋ ํ๋ ์ฝ๋ฉ๋ $PGBINDIR ๋ณ์
์ฌ์ฉํ PostgreSQL์ ๊ฒฝ๋ก์ ๋๋ค.
--PSQL=๊ฒฝ๋ก
(๋ ์ด์ ์ฌ์ฉ๋์ง ์์, ์ด option ๏ผ์ be ์ ๊ฑฐ in a ๋ฏธ๋ ํ์ด ์ฃผ๋ค!) ์คํฌ๋ฆฝํธ๊ฐ ์ด๋์ ์๋์ง ์๋ ค์ค๋๋ค.
psql ํ๋ก๊ทธ๋จ์ ์ฐพ๊ธฐ ์ํด. ๋ ์ด์์ psql ๋ฒ์ ์ด ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
์์คํ ์์ ์คํ ๊ฐ๋ฅํ๊ฑฐ๋ ๊ฒฝ๋ก์ psql ํ๋ก๊ทธ๋จ์ด ์๋ ๊ฒฝ์ฐ. ์ด
์ต์ ์ ๋ชจ๋ ๋๋ฌธ์์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ต์ ์ ์ง์ ์. ํ์ฑํํ๋ ค๋ฉด
์คํฌ๋ฆฝํธ ์๋จ ๊ทผ์ฒ์ $NO_PSQL_OPTION์ 0์ผ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ต์ ์ ์ ํํ๊ณ ๋์ psql ์์น๋ฅผ $PSQL ๋ณ์์ ํ๋ ์ฝ๋ฉํ์ญ์์ค.
๋ํ ์คํฌ๋ฆฝํธ ์๋จ ๊ทผ์ฒ์ ์์ต๋๋ค.
--์ฌ๋ณผ ๋งํฌ
๊ฐ ์์ ์ ๋ํ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋จ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ง๋ญ๋๋ค.
--์ถ๋ ฅ=๋ฐ
๋ค์ํ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ถ๋ ฅ ํ์์ ๊ฒฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์
'๋๊ธฐ์ค์ค'. ์ฌ์ฉ ๊ฐ๋ฅํ ์ต์ ์ 'nagios', 'mrtg', 'simple' ๋ฐ 'cacti'์ ๋๋ค.
--mrtg=๋ฐ
๋ช ๊ฐ์ง ํน์ ์์ ์ ๋ํด MRTG ๋๋ ๋จ์ ์ถ๋ ฅ์๋ง ์ฌ์ฉ๋ฉ๋๋ค.
--debug์ถ๋ ฅ=VAL
๋๋ฒ๊น ์ ์ฌ์ฉํ๊ธฐ ์ํด psql์์ ๋ฐํ๋ ์ ํํ ๋ฌธ์์ด์ ์ถ๋ ฅํฉ๋๋ค. ๊ฐ์ XNUMX ๋๋
์ถ๋ ฅ์ด ํ์๋๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ์ถ๊ฐ ๋ฌธ์, ์ฌ๊ธฐ์ '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, fetch, curl, lynx, ๋งํฌ. ํ๋๋ง ์ฌ์ฉํ๋๋ก(๋ฐ๋ผ์ ์ ๊ฑฐํ๋ ค๋ฉด
๊ทธ ์ค ํ๋๊ฐ ์๋ํ ๋๊น์ง ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์๋ํ๋ ์ค๋ฒํค๋), ์ด๋ฆ ์ค ํ๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ์ญ์์ค.
get_method์ ๋ํ ์ธ์. ์๋ฅผ ๋ค์ด, BSD ์์๋ ๋ค์ ํ์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
๊ทธ๋ค์ ".check_postgresrc" ํ์ผ:
get_method=๊ฐ์ ธ์ค๊ธฐ
--์ธ์ด=VAL
๋ชจ๋ ์ถ๋ ฅ ๋ฉ์์ง์ ์ฌ์ฉํ ์ธ์ด๋ฅผ ์ค์ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ด๊ฒ์ ๋ค์์ผ๋ก ๊ฐ์ง๋ฉ๋๋ค.
ํ๊ฒฝ ๋ณ์ LC_ALL, LC_MESSAGES ๋ฐ LANG๋ฅผ ๊ฒ์ฌํ์ง๋ง ์ด๊ฒ์ ์ค์ ํฉ๋๋ค.
์ต์ ์ ์ด๋ฌํ ๊ฐ์ง๋ฅผ ๋ฌด์ํฉ๋๋ค.
ACTIONS
์คํฌ๋ฆฝํธ๋ ํ๋ ์ด์์ ์์ ์ ์คํํฉ๋๋ค. --action ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
๋ด๋ถ์ ์์ ์ด๋ฆ์ด ํฌํจ๋ ๊ธฐ๋ณธ ํ์ผ์ ๋ํ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ํ
์๋ฅผ ๋ค์ด "timesync" ์์ ์ ์คํํ๋ ค๋ฉด ๋ค์ ์ค ํ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.
check_postgres --action=ํ์๋๊ธฐํ
๋๋ ๋ค์๊ณผ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ญ์์ค.
check_postgres_timesync
--symlinks ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ ํ์ฌ ๋๋ ํ ๋ฆฌ์ ์์ฑ๋ฉ๋๋ค.
ํ check_postgres --symlinks
ํ์ผ ์ด๋ฆ์ด ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ๋ฎ์ด์ฐ์ง ์์ต๋๋ค. ํ์ผ์ด ์กด์ฌํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ
symlink, "--action=build_symlinks_force"๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ก ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ํ๋์ --๊ฒฝ๊ณ ๋ฐ --๋นํ์ ์ธ ์ฐ๋ฆฌ๊ฐ ๋ณ๊ฒฝํ๋ ์ง์ ์ ๋ํ๋ด๋ ์ต์
OK์์ WARNING์ผ๋ก, ๊ทธ๋ฆฌ๊ณ CRITICAL๋ก ์ด๋ํ๋ ์ง์ . ํฌ๋ฆฌํฐ์ปฌ์
ํญ์ ๋จผ์ ํ์ธํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ์ํ๊ณผ ๋์ผํ๊ฒ ์ค์ ํ๋ ๊ฒ์ด ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฒฝ๊ณ ๋ฅผ ๋๊ณ ํญ์ ๋นํ์ ์ ๊ณตํ์ญ์์ค.
ํ์ฌ ์ง์๋๋ ์์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์นด์ด๋ธ_๋ ๋
("symlink: check_postgres_archive_ready") ํ์ฅ์๊ฐ ์๋ WAL ํ์ผ ์๋ฅผ ํ์ธํฉ๋๋ค. .์ค๋น๊ฐ ๋
์ ์กด์ฌ pg_xlog/์์นด์ด๋ธ_์ํ ๋๋ ํ ๋ฆฌ์์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ.
์ด ์์ ์ ์ํผ์ ์ ๋ก ์คํํด์ผ ์ ๋ด์ฉ์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
pg_xlog/์์นด์ด๋ธ_์ํ ์๋ฐฐ ๊ท์น์. ์ด ์์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ต์ ๋ฒ์ ์ Postgres 8.1์ ๋๋ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋จ์ํ .์ค๋น๊ฐ ๋ ํ์ผ
pg_xlog/์์นด์ด๋ธ_์ํ ์๋ฐฐ ๊ท์น์. ์ผ๋ฐ์ ์ผ๋ก ์ด ๊ฐ์ ๋ฎ์์ผ ํฉ๋๋ค.
์์นด์ด๋ธ ๋ฉ์ปค๋์ฆ, ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ WAL ํ์ผ์ ์์นด์ด๋ธํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
์์นด์ด๋ธ ๋ช ๋ น์ด ์คํจํ๋ฉด ์ฌ์ฉ์์ WAL ์ pg_xlog ๋๋ ํ ๋ฆฌ๋ ๋ค์๊น์ง ์ฆ๊ฐํฉ๋๋ค.
๋ชจ๋ ๋์คํฌ ๊ณต๊ฐ์ ์์งํ๊ณ PostgreSQL์ ์ฆ์ ์ค์งํฉ๋๋ค.
์ 1: "pluto" ํธ์คํธ์์ ์ค๋น๋ WAL ํ์ผ ์๊ฐ 10๊ฐ ์ดํ์ธ์ง ํ์ธ
check_postgres_archive_ready --host=pluto --์ค์=10
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ 1ํ์ ์ค๋น๋ WAL ํ์ผ ์๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
autovac_freeze
("symlink: check_postgres_autovac_freeze") ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ
ํฌ์คํธ๊ทธ๋ ์ค autovacuum_freeze_max_age ํ๊ฒฝ. ์ด ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ง ์๋ํฉ๋๋ค.
๋ฒ์ 8.2 ์ด์. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ด ํํ๋์ด์ผ ํฉ๋๋ค.
๋ฐฑ๋ถ์จ. ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํธ๋์ญ์ ์ '๊ธฐ๊ฐ'์ ๋ค์๊ณผ ๋น๊ต๋ฉ๋๋ค.
autovacuum_freeze_max_age ์ค์ (๊ธฐ๋ณธ๊ฐ์ 200์ต)์ผ๋ก ๋ฐ์ฌ๋ฆผ
๋ฐฑ๋ถ์จ. ๊ธฐ๋ณธ๊ฐ์ 90% ๊ฒฝ๊ณ ์ 95% ํฌ๋ฆฌํฐ์ปฌ์ ์ํด. ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . "๊ธฐ๋ณธ ํํฐ๋ง" ์ฐธ์กฐ
์์ธํ ๋ด์ฉ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ 1: ํฌํธ 5432์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ 97%๋ฅผ ์ด๊ณผํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_autovac_freeze --port=5432 --warning="97%"
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋์ ์ ์ฒด ๋ฐฑ๋ถ์จ์ด ์ฒซ ๋ฒ์งธ ์ค์ ๋ณด๊ณ ๋๊ณ
๊ฐ์ฅ ๋์ ์ฐ๋ น์ ๋ ๋ฒ์งธ ์ค์ ๋ณด๊ณ ๋ฉ๋๋ค. ๋ฐฑ๋ถ์จ์ด ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ฒซ ๋ฒ์งธ ์ค์ ํ์ดํ ๊ธฐํธ๋ก ๊ตฌ๋ถ๋ ๋ค ๋ฒ์งธ ์ค์ ๋ณด๊ณ ๋ฉ๋๋ค.
๋ฐฑ์๋
("symlink: check_postgres_backends") ํ์ฌ ์ฐ๊ฒฐ ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ ํ์ ์ผ๋ก ํ์ฉ๋ ์ต๋๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค.
Postgres ๊ตฌ์ฑ ๋ณ์ max_connections. ๊ทธ๋งํผ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์
์ธ ๊ฐ์ง ํํ ์ค ํ๋๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ์ฒซ์งธ, ๊ฐ๋จํ ์ซ์๊ฐ ์ฃผ์ด์ง ์ ์์ต๋๋ค.
๊ฒฝ๊ณ ๊ฐ ์ ๊ณต๋ ์ฐ๊ฒฐ ์์ ๋๋ค. ์ด ์ ํ์ ๋ค์์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
max_connections ํ๊ฒฝ. ๋์งธ, ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ๊ฒฐ์ ๋ฐฑ๋ถ์จ์ ์ง์ ํ ์ ์์ต๋๋ค.
์ ์งธ, ๋จ์ ์ฐ๊ฒฐ ์๋ฅผ ๋ํ๋ด๋ ์์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
๊น์ง max_connections ๋๋ฌํ์ต๋๋ค. ์ ๋ํ ๊ธฐ๋ณธ๊ฐ --๊ฒฝ๊ณ and --๋นํ์ ์ธ are
'90%'์ '95%'. ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํํฐ๋งํ ์๋ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค
์ต์ . ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ํด ์ํ๊ฐ ์๋ ํ๋ก์ธ์ค๋ง ๋ณด๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. --๋ ธ์ด๋ค ๋ ผ์. ์ฌ์ฉ์๊ฐ
์ด ์ ๋๋ก ์๋ํ๋ ค๋ฉด ์ํผ์ ์ ์ฌ์ผ ํ๋ฏ๋ก ์ฐ๊ฒฐํ๊ณ ์์ต๋๋ค.
์ 1: ํธ์คํธ quirm์ ์ฐ๊ฒฐ ์๊ฐ 120์ ๋๋ฌํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ๊ณ
150์ ๋๋ฌํ๋ฉด ์น๋ช ์ ์ ๋๋ค.
check_postgres_backends --host=quirm --warning=120 --์ค์=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: ์ด๋ฆ์ "test"๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ธํ์ง๋ง ๋ค์์ ์ํํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ฉํฉ๋๋ค.
์ด๋ฆ์ "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 ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ์ํฉ๋๋ค.) ์ด ์์ ์ ์ํํ๋ ค๋ฉด ๋ค์ ํต๊ณ๊ฐ ํ์ํฉ๋๋ค.
์ปฌ๋ ์ ์ด ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ์ฑํ๋๊ณ ANALYZE๊ฐ ์คํ๋์ด์ผ ํฉ๋๋ค.
์์ฃผ. NS --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ ์ ์ฌ์ฉํ์ฌ ์ด๋ค ํ ์ด๋ธ์
๋ณด๋ค. ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ํฌ๊ธฐ, ๋ฐฑ๋ถ์จ ๋๋ ๋ ๋ค๋ก ์ง์ ํ ์ ์์ต๋๋ค. ์ ํจํ
ํฌ๊ธฐ ๋จ์๋ ๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ, ๋ฉ๊ฐ๋ฐ์ดํธ, ๊ธฐ๊ฐ๋ฐ์ดํธ, ํ ๋ผ๋ฐ์ดํธ, ์์ฌ๋ฐ์ดํธ, ํํ๋ฐ์ดํธ ๋ฐ
์ ํ๋ฐ์ดํธ. ์ฒซ ๊ธ์๋ก ๋ชจ๋ ์ถ์ฝํ ์ ์์ต๋๋ค. ๋จ์๊ฐ ์๋ ํญ๋ชฉ์
'๋ฐ์ดํธ'๋ก ๊ฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ '1GB' ๋ฐ '5GB'์ ๋๋ค. ๊ฐ์ ๋ค์์ ๋ํ๋ ๋๋ค.
"๋ญ๋น๋ ๋ฐ์ดํธ" ์ ๋๋ ํ ์ด๋ธ์์ ์ค์ ๋ก ์ฌ์ฉ๋ ๊ฒ๊ณผ
index, ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ๋์ด์ผ ํ๋ค๊ณ ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ๋ ๊ฒ.
์ด ์์ ์๋ ๋ ๊ฐ์ ํ๋ ์ฝ๋ฉ๋ ๊ฐ์ด ์์ด ์์ ํฌ๊ธฐ์์ ์๋ชป๋ ๊ฒฝ๋ณด๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
์ฒ์ง. ํ ์ด๋ธ์ 10ํ์ด์ง ์ด์, ์ธ๋ฑ์ค๋ 15ํ์ด์ง ์ด์์ด์ด์ผ ํฉ๋๋ค.
์ด ํ ์คํธ์์ ๊ณ ๋ ค๋ฉ๋๋ค. ์ด ๊ฐ์ ์ ๋ง๋ก ์กฐ์ ํ๋ ค๋ฉด ๋ค์์ ์ฐพ์ ์ ์์ต๋๋ค.
๋ณ์ $MINPageS and $๋ฏธ๋ํ์ด์ง "check_bloat" ์๋ธ๋ฃจํด์ ๋งจ ์์ ์์ต๋๋ค. ์ด๊ฒ๋ค
๊ฐ์ ๋ค์ ์ค ํ๋๋ผ๋ ๋ฌด์๋ฉ๋๋ค. --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค or --ํฌํจํ๋ค ์ฌ์ฉ.
๊ฐ์ฅ ๋ถํ๋ ค์ง ์์ 10๊ฐ ๊ด๊ณ๋ง ํ์๋ฉ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ์ด ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
--perflimit ์์ ์ ํ๊ณ๋ฅผ ์ค์ ํ๋ ์ต์ .
'information_schema'๋ผ๋ ์คํค๋ง๋ ์ ์ผํ ํ ์ด๋ธ์ด๋ฏ๋ก ์ด ํ ์คํธ์์ ์ ์ธ๋ฉ๋๋ค.
ํฌํจ์ ์๊ณ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
์ด ์์ ์ผ๋ก ๊ณ์ฐ๋ ๊ฐ์ ์ ํํ์ง ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํด์ผ ํฉ๋๋ค.
์ง์นจ์ผ ๋ฟ์ ๋๋ค. ํ ์ด๋ธ์ ์ ํํ ํฌ๊ธฐ๋ฅผ ์ถ์ ํ๊ธฐ ์ํด ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์์ง๋ง,
๊ฒฐ๋ก ์ ์ถ์ ์ผ ๋ฟ์ ๋๋ค. ์ ํํ ์ธ๋ฑ์ค ํฌ๊ธฐ๋ ์ถ์ธก์ ๋ถ๊ณผํฉ๋๋ค.
์ ํํ ํ ์ด๋ธ ํฌ๊ธฐ์ด์ง๋ง ๋ ๋ค ๋ฌผ๊ฑด์ด ์ผ๋ง๋ ๋ถํ์ด ์ค๋ฅด๋์ง ๋๋ต์ ์ผ๋ก ์๋ ค์ผ ํฉ๋๋ค.
์ 1: ํฌํธ 5432์ ํ ์ด๋ธ์ด 100MB๋ฅผ ์ด๊ณผํ๋ฉด ๊ฒฝ๊ณ ํ๊ณ 200MB๋ฅผ ์ด๊ณผํ๋ฉด ์ํํฉ๋๋ค.
MB
check_postgres_bloat --port=5432 --warning='100M' --critical='200M'
์ 2: ํธ์คํธ 'sami'์ ํ ์ด๋ธ 'orders'์ 10MB ์ด์์ ํฝ์ฐฝ์ด ์๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
check_postgres_bloat --host=sami --include=orders --critical='10MB'
์ 3: ๋ฐ์ดํฐ๋ฒ ์ด์ค 'sales'์ ํ ์ด๋ธ 'q4'๊ฐ 50% ์ด์ ๋ถํ๋ ค์ง๋ฉด ์๊ณ๊ฐ ์ ๊ณต
check_postgres_bloat --db=ํ๋งค --include=q4 --critical='50%'
์ 4: ํ ์ด๋ธ์ด 20% ์ด์ ํฝ์ฐฝํ๋ฉด ์๊ณ๊ฐ ์ ๊ณต and 150MB ์ด์์ ํฝ์ฐฝ์ด ์์ต๋๋ค.
check_postgres_bloat --port=5432 --critical='20% ๋ฐ 150M'
์ 5: ํ ์ด๋ธ์ด 40% ์ด์ ํฝ์ฐฝํ๋ฉด ์๊ณ๊ฐ ์ ๊ณต or 500MB ์ด์์ ํฝ์ฐฝ์ด ์์ต๋๋ค.
check_postgres_bloat --port=5432 --warning='500M ๋๋ 40%'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ํ ์ด๋ธ์ ๋ํด ๊ฐ์ฅ ๋ง์ ๋ญ๋น ๋ฐ์ดํธ ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ ๋ฒ์งธ ์ค์ ์ธ๋ฑ์ค์ ๋ํด ๊ฐ์ฅ ๋ง์ ๋ญ๋น๋ ๋ฐ์ดํธ ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค ๋ฒ์งธ
ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ, ํ ์ด๋ธ ์ด๋ฆ ๋ฐ ์ธ๋ฑ์ค ์ด๋ฆ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ํ๋ ๊ฒฝ์ฐ
๋์ ํฝ์ฐฝ ๋น์จ์ ์ถ๋ ฅํ์ญ์์ค(๊ด๊ณ๊ฐ
์ปค์ผ ํจ) "--mrtg=ratio"๋ฅผ ์ ๋ฌํ๋ฉด ๋ฉ๋๋ค.
์ฒดํฌ ํฌ์ธํธ
("symlink: check_postgres_checkpoint") ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ๊ฐ
์คํ๋์์ต๋๋ค. ์ด๊ฒ์ ํ์ธ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์ผํ ์๋ฒ์์ ์คํ๋์ด์ผ ํฉ๋๋ค(์:
-h ํ๋๊ทธ๋ ์๋ํ์ง ์์ต๋๋ค). ์ด ๊ฒ์ฌ๋ "์ ๋๊ธฐ" ์๋ฒ์์ ์คํํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
๋ฐฐ์ก๋ WAL ํ์ผ์ ์ ๊ทน์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ ๋๊ธฐ ์ํ์ธ์ง ํ์ธํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค.
์ ๋ง '๋ฐ๋ปํ๋ค'. ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๋ ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
"PGDATA" ๋๋ "--datadir" ์ธ์๋ฅผ ์ ๋ฌํฉ๋๋ค. ์ดํ ๊ฒฝ๊ณผ๋ ์๊ฐ(์ด)์ ๋ฐํํฉ๋๋ค.
"pg_controldata"์ ๋ํ ํธ์ถ์ ๊ตฌ๋ฌธ ๋ถ์ํ์ฌ ๊ฒฐ์ ๋ ๋๋ก ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ๊ฐ ์คํ๋์์ต๋๋ค. ๋๋ฌธ์
์ด๋ฅผ ์ํด์๋ ํ์ฌ ๊ฒฝ๋ก์์ pg_controldata ์คํ ํ์ผ์ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. ๋๋,
"PGBINDIR"์ ๊ทธ๊ฒ์ด ์๋ ๋๋ ํ ๋ฆฌ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
ํน๋ณํ ์ต์ --๊ฐ์ ์ ํ or --๊ฐ์ ๋๊ธฐ ๋ชจ๋, ๋ฐ๊ฒฌ๋ ๋ชจ๋๊ฐ ์๋ ๊ฒฝ์ฐ
ํ๋๊ฐ ์์๋๋ฉด CRITICAL์ด ๋ฐ์ํฉ๋๋ค.
ํ๋ ์ด์์ ๊ฒฝ๊ณ ๋๋ ์ค์ํ ์ธ์๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
์ด ์์ ์๋ Date::Parse ๋ชจ๋์ด ํ์ํฉ๋๋ค.
MRTG ๋๋ ๋จ์ ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ด ์๋ฅผ ๋ฐํํฉ๋๋ค.
ํด๋ฌ์คํฐ ์์ด๋
("symlink: check_postgres_cluster-id") ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์๋ณ์๊ฐ ์ ๊ณตํ๋์ง ํ์ธํฉ๋๋ค.
pg_controldata์ ์ํด ๋ง์ง๋ง์ผ๋ก ํ์ธํ ์๊ฐ๊ณผ ๋์ผํฉ๋๋ค. ์ด๊ฒ์ ๋์ผํ ์๋ฒ์์ ์คํ๋์ด์ผ ํฉ๋๋ค.
๊ฒ์ฌ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก(์: -h ํ๋๊ทธ๊ฐ ์๋ํ์ง ์์). ๋๋
--๊ฒฝ๊ณ ๋๋ --๋นํ์ ์ธ ์ต์ ์ ์ ๊ณตํด์ผ ํ์ง๋ง ๋ ๋ค ์ ๊ณตํด์๋ ์ ๋ฉ๋๋ค. ๊ฐ๊ฐ์ ๊ฐ์
ํด๋ฌ์คํฐ ์๋ณ์, ์ ์ ๊ฐ. ํน์ "--critical=0"์ผ๋ก ์คํํ ์ ์์ต๋๋ค.
๊ธฐ์กด ํด๋ฌ์คํฐ ์๋ณ์๋ฅผ ์ฐพ๋ ์ต์ ์ ๋๋ค.
์ 1: ์ด๊ธฐ ์๋ณ์ ์ฐพ๊ธฐ
check_postgres_cluster_id --tical=0 --datadir=/var//lib/postgresql/9.0/main
์ 2: ํด๋ฌ์คํฐ๊ฐ ๋์ผํ์ง ํ์ธํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฝ๊ณ ํฉ๋๋ค.
check_postgres_cluster_id --์ค์=5633695740047915135
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์๋ณ์ ์คํจ์ ์ฑ๊ณต์ ๋ํ๋ด๋ 1 ๋๋ 0์ ๋ฐํํฉ๋๋ค.
์ฑ๋ฅ. ์๋ณ์๋ "--mrtg" ์ธ์๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋ค ๋ฒ์งธ ์ค์ ํญ์
ํ์ฌ ์๋ณ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ปค๋ฐ ๋น์จ
("symlink: check_postgres_commitratio") ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปค๋ฐ ๋น์จ์ ํ์ธํ๊ณ
๋๋ฌด ๋ฎ์ ๋ ๋ถํํฉ๋๋ค. ์ด ๋ช ๋ น์ ํ ๋ฒ ์ด์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ๋ณด๋ค
์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ์์ ์๊ฐ ํํฐ๋งํ ์๋ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ต์ . "์ฌ์ฉ์ ์ด๋ฆ
์์ธํ ๋ด์ฉ์ ํํฐ๋ง' ์น์ ์ ์ฐธ์กฐํ์ธ์.
๊ฒฝ๊ณ ๋ฐ ์ํ ์ต์ ์ ๋ฐฑ๋ถ์จ๋ก ์ง์ ํด์ผ ํฉ๋๋ค. ์ด ์์ต๋๋ค
์ด ์์ ์ ๊ธฐ๋ณธ๊ฐ: ๊ฒฝ๊ณ ๋ฐ ์ํ์ ์ง์ ํด์ผ ํฉ๋๋ค. ๊ฒฝ๊ณ ๊ฐ
์๊ณ๊ฐ๋ณด๋ค ํด ์ ์์ต๋๋ค. ์ถ๋ ฅ์ ๋ค์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
commitratio, ๊ฐ์ฅ ์์ ๊ฒ ๋จผ์ .
์: ํธ์คํธ flagg์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ปค๋ฐ ๋น์จ์ด 90% ๋ฏธ๋ง์ด๊ณ ์ํํ๋ฉด ๊ฒฝ๊ณ ํฉ๋๋ค.
80% ๋ฏธ๋ง์ด๋ฉด.
check_postgres_database_commitratio --host=flagg --warning='90%' --critical='80%'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ปค๋ฐ ๋น์จ์ด ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ๋ถ์จ์ ๋ฐํํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ค์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ด, ๋ค ๋ฒ์งธ ์ค์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ด ์์ต๋๋ค.
์ฐ๊ฒฐ
("symlink: check_postgres_connection") ๋จ์ํ ์ฐ๊ฒฐํ๊ณ 'SELECT ๋ฒ์ ()'๋ฐ
์ดํ๋ฆฌ. ์๋์ค --๊ฒฝ๊ณ or --๋นํ์ ์ธ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ์ 1(์ํธํ ์ฐ๊ฒฐ) ๋๋ 0(๋์ ์ฐ๊ฒฐ)์ ์ถ๋ ฅํฉ๋๋ค.
์ค์ ๋๋ค.
์ฌ์ฉ์ ์ ์ ์ฟผ๋ฆฌ
("symlink: check_postgres_custom_query") ์ ํํ ์ฌ์ฉ์ ์ง์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํฉ๋๋ค.
๊ฒฐ๊ณผ. ์ฟผ๋ฆฌ ์์ฒด๋ "query" ์ธ์๋ฅผ ํตํด ์ ๋ฌ๋๋ฉฐ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ต๋ํ ๋จ์ํ๊ฒ ์ ์งํ์ต๋๋ค. ๊ฐ๋ฅํ๋ฉด ๋ทฐ๋ ํจ์๋ก ๊ฐ์ธ์ ๋ณด๊ดํ์ญ์์ค.
๋ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ฟผ๋ฆฌ๋ ํ๋ ๋๋ ๋ ๊ฐ์ ์ด์ ๋ฐํํด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ ์๊ตฌ๋๋ค
์ด ์ค ํ๋๋ "๊ฒฐ๊ณผ"๋ก ์ด๋ฆ์ด ์ง์ ๋๊ณ ๊ทํ์ ๋น๊ตํ์ฌ ํ์ธํ ํญ๋ชฉ์ ๋๋ค.
๊ฒฝ๊ณ ๋ฐ ์๊ณ๊ฐ. ๋ ๋ฒ์งธ ์ด์ ์ฑ๋ฅ ๋ฐ์ดํฐ ๋ฐ ๋ชจ๋ ์ด๋ฆ์ ๋ํ ๊ฒ์ ๋๋ค.
์ฌ์ฉํ ์ ์์: ์ด๊ฒ์ ์ฑ๋ฅ ๋ฐ์ดํฐ ์น์ ๋ด์ '๊ฐ'์ด ๋ฉ๋๋ค.
ํ๋ ์ด์์ ๊ฒฝ๊ณ ๋๋ ์ค์ํ ์ธ์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ์ด๊ฒ๋ค์ด ๋ฌด์์ผ๋ก ์ค์ ๋๋๋์ ๋ฐ๋ผ
์คํ ์ค์ธ ์ฟผ๋ฆฌ ์ ํ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๋ค ๊ฐ์ง ์ ํ์ custom_queries๊ฐ ์์ต๋๋ค.
์คํ, "valtype" ์ธ์๋ก ์ง์ ๋ฉ๋๋ค. ์๋ฌด ๊ฒ๋ ์ง์ ํ์ง ์์ผ๋ฉด ์ด ์์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก
'์ ์'. ๋ค ๊ฐ์ง ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ์: ๋จ์ ์ ์ ๋น๊ต๋ฅผ ์ํํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ด์ ๋จ์ ์ ์์ฌ์ผ ํฉ๋๋ค.
๊ฒฝ๊ณ ๋ฐ ์๊ณ๊ฐ์ ๋์ผํด์ผ ํฉ๋๋ค.
ํ: warning ๋ฐ critical์ ๋ฌธ์์ด์ด๋ฉฐ,
์ฒซ ๋ฒ์งธ ์ด์ ์ ํํ ์ผ์นํฉ๋๋ค. ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
์๊ฐ: ๊ฒฝ๊ณ ๋ฐ ์ํ์ ์๊ฐ์ด๋ฉฐ ์ด, ๋ถ,
์๊ฐ ๋๋ ์ผ. ๊ฐ๊ฐ์ ๋จ์ ๋๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค. ๋ง์ฝ์
๋จ์๊ฐ ์ง์ ๋์ง ์๊ณ ์ด๊ฐ โโ๊ฐ์ ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ด์ ์ ์์ฌ์ผ ํฉ๋๋ค.
ํ์ธํ ์๊ฐ(์ด)์ ๋ํ๋ ๋๋ค.
ํฌ๊ธฐ: ๊ฒฝ๊ณ ๋ฐ ์ํ์ ํฌ๊ธฐ์ด๋ฉฐ ๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ,
๋ฉ๊ฐ๋ฐ์ดํธ, ๊ธฐ๊ฐ๋ฐ์ดํธ, ํ ๋ผ๋ฐ์ดํธ ๋๋ ์์ฌ๋ฐ์ดํธ. ๊ฐ๊ฐ์ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค.
๋จ์๊ฐ ์ง์ ๋์ง ์์ผ๋ฉด ๋ฐ์ดํธ๊ฐ ๊ฐ์ ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ด์ ์ ์์ฌ์ผ ํฉ๋๋ค.
ํ์ธํ ๋ฐ์ดํธ ์๋ฅผ ๋ํ๋ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ฐํ๋ ๊ฐ์ด ๋ค์๊ณผ ๊ฐ์ผ๋ฉด ๊ฒฝ๊ณ ๊ฐ ํธ๋ฆฌ๊ฑฐ๋ฉ๋๋ค. ํฐ ๋ณด๋ค ๋๋ ๊ฐ์
์ํ ๋๋ ๊ฒฝ๊ณ ๊ฐ. ๊ทธ๋ฌ๋, --์ญ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
๋ฐํ๋ ๊ฐ์ ์ ๊ฐ ๋ณด๋ค ๋๋ ์ํ ๋๋ ๊ฒฝ๊ณ ๊ฐ๊ณผ ๋์ผํฉ๋๋ค.
์ 1: 100ํ์ด์ง๊ฐ ๋๋ ๊ด๊ณ์ ์ด๋ฆ์ด "rad"์ธ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํ๊ณ ํ์ด์ง ์๋ฅผ ์ ๋ ฅํฉ๋๋ค.
์ฑ๋ฅ ๋ฐ์ดํฐ ์น์ ๋ด๋ถ.
check_postgres_custom_query --valtype=string -w "rad" --query=
"SELECT relname AS ๊ฒฐ๊ณผ, relpages AS ํ์ด์ง FROM pg_class WHERE relpages > 100"
์ 2: "foobar" ํจ์๊ฐ 5MB๋ฅผ ์ด๊ณผํ๋ ์ซ์๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต:
check_postgres_custom_query --critical='5MB'--valtype=size --query="SELECT foobar() AS ๊ฒฐ๊ณผ"
์ 2: "snazzo" ํจ์๊ฐ 42๋ณด๋ค ์์ ๊ฐ์ ๋ฐํํ๋ฉด ๊ฒฝ๊ณ :
check_postgres_custom_query --critical=42 --query="SELECT snazzo() AS ๊ฒฐ๊ณผ" --reverse
์ ์ฉํ custom_query๊ฐ ์๊ฐ๋๋ฉด ์ด ํ๋ก๊ทธ๋จ์ ํจ์น๋ฅผ ๋ณด๋ด๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฌ์ฉํ ์ ์๋ ํ์ค ์์ ์ผ๋ก ๋ง๋ญ๋๋ค.
์ด ์์ ์ ์์ง MRTG ๋๋ ๋จ์ ์ถ๋ ฅ์ ์ง์ํ์ง ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ
("symlink: check_postgres_database_size") ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๊ธฐ๋ฅผ ํ์ธํ๊ณ ๋ถํํฉ๋๋ค.
๊ทธ๋ค์ด ๋๋ฌด ํด ๋. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋น ๋ ๋ฒ ์ด์ ์ด ๋ช ๋ น์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋ฌด๋ฆฌ. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ์ฐธ์กฐ
์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ์์ ์๊ฐ ํํฐ๋งํ ์๋ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ต์ . "์ฌ์ฉ์ ์ด๋ฆ ํํฐ๋ง"์ ์ฐธ์กฐํ์ญ์์ค.
์์ธํ ๋ด์ฉ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๊ฒฝ๊ณ ๋ฐ ์ค์ ์ต์ ์ ๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ, ๋ฉ๊ฐ๋ฐ์ดํธ,
๊ธฐ๊ฐ๋ฐ์ดํธ, ํ ๋ผ๋ฐ์ดํธ ๋๋ ์์ฌ๋ฐ์ดํธ. ๊ฐ๊ฐ์ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์๋ ์์ต๋๋ค.
๋จ์๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๋จ์๋ ๋ฐ์ดํธ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด์ ๋ํ ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค.
์กฐ์น: ๊ฒฝ๊ณ ๋ฐ ์ํ์ ์ง์ ํด์ผ ํฉ๋๋ค. ๊ฒฝ๊ณ ๊ฐ์ ์ด๋ณด๋ค ํด ์ ์์ต๋๋ค.
์๊ณ๊ฐ๋ณด๋ค ์ถ๋ ฅ์ ๊ฐ์ฅ ํฐ ํฌ๊ธฐ๋ก ์ ๋ ฌ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋จผ์ ๋ฐํํ๊ณ ,
์์ ๋ฐ์ดํธ์ ํฌ๊ธฐ์ "์์" ๋ฒ์ ์ ๋ชจ๋ ํ์ํฉ๋๋ค.
์ 1: ํธ์คํธ flagg์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ๊ฐ 1TB๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํ๊ณ , ์ด๊ณผํ๋ ๊ฒฝ์ฐ ์ค์
1.1 TB.
check_postgres_database_size --host=flagg --warning='1TB' --critical='1.1 t'
์ 2: ํฌํธ 1์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ํ๋ฆฟ5432์ด 10MB๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ์ํ์ ์ ๊ณตํฉ๋๋ค.
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='5GB' --critical='10GB'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์์ ๊ฐ์ฅ ํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ๋ฐํํ๊ณ
๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ๋๋ค.
dbstats
("symlink: check_postgres_dbstats") pg_stat_database ๋ณด๊ธฐ์์ ์ ๋ณด๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
์ ์ธ์ฅ ์นํ์ ์ธ ๋ฐฉ์์ผ๋ก ์ถ๋ ฅํฉ๋๋ค. ๋ค๋ฅธ ์ถ๋ ฅ์ ์ง์๋์ง ์์ต๋๋ค.
์ ๋ณด ์ ๊ณต์ฉ์ด๋ฉฐ Nagios์ ํจ๊ป ์ฌ์ฉ๋๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ๊ณ ์ ์ ํฉํ์ง ์์ต๋๋ค. ์ต์ ์ด ์๋ ๊ฒฝ์ฐ
๊ฐ ์ฃผ์ด์ง๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ ์ค์ ํ๋์ฉ ๋ฐํ๋ฉ๋๋ค. ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ ์ ์์ต๋๋ค.
"--include" ์ต์ ์ ์ฌ์ฉํ๊ฑฐ๋ "--dbname" ์ต์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ ์ค์ XNUMX๊ฐ์ ํญ๋ชฉ์ด ์ด๋ฆ:๊ฐ ํ์์ผ๋ก ๋ฐํ๋๋ฉฐ ๋จ์ผ ํญ๋ชฉ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
์ฐ์ฃผ. ํญ๋ชฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐฑ์๋
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ํ์ฌ ์คํ ์ค์ธ ๋ฐฑ์๋ ์์ ๋๋ค.
์ํํ๋ค
์์ฑ ๋๋ ์ฌ์ค์ ๋ ์ดํ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ด ์ปค๋ฐ ์์ ๋๋ค.
๋กค๋ฐฑ
์์ฑ ๋๋ ์ฌ์ค์ ๋ ์ดํ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ด ๋กค๋ฐฑ ์์ ๋๋ค.
์ฝ๊ธฐ
์ฝ์ ๋์คํฌ ๋ธ๋ก์ ์ด ์์ ๋๋ค.
hit ๋ฒํผ ํํธ์ ์ด ์.
ret ๋ฐํ๋ ์ด ํ ์์ ๋๋ค.
์ ์ฑ
๊ฐ์ ธ์จ ์ด ํ ์์ ๋๋ค.
ins ์ฝ์ ๋ ์ด ํ ์์ ๋๋ค.
upd ์ ๋ฐ์ดํธ๋ ์ด ํ ์์ ๋๋ค.
del ์ญ์ ๋ ์ด ํ ์์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋๋ค.
Postgres๊ฐ ๋ฒ์ 0์ธ ๊ฒฝ์ฐ ret, fetch, ins, upd ๋ฐ del ํญ๋ชฉ์ ํญ์ 8.2์ ๋๋ค.
ํด๋น ๋ฒ์ ์์๋ ํด๋น ํต๊ณ๋ฅผ ์ฌ์ฉํ ์ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
dbname ์ธ์๊ฐ ์ ๊ณต๋๋ฉด XNUMX๊ฐ์ ์ถ๊ฐ ํญ๋ชฉ์ด ๋ฐํ๋ฉ๋๋ค.
์์ด๋์ค์บ
์ด ์ฌ์ฉ์ ์ธ๋ฑ์ค ์ค์บ ์์ ๋๋ค.
idxtupread
๋ฐํ๋ ์ด ์ฌ์ฉ์ ์ธ๋ฑ์ค ํญ๋ชฉ ์์ ๋๋ค.
idxtupfetch
๋จ์ ์ฌ์ฉ์ ์ธ๋ฑ์ค ์ค์บ์ผ๋ก ๊ฐ์ ธ์จ ์ด ํ ์์ ๋๋ค.
idxblksread
๋ชจ๋ ์ฌ์ฉ์ ์ธ๋ฑ์ค์ ๋ํด ์ฝ์ ์ด ๋์คํฌ ๋ธ๋ก ์์ ๋๋ค.
idxblkshit
๋ชจ๋ ์ฌ์ฉ์ ์ธ๋ฑ์ค์ ๋ํ ์ด ๋ฒํผ ํํธ ์์ ๋๋ค.
์ํ์ค ์ค์บ
๋ชจ๋ ์ฌ์ฉ์ ํ ์ด๋ธ์ ๋ํ ์์ฐจ ์ค์บ์ ์ด ์์ ๋๋ค.
seqtupread
๋ชจ๋ ์ฌ์ฉ์ ํ ์ด๋ธ์์ ๋ฐํ๋ ์ด ํํ ์์ ๋๋ค.
์ 1: "willow" ํธ์คํธ์์ "products"๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ํต๊ณ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
check_postgres_dbstats --dbhost ๋ฒ๋๋๋ฌด --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 --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๊ทธ๋ฌํ ํธ๋ฆฌ๊ฑฐ์ ์์ ๋๋ค.
๋ฐ๊ฒฌ๋์์ผ๋ฉฐ ๋ ๋ค ๊ธฐ๋ณธ์ ์ผ๋ก "1"๋ก ์ค์ ๋์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์์๋ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋นํ์ฑํํ๋ ๊ฒ์ด ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฒคํธ. ๊ฒ์ฌ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ 8.3 ์ด์์ธ ๊ฒฝ์ฐ ๊ฒ์ฌ๋
'๋นํ์ฑํ' ์ํ์ ์๋ ํธ๋ฆฌ๊ฑฐ('ํญ์' ๋๋ '๋ณต์ '์ ๋ฐ๋). NS
์ถ๋ ฅ์๋ ํ ์ด๋ธ ์ด๋ฆ๊ณผ ๋นํ์ฑํ๋ ๊ฐ ํธ๋ฆฌ๊ฑฐ ์ด๋ฆ์ด ํ์๋ฉ๋๋ค.
๋ฐฉ์์ .
์ 1: ๋นํ์ฑํ๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋์ง ํ์ธ
check_postgres_disabled_triggers
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ๋ผ์ธ์์ ๋นํ์ฑํ๋ ํธ๋ฆฌ๊ฑฐ ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋์คํฌ ๊ณต๊ฐ
("symlink: check_postgres_disk_space") ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌผ๋ฆฌ์ ๋์คํฌ ๊ณต๊ฐ์ ํ์ธํฉ๋๋ค.
ํฌ์คํธ๊ทธ๋ ์ค. ์ด ์์ ์ ์ํํ๋ ค๋ฉด ์คํ ํ์ผ "/bin/df" ๋ณด๊ณ ๊ฐ๋ฅ
๋์คํฌ ํฌ๊ธฐ์์, ๊ทธ๋ฆฌ๊ณ ๋ํ ์ํผ์ ์ ๋ก ์คํ๋์ด์ผ ํ๋ฏ๋ก ๊ฒ์ฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ Postgres ๋ด๋ถ ์ค์ . NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ด ์ฃผ์ด์ง๋๋ค
ํฌ๊ธฐ๋ ๋ฐฑ๋ถ์จ ๋๋ ๋ ๋ค. ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ค ๋จ์ ์ ํ์
ํ์ฉ: ๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ, ๊ธฐ๊ฐ๋ฐ์ดํธ, ๋ฉ๊ฐ๋ฐ์ดํธ, ๊ธฐ๊ฐ๋ฐ์ดํธ, ํ ๋ผ๋ฐ์ดํธ ๋๋ ์์ฌ๋ฐ์ดํธ. ๊ฐ
์ฒซ ๊ธ์๋ก๋ง ์ถ์ฝ๋ ์ ์์ต๋๋ค. ๋จ์๊ฐ ์ ํ ์์ผ๋ฉด '๋ฐ์ดํธ'๋ฅผ ๋ํ๋ ๋๋ค. NS
๊ธฐ๋ณธ๊ฐ์ '90%' ๋ฐ '95%'์ ๋๋ค.
์ด ๋ช ๋ น์ ๋ค์ ์ฌํญ์ ํ์ธํ์ฌ ์๋ก ๋ค๋ฅธ ๋ชจ๋ ๋ฌผ๋ฆฌ์ ๋์คํฌ๋ฅผ ํ์ธํฉ๋๋ค.
Postgres์์ ์ฌ์ฉ ์ค์ ๋๋ค.
๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ - ์ฃผ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ๋์คํฌ.
๊ธฐ๋ก ์๋ฐฐ ๊ท์น์ - ๋ก๊ทธ ํ์ผ์ด ์๋ ๋์คํฌ.
WAL ํ์ผ ์๋ฐฐ ๊ท์น์ - ๋ฏธ๋ฆฌ ์ฐ๊ธฐ ๋ก๊ทธ๊ฐ ์๋ ๋์คํฌ(์: ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ pg_xlog)
ํ ์ด๋ธ์คํ์ด์ค - ๋ณ๋์ ๋์คํฌ์ ์๋ ๊ฐ ํ ์ด๋ธ์คํ์ด์ค.
์ถ๋ ฅ์ ๊ฐ ๋์คํฌ์์ ์ฌ์ฉ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ์ด ํฌ๊ธฐ์
๋ฐฑ๋ถ์จ, ์ฌ์ฉ๋ ๊ฐ์ฅ ๋์ ๋ฐฑ๋ถ์จ์์ ๊ฐ์ฅ ๋ฎ์ ๋ฐฑ๋ถ์จ๋ก ์ ๋ ฌ๋ฉ๋๋ค. ์์ ๊ฐ ํญ๋ชฉ์ ํ์ผ์ ๋งคํ๋ฉ๋๋ค.
์์คํ : ํฌํจํ๊ฑฐ๋ ์ ์ธํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ธ๋ถ.
์ 1: ํฌํธ 90์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด 5432%๋ฅผ ์ด๊ณผํ๋ ํ์ผ ์์คํ ์ด ์๋์ง ํ์ธํ์ญ์์ค.
check_postgres_disk_space --port=5432 --warning='90%' --critical='90%'
์ 2: /dev/sda๋ก ์์ํ๋ ๋ชจ๋ ํ์ผ ์์คํ ์ด 10GB๋ณด๋ค ์๊ณ
11GB(๊ฒฝ๊ณ ๋ฐ ์ํ)
check_postgres_disk_space --port=5432 --warning='10GB' --critical='11GB' --include="~^/dev/sda"
์ 4: ๋ ๋ค 50%๋ฅผ ์ด๊ณผํ๋ ํ์ผ ์์คํ ์ด ์๋์ง ํ์ธ and 15GB ์ด์
check_postgres_disk_space --critical='50% ๋ฐ 15GB'
์ 5: ํ์ผ ์์คํ ์ด 70% ์ด์ ์ฐจ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํฉ๋๋ค. or 1T ์ด์
check_postgres_disk_space --warning='1T ๋๋ 75'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ํ์ผ ์์คํ ์ ํฌ๊ธฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ๋ฐํํ๊ณ
๋ค ๋ฒ์งธ ์ค์ ํ์ผ ์์คํ ์ด๋ฆ.
fsm_ํ์ด์ง
("symlink: check_postgres_fsm_pages") ํด๋ฌ์คํฐ๊ฐ Postgres์ ์ผ๋ง๋ ๊ฐ๊น์ด์ง ํ์ธํฉ๋๋ค.
max_fsm_pages ํ๊ฒฝ. ์ด ์์ ์ 8.2 ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ง ์๋ํ๋ฉฐ
๊ธฐ์ฌ ๋ชจ๋์ด ํ์ํฉ๋๋ค pg_freespacemap ์ค์น๋ฉ๋๋ค. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ
์ต์ ์ ๋ฐฑ๋ถ์จ๋ก ํ์๋์ด์ผ ํฉ๋๋ค. ์ฌ์ ๊ณต๊ฐ ๋งต์์ ์ฌ์ฉ๋ ํ์ด์ง ์
pg_freespacemap_relations ๋ทฐ๋ฅผ ๋ณด๊ณ ์์์ ์คํํ์ฌ ๊ฒฐ์ ๋ฉ๋๋ค.
์ง๊ณต ์์ธ ์ ๋ณด์์ ์ฌ์ ๊ณต๊ฐ ๋งต ํ์ด์ง ์ฌ๋กฏ์ ์ถ๋ ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ณต์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
๋ช ๋ น. ๊ธฐ๋ณธ๊ฐ์ 85% ๊ฒฝ๊ณ ์ 95% ํฌ๋ฆฌํฐ์ปฌ์ ์ํด.
์ 1: ํด๋ฌ์คํฐ๊ฐ ์ฌ์ ๊ณต๊ฐ ํ์ด์ง ์ฌ๋กฏ์ 76%๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
robert ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์น๋ pg_freespacemap ์ฌ์ฉ
check_postgres_fsm_pages --dbname=robert --warning="76%"
pg_freespacemap์ด ์ค์น๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ์ ๋ฌํด์ผ ํ์ง๋ง,
ํด๋ฌ์คํฐ๋น ํ ๋ฒ๋ง ์ด ๊ฒ์ฌ๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋ํ ์ด ์ ๋ณด๋ฅผ ํ์ธํ๋ ค๋ฉด
free-space-map์์ ํน๋ณํ ์ ๊ธ์ ์ป์ผ๋ฏ๋ก ์ด๊ฒ์ ์คํํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์งง์ ๊ฐ๊ฒฉ์ผ๋ก ํ์ธํ์ญ์์ค.
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ์๋ ์ฌ์ ๊ณต๊ฐ ๋งต์ ๋ฐฑ๋ถ์จ๊ณผ ์ซ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋ ๋ฒ์งธ ์ค์์ ํ์ฌ ์ฌ์ฉ ์ค์ธ ํ์ด์ง ์์ ๋๋ค.
fsm_๊ด๊ณ
("symlink: check_postgres_fsm_relations") ํด๋ฌ์คํฐ๊ฐ Postgres์ ์ผ๋ง๋ ๊ฐ๊น์ด์ง ํ์ธํฉ๋๋ค.
max_fsm_relations ํ๊ฒฝ. ์ด ์์ ์ 8.2 ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ง ์๋ํ๋ฉฐ,
๊ธฐ์ฌ ๋ชจ๋์ด ํ์ํฉ๋๋ค pg_freespacemap ์ค์น๋ฉ๋๋ค. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ
์ต์ ์ ๋ฐฑ๋ถ์จ๋ก ํ์๋์ด์ผ ํฉ๋๋ค. ์์ ์์ ์ฌ์ฉ๋ ๊ด๊ณ์ ์
space-map์ pg_freespacemap_relations ๋ทฐ๋ฅผ ๋ณด๊ณ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ
๊ฐ์ 85% ๊ฒฝ๊ณ ์ 95% ํฌ๋ฆฌํฐ์ปฌ์ ์ํด.
์ 1: ํด๋ฌ์คํฐ๊ฐ ์ฌ์ ๊ณต๊ฐ ๊ด๊ณ์ 80%๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค dylan์ ์ค์น๋ pg_freespacemap ์ฌ์ฉ
check_postgres_fsm_relations --dbname=dylan --warning="75%"
pg_freespacemap์ด ์ค์น๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ์ ๋ฌํด์ผ ํ์ง๋ง,
ํด๋ฌ์คํฐ๋น ํ ๋ฒ๋ง ์ด ๊ฒ์ฌ๋ฅผ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋ํ ์ด ์ ๋ณด๋ฅผ ํ์ธํ๋ ค๋ฉด
free-space-map์์ ํน๋ณํ ์ ๊ธ์ ์ป์ผ๋ฏ๋ก ์ด๊ฒ์ ์คํํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
์งง์ ๊ฐ๊ฒฉ์ผ๋ก ํ์ธํ์ญ์์ค.
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ์๋ ์ฌ์ ๊ณต๊ฐ ๋งต์ ๋ฐฑ๋ถ์จ์ ๋ฐํํฉ๋๋ค.
ํ์ฌ ๋ ๋ฒ์งธ ์ค์์ ์ฌ์ฉ๋๋ ๊ด๊ณ.
์ ์ค๋ฅ
("symlink: check_postgres_hitratio") ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ค๋ฅ ์ ํ์ธํ๊ณ ๋ถ๋ง์ ์ ๊ธฐํฉ๋๋ค.
๋๋ฌด ๋ฎ์ ๋. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋น ๋ ๋ฒ ์ด์ ์ด ๋ช ๋ น์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋ฌด๋ฆฌ. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ์ฐธ์กฐ
์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ์์ ์๊ฐ ํํฐ๋งํ ์๋ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ต์ . "์ฌ์ฉ์ ์ด๋ฆ ํํฐ๋ง"์ ์ฐธ์กฐํ์ญ์์ค.
์์ธํ ๋ด์ฉ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
๊ฒฝ๊ณ ๋ฐ ์ํ ์ต์ ์ ๋ฐฑ๋ถ์จ๋ก ์ง์ ํด์ผ ํฉ๋๋ค. ์ด ์์ต๋๋ค
์ด ์์ ์ ๊ธฐ๋ณธ๊ฐ: ๊ฒฝ๊ณ ๋ฐ ์ํ์ ์ง์ ํด์ผ ํฉ๋๋ค. ๊ฒฝ๊ณ ๊ฐ
์๊ณ๊ฐ๋ณด๋ค ํด ์ ์์ต๋๋ค. ์ถ๋ ฅ์ ๋ค์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
์ ์ค๋ฅ , ๊ฐ์ฅ ์์ ๊ฒ๋ถํฐ.
์: ํธ์คํธ flagg์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ค๋ฅ ์ด 90% ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ํํฉ๋๋ค.
80% ๋ฏธ๋ง.
check_postgres_hitratio --host=flagg --warning='90%' --critical='80%'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ ์ค๋ฅ ์ด ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ๋ถ์จ์ ๋ฐํํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ค์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ด ์๊ณ ๋ค ๋ฒ์งธ ์ค์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ด ์์ต๋๋ค.
hot_standby_delay
("symlink: check_hot_standby_delay") ์คํธ๋ฆฌ๋ฐ ๋ณต์ ์ง์ฐ์ ๊ณ์ฐํ์ฌ ํ์ธํฉ๋๋ค.
๋ง์คํฐ ์๋ฒ์ ํ์ฌ xlog ์์น์
๊ทธ๊ฒ์ ์ฐ๊ฒฐ๋ ์ฌ๋ ์ด๋ธ. ์ฌ๋ ์ด๋ธ ์๋ฒ๋ hot_standby(์: ์ฝ๊ธฐ ์ ์ฉ) ๋ชจ๋์ ์์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ์ด ์์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ต์ ๋ฒ์ ์ Postgres 9.0์ ๋๋ค. NS --๊ฒฝ๊ณ and
--๋นํ์ ์ธ ์ต์ ์ xlog ์์น ๊ฐ์ ๋ธํ์ ๋๋ค. ์ด ๊ฐ์ ๋ฐ์ดํธ์ด๊ธฐ ๋๋ฌธ์
WAL์ ์คํ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํธ๋์ญ์ ๋ณผ๋ฅจ๊ณผ ์ผ์นํด์ผ ํฉ๋๋ค.
๊ฑฐ์ง ๊ธ์ ๋๋ ๋ถ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด.
์ฒซ ๋ฒ์งธ "--dbname", "--host" ๋ฐ "--port" ๋ฑ์ ์ต์ ์ ๋ง์คํฐ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. NS
๋ ๋ฒ์งธ๋ ๋ ธ์์ ์ํฉ๋๋ค.
๋ฐ์ดํธ ๊ฐ์ ์คํธ๋ฆฌ๋ฐ์ ํ์ํ ํธ๋์ญ์ ๋ณผ๋ฅจ์ ๊ธฐ๋ฐ์ผ๋ก ํด์ผ ํฉ๋๋ค.
Postgres์ ์ํด ๊ฒฐ์ ๋ ๋๋ฌด ๋ง์ ์ง์ฐ์ผ๋ก ์ธํด ๋ง์คํฐ์์ ๋ณต์ ์ฐ๊ฒฐ์ด ๋์ด์ก์ต๋๋ค.
๊ตฌ์ฑ ๋ณ์ wal_keep_segments. ์๊ฐ ๋จ์์ ๊ฒฝ์ฐ ์ ํจํ ๋จ์๋ '์ด'์ ๋๋ค.
'๋ถ', '์๊ฐ' ๋๋ '์ผ'. ๊ฐ๊ฐ์ ๋จ์ ๋๋ ์ฝ์ด๋ก ์ธ ์ ์์ต๋๋ค.
์ฒซ ํธ์ง. ๋ ๋ค ์ง์ ํ ๋ '๋ฐ์ดํธ and ์๊ฐ', ๋ ์กฐ๊ฑด ๋ชจ๋
์๊ณ๊ฐ์ ์ถฉ์กฑํ๋ ค๋ฉด true์ ๋๋ค.
์ผํ๋ก ๊ตฌ๋ถํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค.
"--dbport=5432,5543"๊ณผ ๊ฐ์ --dbhost ๋ฐ --dbport ๋งค๊ฐ๋ณ์๋ฅผ ๋์ดํฉ๋๋ค. ์ฃผ์ด์ง์ง ์์ผ๋ฉด,
์์ ์ด ์คํจํฉ๋๋ค.
์ 1: xlog ์ฌ์์์ ํฌํธ 5433์ ๋ก์ปฌ ๋ณต์ ๋ณธ์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ ์์์ ๊ฒฝ๊ณ ํฉ๋๋ค.
์ ํ
check_hot_standby_delay --dbport=5432,5433 --warning='1'
์ 2: replica1์ด ๋ง์ง๋ง์ผ๋ก ์์ ํ ํธ๋์ญ์ ์ด 10๊ฐ๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
๋ช๋ถ ์ ์
check_hot_standby_delay --dbhost=master,replica1 --critical='10๋ถ'
์ 3: ๋ง์คํฐ๊ฐ ์๊ฐ์ ์ผ๋ก ๋ณด๊ณ ์๋ ๊ฒฝ์ฐ replica1์ด 1 WAL ์ธ๊ทธ๋จผํธ ๋ค์ ์๋๋ก ํ์ฉ
์คํธ๋ฆฌ๋ฐ ๋ณต์ ์ฐ๊ฒฐ์ด ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ํ๋ ๋๋ 10๋ถ ๋ค,
๋ง์คํฐ๊ฐ ํ๋์ ๊ฑฐ์ ๋ณด๊ณ ์์ง ์๊ณ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ์ง ์๋ ๊ฒฝ์ฐ
๋ ๋ค ๋ณต์ ์ฐ๊ฒฐ์ ์ง์์ ์ธ ๋ฌธ์ ๊ฐ ์์์ ๋ํ๋ ๋๋ค.
check_hot_standby_delay --dbhost=master,replica1 --warning='1048576 ๋ฐ 2๋ถ' --critical='16777216 ๋ฐ 10๋ถ'
์ธ๋ฑ์ค ํฌ๊ธฐ
ํ ์ด๋ธ ํฌ๊ธฐ
๊ด๊ณ ํฌ๊ธฐ
(์ฌ๋ณผ ๋งํฌ: "check_postgres_index_size", "check_postgres_table_size" ๋ฐ
"check_postgres_relation_size") ์์ ํ ์ด๋ธ ํฌ๊ธฐ and ์ธ๋ฑ์ค ํฌ๊ธฐ ๋จ์ํ
๋ณํ ๊ด๊ณ ํฌ๊ธฐ ๋๋ฌด ์ฑ์ฅํ ๊ด๊ณ๋ฅผ ํ์ธํ๋ ์์
ํฐ. ๊ด๊ณ(์ฆ, ํ ์ด๋ธ ๋ฐ ์ธ๋ฑ์ค)๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค
and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ๊ด๊ณ ์
๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ์ฌ์ฉ์๊ฐ ํํฐ๋งํ ์๋ ์์ต๋๋ค. --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์
์ต์ . ์์ธํ ๋ด์ฉ์ "USER NAME FILTERING" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ๋ํ ๊ฐ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ํ์ผ ํฌ๊ธฐ์ด๋ฉฐ ๋จ์๋
๋ฐ์ดํธ, ํฌ๋ก๋ฐ์ดํธ, ๋ฉ๊ฐ๋ฐ์ดํธ, ๊ธฐ๊ฐ๋ฐ์ดํธ, ํ ๋ผ๋ฐ์ดํธ ๋๋ ์์ฌ๋ฐ์ดํธ. ๊ฐ๊ฐ ์ค์๋ง ๊ฐ๋ฅ
์ฒซ ๊ธ์๊น์ง. ๋จ์๊ฐ ์ง์ ๋์ง ์์ผ๋ฉด ๋ฐ์ดํธ๊ฐ ๊ฐ์ ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ด ์์ต๋๋ค
๊ฐ: ๊ฒฝ๊ณ ์ ์ํ ์ต์ ์ด ๋ชจ๋ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋ฐํ ํ ์คํธ๋ ๋ค์์ ๋ณด์ฌ์ค๋๋ค.
๋ฐ๊ฒฌ๋ ๊ฐ์ฅ ํฐ ๊ด๊ณ์ ํฌ๊ธฐ.
๊ฒฝ์ฐ --showperf ์ต์ ์ด ํ์ฑํ๋๊ณ , ๋ชจ๋ ํฌ๊ธฐ์์ ๊ด๊ณ๊ฐ ์ฃผ์ด์ง๋๋ค.
์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ค์์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. --perflimit ์ต์
"ORDER BY size DESC LIMIT(perflimit)"๋ฅผ ์ํํ๋ ์ฟผ๋ฆฌ์ ๋๋ค.
์ 1: ํธ์คํธ burrick์์ 600MB๋ณด๋ค ํฐ ํ ์ด๋ธ์ด ์์ผ๋ฉด ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
check_postgres_table_size --critical='600MB' --warning='600MB' --host=burrick
์ 2: ํ ์ด๋ธ ์ ํ์ ํฌ๊ธฐ๊ฐ 4GB๋ฅผ ์ด๊ณผํ๋ฉด ๊ฒฝ๊ณ ํ๊ณ 4.5GB์์ ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
check_postgres_table_size --host=burrick --warning='4GB' --critical='4.5GB' --include=์ ํ
์ 3: postgres๊ฐ ์์ ํ์ง ์์ ์ธ๋ฑ์ค๊ฐ 500MB๋ฅผ ์ด๊ณผํ๋ฉด ๊ฒฝ๊ณ ํฉ๋๋ค.
check_postgres_index_size --port=5432 --excludeuser=postgres -w 500MB -c 600MB
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ํฐ ๊ด๊ณ์ ํฌ๊ธฐ(๋ฐ์ดํธ)์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๊ด๊ณ๋ฅผ ๋ค ๋ฒ์งธ ์ค๋ก ์ง์ ํฉ๋๋ค.
๋ง์ง๋ง_๋ถ์
last_vacuum
last_autoanalyze
last_autovacuum
(์ฌ๋ณผ ๋งํฌ: "check_postgres_last_analyze", "check_postgres_last_vacuum",
"check_postgres_last_autoanalyze" ๋ฐ "check_postgres_last_autovacuum") ์๊ฐ ํ์ธ
ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๊ฐ ํ ์ด๋ธ์ ๋ํด ์ง๊ณต(๋๋ ๋ถ์)์ด ๋ง์ง๋ง์ผ๋ก ์คํ๋ ์ดํ์ ๋๋ค.
์ด๋ฌํ ์์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฒ์ 8.3 ์ด์์ด๊ฑฐ๋
๋ฒ์ ์ 8.2์ด๊ณ ๊ตฌ์ฑ ๋ณ์๋ ํต๊ณ_ํ_์์ค ํ์ฑํ๋์์ต๋๋ค. ํ ์ด๋ธ
๋ก ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . "๊ธฐ๋ณธ ํํฐ๋ง" ์ฐธ์กฐ
์์ธํ ๋ด์ฉ์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. ํ ์ด๋ธ ์์ ์๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์๋ ์์ต๋๋ค.
--ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ต์ . ์์ธํ ๋ด์ฉ์ "USER NAME FILTERING" ์น์ ์ ์ฐธ์กฐํ์ธ์.
์ธ๋ถ.
๋จ์ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์๊ฐ์ผ๋ก ์ง์ ๋ฉ๋๋ค. ์ ํจํ ๋จ์๋ ์ด,
๋ถ, ์๊ฐ ๋ฐ ์ผ; ๋ชจ๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค. ๋จ์๊ฐ ์๋ ๊ฒฝ์ฐ
์ฃผ์ด์ง ๊ฒฝ์ฐ '์ด'๋ก ๊ฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ '1์ผ'๊ณผ '2์ผ'์ ๋๋ค. ์ฐธ๊ณ ํ์ธ์
์ด ํ๋๊ฐ ์๋์ผ๋ก ์ฑ์์ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ํ์คํ ๊ฒฝ์ฐ
ํ ์ด๋ธ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ณ ์๋์ง ํ์ธํ์ญ์์ค.
ํ ์คํธ์์ ์ ์ธํ์ญ์์ค.
'information_schema'๋ผ๋ ์คํค๋ง๋ ์ ์ผํ ํ ์ด๋ธ์ด๋ฏ๋ก ์ด ํ ์คํธ์์ ์ ์ธ๋ฉ๋๋ค.
ํฌํจ์ ์๊ณ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค.
'์๋'์ด ์๋ ๋ฒ์ ์ ์๋ ๋ฒ์ ๋ ํ์ธํฉ๋๋ค. ๊ธฐํ์์
๋จ์ด, last_vacuum์ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ ์ง๊ณต์ธ์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ง์ง๋ง ์ง๊ณต์ ๋ํด ๋ณด๊ณ ํฉ๋๋ค.
๋๋ autovacuum ๋ฐ๋ชฌ์ ์ํด ์คํ๋ฉ๋๋ค.
์ 1: 3์ผ ๋์ ์ฒญ์๋์ง ์์ ํ ์ด๋ธ์ด ์์ผ๋ฉด ๊ฒฝ๊ณ ํ๊ณ
์ฃผ, ์์ฃผ ์ฅ์ ๊ฒฝ์ฐ
check_postgres_last_vacuum --host=์ฅ --warning='3d' --critical='7d'
์ 2: ์์ ๊ฐ์ง๋ง ์ฌ์ฉ์ 'eve' ๋๋ 'mallory'์ ์ํ ํ ์ด๋ธ์ ๊ฑด๋๋๋๋ค.
check_postgres_last_vacuum --host=์ฅ --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: 'grimm'๊ณผ ์ผ์นํ๋ ํ์ฑ LISTEN ์์ฒญ์ด ์๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ค์นด
check_postgres_listener --db ์ค์ค์นด --critical=~grimm
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฑ๊ณต ๋๋ ์คํจ๋ฅผ ๋ํ๋ด๋ ์ฒซ ๋ฒ์งธ์ 1 ๋๋ 0์ ๋ฐํํฉ๋๋ค. ์ด๋ฆ
๋ฅผ ํตํด ํต์งํด์ผ ํฉ๋๋ค. --mrtg ์ต์ ์ ์ ํํฉ๋๋ค.
์ ๊ธ
("symlink: check_postgres_locks") ํ๋ ์ด์์ ์ ๊ธ์ ๋ํ ์ด ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋น ๋ ๋ฒ ์ด์ ์คํํ ํ์๊ฐ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์
๋ก ํํฐ๋ง --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์์ธํ ๋ด์ฉ์.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋ค์์ ๋ํ๋ด๋ ๋จ์ํ ์ซ์๋ก ์ง์ ํ ์ ์์ต๋๋ค.
์ด ์ ๊ธ ์ ๋๋ ์ ๊ธ ์ ํ๋ณ๋ก ๋ถ๋ฅํ ์ ์์ต๋๋ค. ์ ํจํ ์ ๊ธ ์ด๋ฆ
'total', 'waiting' ๋๋ Postgres์์ ์ฌ์ฉํ๋ ์ ๊ธ ์ ํ์ ์ด๋ฆ์ ๋๋ค. ์ด๋ฌํ ์ด๋ฆ์
๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๊ณ ๋์ "์ ๊ธ" ๋ถ๋ถ์ด ํ์ํ์ง ์์ผ๋ฏ๋ก ๋ฐฐํ์ ์ธ ์ผ์นํฉ๋๋ค
'์ต์คํด๋ฃจ์๋ธ ๋ฝ'. ํ์์ ์ด๋ฆ=์ซ์์ด๋ฉฐ ๋ค๋ฅธ ํญ๋ชฉ์ ์ฝ๋ก ๋๋
์ธ๋ฏธ์ฝ๋ก (๋๋ ๊ธฐํ ๊ธฐํธ).
์ 1: ์ ๊ธ ์๊ฐ 100๊ฐ ์ด์์ธ ๊ฒฝ์ฐ ๊ฒฝ๊ณ , 200๊ฐ ์ด์์ธ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ผ๊ธฐ
ํธ์คํธ ๊ฐ๋
check_postgres_locks --host=garrett --warning=100 --์ค์=200
์ 2: ํธ์คํธ artemus์์ 200๊ฐ ์ด์์ ์ ๊ธ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
์ด 250๊ฐ ์ด์์ ์ ๊ธ์ด ์กด์ฌํ๊ฑฐ๋ 20๊ฐ ์ด์์ ๋จ๋ ์ ๊ธ์ด ์กด์ฌํ๊ฑฐ๋ 5๊ฐ ์ด์์ ์ฐ๊ฒฐ์ด ์๋ ๊ฒฝ์ฐ
์ ๊ธ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
check_postgres_locks --host=artemus --warning=200 --critical="total=250:waiting=5:exclusive=20"
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ์ ๊ธ ์์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค.
๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
๋ก๊ทธ ํ์ผ
("symlink: check_postgres_logfile") ๋ก๊ทธ ํ์ผ์ด ์์ ์์น์ ์๋์ง ํ์ธํฉ๋๋ค.
๋ฐ ๋ก๊ทธ์ธ ์ค์ ๋๋ค. ์ด ์์ ์ ๊ฐ๊ฐ์ ๋ํด ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ๋ช ๋ น์ ์คํํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ธํ๊ณ ๋ฉ์์ง๊ฐ ๋ก๊ทธ์ ํ์๋๋์ง ํ์ธํฉ๋๋ค. ๊ทธ๊ฒ์ ์ค์บ
๋ก๊ทธ๊ฐ ์์ด์ผ ํ ์์น๋ฅผ ํ์ ํ๊ธฐ ์ํด Postgres ๋ด๋ถ์ ๋ค์ํ log_* ์ค์ . ๋ง์ฝ ๋๋ผ๋ฉด
syslog๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒฝ์ฐ, /etc/syslog.conf.
๋๋ ๋ก๊ทธ ํ์ผ์ ์ด๋ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๊ณตํ ์ ์์ต๋๋ค. --๋ก๊ทธ ํ์ผ ์ต์ . ์ด๊ฒ์
๋ก๊ทธ์ ์ธ๋ถ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ตฌ๋๋๋ ์ฌ์ฉ์ ์ ์ ํ์ ๊ตฌ์ฑํ๊ฐ ์๋ ๊ฒฝ์ฐ ํนํ ์ ์ฉํฉ๋๋ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ --๋ก๊ทธ ํ์ผ ์ต์ ์ "%Y %m %d %H" ์ด์ค์ผ์ดํ ๋ฌธ์๋ฅผ ์ง์ํฉ๋๋ค.
ํ์ฌ ์ฐ๋, ์, ๋ ์ง ๋ฐ ์๊ฐ์ ๊ฐ๊ฐ ๋ํ๋ ๋๋ค. ์ค๋ฅ๋ ํญ์
๊ฒฝ๊ณ ์ต์ ์ด XNUMX์ด ์๋ ๊ฐ์ผ๋ก ์ ๋ฌ๋์ง ์๋ ํ ์ํ์ผ๋ก ๋ณด๊ณ ๋ฉ๋๋ค.
ํน์ ์ฉ๋ ์ธ์ "--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์ ๋ฐํํฉ๋๋ค. ์
์คํจ์ ๊ฒฝ์ฐ ๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ํ ์คํจ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค.
new_version_bc
("symlink: check_postgres_new_version_bc") Bucardo์ ์ต์ ๋ฒ์ ์ธ์ง ํ์ธํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ฌ ๋ฒ์ ์ "bucardo_ctl --version"์ ์คํํ์ฌ ์ป์ต๋๋ค.
์ฃผ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๊ฐ ๋ฐํ๋ฉ๋๋ค. ๋ฆฌ๋น์ ์ ๊ทธ๋ ์ด๋๊ฐ
์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ด ๋ฐํ๋ฉ๋๋ค. (Bucardo๋ ๋ง์คํฐ์์ ๋ ธ์๋ก, ๋ง์คํฐ์์ ๋ง์คํฐ๋ก
Postgres์ฉ ๋ณต์ ์์คํ : ์ฐธ์กฐ http://bucardo.org ์์ธํ ๋ด์ฉ์). ๋ํ๋ณด์ญ์์ค
"--get_method" ์ต์ ์ ๋ํ ์ ๋ณด์ ๋๋ค.
new_version_box
("symlink: check_postgres_new_version_box") boxinfo์ ์ต์ ๋ฒ์ ์ธ์ง ํ์ธํฉ๋๋ค.
ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ฌ ๋ฒ์ ์ "boxinfo.pl --version"์ ์คํํ์ฌ ์ป์ ์ ์์ต๋๋ค.
์ฃผ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๊ฐ ๋ฐํ๋ฉ๋๋ค. ๋ฆฌ๋น์ ์ ๊ทธ๋ ์ด๋๊ฐ
์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ด ๋ฐํ๋ฉ๋๋ค. (boxinfo๋ ์ค์ํ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํ ํ๋ก๊ทธ๋จ์ ๋๋ค.
์๋ฒ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ HTML ํ์์ผ๋ก ๋ฃ๊ธฐ: ์ฐธ์กฐ
http://bucardo.org/wiki/boxinfo ์์ธํ ๋ด์ฉ์). ์ ๋ํ ์ ๋ณด๋ ์ฐธ์กฐํ์ญ์์ค.
"--get_method" ์ต์ .
new_version_cp
("symlink: check_postgres_new_version_cp") ์ด ํ๋ก๊ทธ๋จ์ ์ต์ ๋ฒ์ ์ธ์ง ํ์ธํฉ๋๋ค.
(check_postgres)๋ ๋ฉ์ธ์ ์๋ ์์ ํ ์คํธ ํ์ผ์์ ๋ฒ์ ์ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ ํ ํ์ด์ง์ ํ์ด์ง์ ๋๋ค. ๋ฐํ๋ ๋ฒ์ ์ด ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํฉ๋๋ค.
์คํ ์ค์ธ ๊ฒ๊ณผ ์ผ์นํฉ๋๋ค. ๊ถ์ฅ ์ ๊ฒ ๊ฐ๊ฒฉ์ XNUMX์ผ XNUMXํ์ ๋๋ค. ์ฐธ์กฐ
"--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
(์ฌ๋ณผ ๋งํฌ: "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
("symlink: check_postgres_pgbouncer_backends") ํ์ฌ ์ฐ๊ฒฐ ์๋ฅผ ํ์ธํฉ๋๋ค.
pgbouncer๋ฅผ ํตํด ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ์ ํ์ ์ผ๋ก ์ต๋๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค.
pgbouncer ๊ตฌ์ฑ ๋ณ์์ ์ํด ๊ฒฐ์ ๋๋ ํ์ฉ๋จ max_client_conn. ๊ทธ๋งํผ
--๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์ธ ๊ฐ์ง ํ์ ์ค ํ๋๋ฅผ ์ทจํ ์ ์์ต๋๋ค. ์ฒซ์งธ, ๊ฐ๋จํ ์ซ์๋
๊ฒฝ๊ณ ๊ฐ ์ ๊ณต๋ ์ฐ๊ฒฐ ์๋ฅผ ๋ํ๋ ๋๋ค.
์ด ์ ํ์ ๋ค์์ ์ฌ์ฉํ์ง ์์ต๋๋ค. max_connections ํ๊ฒฝ. ๋์งธ, ์ฌ์ฉ ๊ฐ๋ฅํ ๋น์จ
์ฐ๊ฒฐ์ ์ค ์ ์์ต๋๋ค. ์ ์งธ, ๋ค์์ ๋ํ๋ด๋ ์์๊ฐ ์ฃผ์ด์ง ์ ์์ต๋๋ค.
๊น์ง ๋จ์ ์ฐ๊ฒฐ ์ max_connections ๋๋ฌํ์ต๋๋ค. ์ ๋ํ ๊ธฐ๋ณธ๊ฐ
--๊ฒฝ๊ณ and --๋นํ์ ์ธ '90%'์ '95%'์ ๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํํฐ๋งํ ์๋ ์์ต๋๋ค.
์ ์, --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ์์ธํ ๋ด์ฉ์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ํด ์ํ๊ฐ ์๋ ํ๋ก์ธ์ค๋ง ๋ณด๋ ค๋ฉด ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. --๋ ธ์ด๋ค ๋ ผ์. ์ฌ์ฉ์๊ฐ
์ด ์ ๋๋ก ์๋ํ๋ ค๋ฉด ์ํผ์ ์ ์ฌ์ผ ํ๋ฏ๋ก ์ฐ๊ฒฐํ๊ณ ์์ต๋๋ค.
์ 1: ํธ์คํธ quirm์ ์ฐ๊ฒฐ ์๊ฐ 120์ ๋๋ฌํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ๊ณ
150์ ๋๋ฌํ๋ฉด ์น๋ช ์ ์ ๋๋ค.
check_postgres_pgbouncer_backends --host=quirm --warning=120 --tical=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 --creation=-5 --host=plasmid -p 6432 -u pgbouncer
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ์ฐ๊ฒฐ ์๊ฐ ๋ณด๊ณ ๋๊ณ ๋ค ๋ฒ์งธ ์ค์ ์ฐ๊ฒฐ ์๊ฐ ๋ณด๊ณ ๋ฉ๋๋ค.
ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ๊ณผ ํ์ฌ max_client_conn์ ์ ๊ณตํฉ๋๋ค. ํ๋ ์ด์์ธ ๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฟผ๋ฆฌ๋ ๊ฒฝ์ฐ ์ฐ๊ฒฐ ์๊ฐ ๊ฐ์ฅ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.
pgbouncer_checksum
("symlink: check_postgres_pgbouncer_checksum") ๋ชจ๋ pgBouncer ์ค์ ์ด ๋ค์๊ณผ ๊ฐ์์ง ํ์ธํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ธํ์ ๋์ ๋์ผํฉ๋๋ค. ์ด๊ฒ์ ์ ๋ ฌ๋ ๋ชฉ๋ก์ ์ฒดํฌ์ฌ์ ์์ฑํ์ฌ ์ํ๋ฉ๋๋ค.
์ค์ ์ด๋ฆ๊ณผ ๊ทธ ๊ฐ. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์ง์ ํด์๋ ์ ๋ฉ๋๋ค.
์๋์ผ๋ก pgbouncer๋ก ๊ธฐ๋ณธ ์ค์ ๋ฉ๋๋ค. ๋๋ --๊ฒฝ๊ณ ๋๋ --๋นํ์ ์ธ option
์ฃผ์ด์ ธ์ผ ํ์ง๋ง ๋ ๋ค ์ฃผ์ด์๋ ์ ๋๋ค. ๊ฐ๊ฐ์ ๊ฐ์ 32์์ ์ฒดํฌ์ฌ์ ๋๋ค.
0์ง์ ๊ฐ. ํน๋ณํ "--critical=XNUMX" ์ต์ ์ ์ฌ์ฉํ์ฌ ์คํํ ์ ์์ต๋๋ค.
๊ธฐ์กด ์ฒดํฌ์ฌ.
์ด ์์ ์๋ Digest::MD5 ๋ชจ๋์ด ํ์ํฉ๋๋ค.
์ 1: ๋ค์์ ์ฌ์ฉํ์ฌ ํฌํธ 6432์์ pgbouncer ๊ตฌ์ฑ์ ๋ํ ์ด๊ธฐ ์ฒดํฌ์ฌ์ ์ฐพ์ต๋๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ์(๋ณดํต postgres)
check_postgres_pgbouncer_checksum --port=6432 --์ค์=0
์ 2: ์ค์ ์ด ๋ณ๊ฒฝ๋์ง ์์๋์ง ํ์ธํ๊ณ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํฉ๋๋ค.
์.
check_postgres_pgbouncer_checksum --port=6432 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ผ์นํ๋ ์ฒดํฌ์ฌ ์คํจ์ ์ฑ๊ณต์ ๋ํ๋ด๋ 1 ๋๋ 0์ ๋ฐํํฉ๋๋ค.
์ฒดํฌ์ฌ์ "--mrtg" ์ธ์๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋ค ๋ฒ์งธ ์ค์ ํญ์
ํ์ฌ ์ฒดํฌ์ฌ.
pgagent_jobs
("symlink: check_postgres_pgagent_jobs")
์ด์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ์คํ์ด ์ฑ๊ณตํ์ต๋๋ค. ์ด๊ฒ์ ๋ค์์ ํ์ธํ์ฌ ์ํ๋ฉ๋๋ค.
๊ฒฐ๊ณผ๊ฐ XNUMX์ด ์๋ ๋ชจ๋ ๋จ๊ณ.
"--warning" ๋๋ "--critical" ๋๋ ๋ ๋ค ์๊ฐ์ผ๋ก ์ง์ ํ ์ ์์ผ๋ฉฐ ์์ ์
ํ์ฌ ์๊ฐ ์ด์ ์ ์ง์ ๋ ์๊ฐ ๋์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ์ ํจํ
๋จ์๋ ์ด, ๋ถ, ์๊ฐ ๋ฐ ์ผ์ ๋๋ค. ๋ชจ๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค.
๋จ์๊ฐ ์ง์ ๋์ง ์์ผ๋ฉด '์ด'๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ 1: ๋ง์ง๋ง ๋ ์ ์คํ๋ ์์ ์ด ์คํจํ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
check_postgres_pgagent_jobs --์ค์=1d
์ 2: ์ง๋ ์ฃผ์ ์คํ๋ ์์ ์ด ์คํจํ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_pgagent_jobs --๊ฒฝ๊ณ =7d
์ 3: ์ง๋ 2์๊ฐ ๋์ ์คํจํ ์์ ์ ๋ํด ์๊ณ๊ฐ์ ์ ๊ณตํ๊ณ ๋ค์ ์์ ์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ง๋ 4์๊ฐ ๋์ ์คํจํ ์์ :
check_postgres_pgagent_jobs --์ค์=2h --warning=4h
์ค๋น๋_txns
("symlink: check_postgres_prepared_txns") ๊ธฐ์กด ์ค๋น๋ ๋ชจ๋ ์ฐ๋ น ํ์ธ
์ ๋ฌด. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์ค๋น๋ ํธ๋์ญ์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋ ๋ถ๋ถ์ผ๋ก ์ปค๋ฐํ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๋ณต์กํฉ๋๋ค. ๊ทธ๋ค์ ๋ํ ๋ค์๊ณผ ํผ๋๋์ด์๋ ์๋ฉ๋๋ค.
์ค๋น๋ ์ง์ , ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ค๋น๋ฅผ ๋ค์์ ๋ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. NS
๊ฒฝ๊ณ ์ ๊ธฐ๋ณธ๊ฐ์ 1์ด์ด๋ฉฐ ์ค๋น๋ ํธ๋์ญ์ ์ ์ฌ์ฉ์ ๊ฐ์งํฉ๋๋ค.
์๋ง๋ ๋๋ถ๋ถ์ ์์คํ ์์ ์ค์์ผ ๊ฒ์ ๋๋ค. ๊ฒฝ๊ณ ๋ฐ ์ํ์ ์๊ฐ(์ด)์ ๋๋ค.
๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํ๊ธฐ ์ ์ ์ค๋น๋ ํธ๋์ญ์ ์ด ์ด๋ ค ์์ต๋๋ค.
์ 1: ์ค๋น๋ ํธ๋์ญ์ ๊ฐ์ง ์ ๊ฒฝ๊ณ ํ์:
check_postgres_prepared_txns -w 0
์ 2: ์ค๋น๋ ํธ๋์ญ์ ์ด 10๊ฐ ์ด์ ์ด๋ ค ์๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
์ด, ๊ทธ๋ฌ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค 'shike'์ ๋ํด ์ต๋ 360์ด๋ฅผ ํ์ฉํฉ๋๋ค.
check_postgres_prepared_txns --critical=10 --exclude=์๋ผ์ดํฌ
check_postgres_prepared_txns --critical=360 --include=์๋ผ์ดํฌ
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ์ค๋๋ ํธ๋์ญ์ ์ด ์ด๋ฆฐ ์๊ฐ(์ด)์ ๋ฐํํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ค๊ณผ ๋ง์ง๋ง ์ค์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค.
์ฟผ๋ฆฌ_๋ฐํ์
("symlink: check_postgres_query_runtime") ํน์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ํ์ธํ๊ณ ,
์ด์ ๋ํด "EXPLAIN ANALYZE"๋ฅผ ์คํํฉ๋๋ค. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์
์ฟผ๋ฆฌ์ ์์๋๋ ์ต๋ ์๊ฐ์ ๋๋ค. ์ ํจํ ๋จ์๋ ์ด, ๋ถ, ์๊ฐ์ ๋๋ค.
any๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค. ๋จ์๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด '์ด'๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
๊ฒฝ๊ณ ์ ์ํ ์ต์ ์ด ๋ชจ๋ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋ณด๊ธฐ ๋๋ ํจ์์ ์ด๋ฆ
์คํํ๋ ค๋ฉด ์ ์ ๋ฌ๋์ด์ผ ํฉ๋๋ค. --์ฟผ๋ฆฌ ์ด๋ฆ ์ต์ . ํ ๋จ์ด๋ก ๊ตฌ์ฑ๋์ด์ผ ํฉ๋๋ค.
(๋๋ schema.word), ๋์ ์ ํ์ ๊ดํธ๊ฐ ์์ต๋๋ค.
์ 1: "speedtest"๋ผ๋ ํจ์๊ฐ 10์ด ์ด๋ด์ ์คํ๋์ง ์๊ฑฐ๋
์ ๊ฒ.
check_postgres_query_runtime --queryname='speedtest()' --critical=10 --warning=10
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๊ฐ ์ฒซ ๋ฒ์งธ ์ค์์ ์๋ฃ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ(์ด)์ ๋ณด๊ณ ํฉ๋๋ค.
๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋์ดํฉ๋๋ค.
์ฟผ๋ฆฌ ์๊ฐ
("symlink: check_postgres_query_time") ํ๋ ์ด์์ ์ฟผ๋ฆฌ ์คํ ๊ธธ์ด๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์์ ๋ ๋ฒ ์ด์ ์คํํ ํ์๊ฐ ์์ต๋๋ค. ๋ฉ๋ชจ
์ด๊ฒ์ ์ด๋ฏธ "ํธ๋์ญ์ ์ ํด" ์ฟผ๋ฆฌ๋ฅผ ์ ์ธํฉ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์
๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ๋ง --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์์ธํ ์ฌํญ์. ๋ค์์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ์ฌ์ฉ์๋ฅผ ํํฐ๋งํ ์๋ ์์ต๋๋ค. --ํฌํจ ์ฌ์ฉ์
and --์ ์ธ ์ฌ์ฉ์ ์ต์ . ์์ธํ ๋ด์ฉ์ "USER NAME FILTERING" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ ๋ํ ๊ฐ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์๊ฐ์ด๋ฉฐ ๊ธฐ๋ณธ๊ฐ์ '2์ ๋๋ค.
๋ถ'๊ณผ '5๋ถ'. ์ ํจํ ๋จ์๋ '์ด', '๋ถ', '์๊ฐ' ๋๋
'๋ '. ๊ฐ๊ฐ์ ๋จ์ ๋๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ ์ ์์ต๋๋ค. ๋จ์๊ฐ ์๋ ๊ฒฝ์ฐ
์ฃผ์ด์ง ๊ฒฝ์ฐ ๋จ์๋ ์ด๋ก ๊ฐ์ ํฉ๋๋ค.
์ด ์์ ์๋ Postgres 8.1 ์ด์์ด ํ์ํฉ๋๋ค.
์ 1: ์ฟผ๋ฆฌ๊ฐ 3๋ถ ์ด์ ์คํ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํ์ํ๊ณ
5๋ถ๋ณด๋ค ๊ธธ๋ฉด ์ค์ํฉ๋๋ค.
check_postgres_query_time --port=5432 --warning='3๋ถ' --critical='5๋ถ'
์ 2: ๊ธฐ๋ณธ๊ฐ(2๋ถ ๋ฐ 5๋ถ)์ ์ฌ์ฉํ์ฌ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ธ
'ํ ํ๋ฆฟ'์ผ๋ก ์์ํฉ๋๋ค.
check_postgres_query_time --port=5432 --exclude=~^ํ ํ๋ฆฟ
์ 3: ์ฌ์ฉ์ 'don'์ด 20์ด ์ด์ ์คํ ์ค์ธ ์ฟผ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ
check_postgres_query_time --port=5432 --includeuser=don --warning=20s
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ฟผ๋ฆฌ์์ ๊ฐ์ฅ ์ค๋ ์คํ๋ ์ฟผ๋ฆฌ์ ๊ธธ์ด(์ด)๋ฅผ ๋ฐํํฉ๋๋ค.
์ . ๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ์ ๊ณตํฉ๋๋ค.
๋ณต์ ํ
("symlink: check_postgres_replicate_row") ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋ณต์ ๊ฐ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
ํ๋ ์ด์์ ๋ ธ์์๊ฒ.
์ฒซ ๋ฒ์งธ "--dbname", "--host" ๋ฐ "--port" ๋ฑ์ ์ต์ ์ ๋ง์คํฐ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
ํ์ ์ฉ๋๋ ์ฌ๋ ์ด๋ธ์ ๋๋ค. ๊ฐ ๋๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์
์๊ฐ ๋จ์์ด๋ฉฐ ์ ์ด๋ ํ๋๋ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค(๊ธฐ๋ณธ๊ฐ ์์). ์ ํจํ ๋จ์๋ '์ด'์ ๋๋ค.
'๋ถ', '์๊ฐ' ๋๋ '์ผ'. ๊ฐ๊ฐ์ ๋จ์ ๋๋ ์ฝ์ด๋ก ์ธ ์ ์์ต๋๋ค.
์ฒซ ํธ์ง. ๋จ์๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๋จ์๋ ์ด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
์ด ๊ฒ์ฌ๋ ๋ง์คํฐ์ ๋จ์ผ ํ์ ์ ๋ฐ์ดํธํ ๋ค์ ์ ๋ฐ์ดํธ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํฉ๋๋ค.
๋ ธ์์๊ฒ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ณต์ ์ค์ธ ํ ์ด๋ธ์ ์ ํํ ๋ค์
๋ณ๊ฒฝํ ์ ์๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํด ๋ณ๊ฒฝ๋์ง ์์ ํ์ ์ฐพ์ต๋๋ค. NS
์ด ํ์ ํน์ ์ด์ ํ ๊ฐ์์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋จนํ๋ค.
"repinfo" ์ต์ ์ ์ถ๊ฐํ๊ณ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ค์ ์ต์ ์ ํฌํจํด์ผ ํฉ๋๋ค.
ํ ์ด๋ธ ์ด๋ฆ, ๊ธฐ๋ณธ ํค, ํค ID, ์ด, ์ฒซ ๋ฒ์งธ ๊ฐ, ๋ ๋ฒ์งธ ๊ฐ.
์ 1: Slony๋ 'orders'๋ผ๋ ํ ์ด๋ธ์ ํธ์คํธ 'alpha'์์ ํธ์คํธ 'beta'๋ก ๋ณต์ ํ๊ณ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค 'ํ๋งค'. ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ id๋ก ๋ช ๋ช ๋๊ณ ์ฐ๋ฆฌ๋
ID๊ฐ 3์ธ ํ์ ํ ์คํธํฉ๋๋ค(์ด๊ฒ์ ์ญ์ฌ์ ์ด๋ฉฐ ๋ณ๊ฒฝ๋์ง ์์). ์นผ๋ผ์ด ์๋ค
ํ์ธํ๊ธฐ ์ํด 'slon' ๊ฐ์์ 'nols' ๊ฐ์ผ๋ก ์ ํํ 'salesrep'๋ผ๋ ์ด๋ฆ
๋ณต์ . 10์๊ฐ ์ด๋ด์ ๋ณต์ ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋์ง๊ณ ์ถ์ต๋๋ค.
์ด.
check_postgres_replicate_row --host=alpha --dbname=ํ๋งค --host=๋ฒ ํ
--dbname=ํ๋งค --warning=10 --repinfo=์ฃผ๋ฌธ,id,3,ํ๋งค ๋ด๋น์,slon,nols
์ 2: Bucardo๋ 'green' ํธ์คํธ์์ ํธ์คํธ๋ก 'receipt'๋ผ๋ ํ ์ด๋ธ์ ๋ณต์ ํ๊ณ ์์ต๋๋ค.
'๋นจ๊ฐ์', 'ํ๋์', '๋ ธ๋์'. ์์ธก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ '๊ณต๊ฐ'์ ๋๋ค. ์ฌ๋ ์ด๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค
ํฌํธ 5455์์ ์คํ ์ค์ ๋๋ค. ๊ธฐ๋ณธ ํค๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ค๋ ํ์ธ 'receipt_id'์ ๋๋ค.
๊ฐ์ด 9์ด๊ณ ํ ์คํธ๋ฅผ ์ํด ๋ณ๊ฒฝํ๋ ค๋ ์ด์ 'zone'์ด๋ผ๊ณ ํฉ๋๋ค. ์
์ด ์ด์ ๊ฐ์ ๋ํด '๋ถ์ชฝ'๊ณผ '๋จ์ชฝ' ์ฌ์ด๋ฅผ ์ ํํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ ๋์ง๋๋ค.
5์ด ์ด๋ด์ XNUMX๊ฐ์ ์ฌ๋ ์ด๋ธ ๋ชจ๋์ โโ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋์ง ์์ต๋๋ค.
check_postgres_replicate_row --host=green --port=5455 --host=๋นจ๊ฐ์, ํ๋์, ๋ ธ๋์
--์ค์=5 --repinfo=receipt,receipt_id,9,zone,north,south
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ๋ณต์ ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ(์ด)์ ์ฒซ ๋ฒ์งธ ์ค์ ๋ฐํํฉ๋๋ค.
๋ง์น๋ค. ์ต๋ ์๊ฐ์ 4๋ถ 30์ด๋ก ์ค์ ๋ฉ๋๋ค. ๋ณต์ ๊ฐ ์ํ๋์ง ์์ ๊ฒฝ์ฐ
๊ทธ ์ค๋ ์๊ฐ ๋์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
same_schema
("symlink: check_postgres_same_schema") ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋์ผํ์ง ํ์ธํฉ๋๋ค.
์คํค๋ง๊น์ง(๊ทธ๋ฌ๋ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ ์ ์ธ). ์ด๊ฒ์ ํนํ ๋ง๋ค๊ธฐ์ ํธ๋ฆฌํฉ๋๋ค.
๋ง์คํฐ๋ฅผ ์ฌ๋ ์ด๋ธ๋ก ์ฌ์ฉํ ๋ ์ฌ๋ ์ด๋ธ๊ฐ ์์ ๋๊ฑฐ๋ ์์๋์ง ์์๋์ง ํ์ธํ์ญ์์ค.
๋ณต์ . ๋๋ถ๋ถ์ ๋ค๋ฅธ ์์ ๊ณผ ๋ฌ๋ฆฌ ์ด ์์ ์๋ ๊ฒฝ๊ณ ๋ ์ค์ํ ๊ธฐ์ค์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๊ธฐํ๋์ด ์๊ฑฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ค๋ฅผ ๊ฒฝ์ฐ ์ธ๋ถ ๋ชฉ๋ก
์ฐจ์ด์ ์ด ์ ์๋ฉ๋๋ค.
ํน์ ์ฐจ์ด์ ์ ์ ์ธํ๊ฑฐ๋ ํํฐ๋งํ ์ ์์ต๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๋ฌธ์์ด์ "--filter" ์ต์ ์ ์ถ๊ฐํฉ๋๋ค. ๊ฐ์ฒด ์ ํ์ ์ ์ธํ๋ ค๋ฉด "noname"์ ์ฌ์ฉํฉ๋๋ค. ์ฌ๊ธฐ์ 'name'
๊ฐ์ฒด ์ ํ์ ๋๋ค(์: "noschema"). ํน์ ์ ํ์ ๊ฐ์ฒด๋ฅผ ์ ์ธํ๋ ค๋ฉด
์ด๋ฆ์ ๋ํ ์ ๊ท์์ ์ฌ์ฉํ๋ ค๋ฉด "noname=regex"๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์๋ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ ๋์ ์ดํด.
ํํฐ๋งํ ์ ์๋ ๊ฐ์ฒด ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์
๊ฐ์
ํ ์ด๋ธ
์ ๋ง
์์ธ
์์
๊ตฌ์
ํธ๋ฆฌ๊ฑฐ
๊ธฐ๋ฅ
ํํฐ ์ต์ "noposition"์ ๋ด์์ ์ด์ ์์น ํ์ธ์ ๋ฐฉ์งํฉ๋๋ค.
ํ ์ด๋ธ.
ํํฐ ์ต์ "nofuncbody"๋ ๋ชจ๋ ํจ์์ ๋ณธ๋ฌธ ๋น๊ต๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
ํํฐ ์ต์ "noperm"์ ๊ฐ์ฒด ๊ถํ ๋น๊ต๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
๋ ๋ฒ์งธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ณตํ๋ ค๋ฉด
์ ์ ํ ์ฐ๊ฒฐ ์ธ์. ์๋ฅผ ๋ค์ด, ํธ์คํธ alpha์ ํธ์คํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋น๊ตํ๋ ค๋ฉด
๋ธ๋ผ๋ณด, "--dbhost=alpha,bravo"๋ฅผ ์ฌ์ฉํ์ญ์์ค. ๋ํ ์๋์ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋จ์ผ ํธ์คํธ๋ง ์ ๊ณต๋๋ ๊ฒฝ์ฐ "์๊ฐ ๊ธฐ๋ฐ" ๋ณด๊ณ ์๋ฅผ ์ํํ๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค. NS
์ฒ์ ์คํํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ํญ๋ชฉ์ ๋ํ ์ค๋ ์ท์ด ๋ก์ปฌ์ ์ ์ฅ๋ฉ๋๋ค.
ํ์ผ. ๋ค์ ์คํํ๋ฉด ํด๋น ์ค๋ ์ท์ด ์ฝํ์ง๊ณ "๋ฐ์ดํฐ๋ฒ ์ด์ค #2"๊ฐ ๋๊ณ
ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋น๊ตํฉ๋๋ค.
์ด์ ์ ์ฅ ํ์ผ์ ์ ๋ฒ์ ์ผ๋ก ๋ฐ๊พธ๋ ค๋ฉด --replace ์ธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ค์ํ ์์ ์์ ์ค๋ ์ท์ ํ์ฑํํ๋ ค๋ฉด "--suffix" ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ
๊ฐ ์คํ์ ๊ณ ์ ํ ํ์ผ ์ด๋ฆ. ์๋์ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ 1: star ๋ฐ line ํธ์คํธ์ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋์ผํ์ง ํ์ธํฉ๋๋ค.
check_postgres_same_schema --dbhost=์คํ, ๋ผ์ธ
์ 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=๋งค์ผ
check_postgres_same_schema --dbname=cylon --suffix=์ฃผ๊ฐ
์ 6: ๊ธฐ๋ก ๋น๊ต๋ฅผ ์คํํ ๋ค์ ํ์ผ ๋ฐ๊พธ๊ธฐ
check_postgres_same_schema --dbname=cylon --suffix=daily --replace
์์
("symlink: check_postgres_sequence") ๋ชจ๋ ์ํ์ค์ ์ผ๋ง๋ ๋ง์ ๊ณต๊ฐ์ด ๋จ์ ์๋์ง ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ ๋ฒ ์ด์ค. ์ด๊ฒ์ ์ฌ์ฉ๋ ์ด ๊ฐ๋ฅํ ๊ฐ์ ๋ฐฑ๋ถ์จ๋ก ์ธก์ ๋ฉ๋๋ค.
๊ฐ ์ํ์ค์ ๋ํด. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ด ํํ๋์ด์ผ ํฉ๋๋ค.
๋ฐฑ๋ถ์จ. ๊ธฐ๋ณธ๊ฐ์ 85% ๊ฒฝ๊ณ ์ 95% ํฌ๋ฆฌํฐ์ปฌ์ ์ํด. ๋น์ ์ ํ ์์๋ค
--include ๋ฐ --exclude๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ฌํ ์ํ์ค๋ฅผ ์ ์ดํฉ๋๋ค. ์ด
์ํ๋ ๋น์ ์์ ์ธ ๊ฒ์ ์ค๋ช ํฉ๋๋ค ์ต์๊ฐ and ์ฆ๊ฐ by ๊ฐ์ด์ง๋ง ์๊ดํ์ง ์์ต๋๋ค.
์ํ์ค๊ฐ ์ํ ์ฌ๋ถ๋ก ์ค์ ๋ฉ๋๋ค.
Nagios์ ์ถ๋ ฅ์ ์ํ์ค์ ์ด๋ฆ, ์ฌ์ฉ๋ ๋ฐฑ๋ถ์จ ๋ฐ ์ซ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํด๋น ์ํ์ค์์ nextval์ ๋ช ๋ฒ ๋ ํธ์ถํ ์ ์๋์ง ๋ํ๋ด๋ 'calls'๊ฐ ๋จ์
์ต๋๊ฐ์ ๋๋ฌํ๊ธฐ ์ ์.
MRTG์ ๋ํ ์ถ๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ ๋ชจ๋ ์ํ์ค์์ ๊ฐ์ฅ ๋์ ๋ฐฑ๋ถ์จ์ ๋ฐํํฉ๋๋ค.
"|"๋ก ๊ตฌ๋ถ๋ ๋ค ๋ฒ์งธ ์ค์ ํด๋น ๋ฐฑ๋ถ์จ์ด ์๋ ๊ฐ ์ํ์ค์ ์ด๋ฆ
(ํ์ดํ) ํด๋น ๋ฐฑ๋ถ์จ์ ๋ ์ด์์ ์ํ์ค๊ฐ โโ์๋ ๊ฒฝ์ฐ.
์ 1: ์ํ์ค๊ฐ โโ95%์ ๊ฐ๊น์์ง๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_sequence --dbport=5432 --๊ฒฝ๊ณ =95%
์ 2: "orders_id_seq"๋ผ๋ ์ํ์ค๊ฐ โโ์ ๋ฐ์ ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค.
check_postgres_sequence --dbport=5432 --์ค์=50% --include=orders_id_seq
์ค์ _์ฒดํฌ์ฌ
("symlink: check_postgres_settings_checksum") ๋ชจ๋ Postgres ์ค์ ์ด ๋ค์๊ณผ ๊ฐ์์ง ํ์ธํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ธํ์ ๋์ ๋์ผํฉ๋๋ค. ์ด๊ฒ์ ์ ๋ ฌ๋ ๋ชฉ๋ก์ ์ฒดํฌ์ฌ์ ์์ฑํ์ฌ ์ํ๋ฉ๋๋ค.
์ค์ ์ด๋ฆ๊ณผ ๊ทธ ๊ฐ. ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ค๋ฅธ ์ฌ์ฉ์๋
๋ค๋ฅธ ์ฒดํฌ์ฌ, ALTER USER ์ฌ์ฉ ๋ฐ ์ํผ์ ์ ๊ฐ ๋ ๋ง์ด ๋ณผ ์ ์๋ค๋ ์ฌ์ค๋ก ์ธํด
์ผ๋ฐ ์ฌ์ฉ์๋ณด๋ค ์ค์ . ๋๋ --๊ฒฝ๊ณ ๋๋ --๋นํ์ ์ธ ์ต์ ์
์ฃผ์ด์ก์ง๋ง ๋ ๋ค ์๋๋ค. ๊ฐ๊ฐ์ ๊ฐ์ 32์์ XNUMX์ง์ ์ฒดํฌ์ฌ์ ๋๋ค.
๊ฐ. ํน๋ณํ "--critical=0" ์ต์ ์ผ๋ก ์คํํ์ฌ ๊ธฐ์กด
์ฒดํฌ์ฌ.
์ด ์์ ์๋ Digest::MD5 ๋ชจ๋์ด ํ์ํฉ๋๋ค.
์ 1: ๊ธฐ๋ณธ ์ฌ์ฉ์๋ฅผ ์ฌ์ฉํ์ฌ ํฌํธ 5555์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๊ธฐ ์ฒดํฌ์ฌ ์ฐพ๊ธฐ
(๋ณดํต ํฌ์คํธ๊ทธ๋ ์ค)
check_postgres_settings_checksum --port=5555 --์ค์=0
์ 2: ์ค์ ์ด ๋ณ๊ฒฝ๋์ง ์์๋์ง ํ์ธํ๊ณ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ํฉ๋๋ค.
์.
check_postgres_settings_checksum --port=5555 --warning=cd2f3b5e129dc2b4f5c0f6d8d2e64231
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ผ์นํ๋ ์ฒดํฌ์ฌ ์คํจ์ ์ฑ๊ณต์ ๋ํ๋ด๋ 1 ๋๋ 0์ ๋ฐํํฉ๋๋ค.
์ฒดํฌ์ฌ์ "--mrtg" ์ธ์๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋ค ๋ฒ์งธ ์ค์ ํญ์
ํ์ฌ ์ฒดํฌ์ฌ.
slony_status
("symlink: check_postgres_slony_status") ๋ค์์ ํตํด Slony ํด๋ฌ์คํฐ์ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
Slony์ sl_status ๋ณด๊ธฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ก ๋ฐํ๋ฉ๋๋ค.
"์ง์ฐ ์๊ฐ"์ ์ด. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์๊ฐ์ผ๋ก ํํ๋์ด์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 60 ์ด ๊ฒฝ๊ณ ์ 300 ์ด ํฌ๋ฆฌํฐ์ปฌ์ ์ํด.
์ ํ์ ์ธ์ --๊ฐ์ Slony๊ฐ ์ค์น๋ ์คํค๋ง๋ฅผ ๋ํ๋ ๋๋ค. ๊ทธ ๊ฒฝ์ฐ
์ง์ ํ์ง ์์ผ๋ฉด ์ด ๊ฒ์ฌ๊ฐ ์คํ๋ ๋๋ง๋ค ์คํค๋ง๊ฐ ์๋์ผ๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
์ 1: Slony๊ฐ 20์ด ์ด์ ์ง์ฐ๋๋ฉด ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_slony_status --๊ฒฝ๊ณ 20
์ 2: "_slony" ์คํค๋ง ์๋์ ์ค์น๋ Slony๊ฐ 10์ ์ด๊ณผํ๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
๋ถ ์ง์ฐ
check_postgres_slony_status --schema=_slony --tical=600
์๊ฐ ๋๊ธฐํ
("symlink: check_postgres_timesync") ๋ก์ปฌ ์์คํ ์๊ฐ์ ๋ณด๊ณ ๋ ์๊ฐ๊ณผ ๋น๊ตํฉ๋๋ค.
ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํด NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋ค์ ์๋ฅผ ๋ํ๋ ๋๋ค.
๊ฒฝ๊ณ ๊ฐ ์ฃผ์ด์ง๊ธฐ ์ ์ ๋ ์์คํ ์ฌ์ด์ ์ด. ๋ ๋ค ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ
๊ธฐ๋ณธ๊ฐ์ '2'์ '5'๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ฒฝ๊ณ ๊ฐ์ ๋ค์๋ณด๋ค ํด ์ ์์ต๋๋ค.
์๊ณ๊ฐ. ์ด ํ ์คํธ์ ์ ํํ์ง ์์ ํน์ฑ์ผ๋ก ์ธํด '0' ๋๋ '1' ๊ฐ์
์ข์ต๋๋ค.
๋ฐํ๋ ๋ฌธ์์ด์ ์์ฐจ์ ์์ฑ๋ ๊ฐ ๋ฉด์ ์๊ฐ์ ๋ณด์ฌ์ค๋๋ค.
์์.
์ 1: ํธ์คํธ ankh, morpork ๋ฐ klatch์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ 3๊ฐ ์ดํ์ธ์ง ํ์ธ
ํ์ง ์๊ฐ์์ ์ด ์ฐจ์ด:
check_postgres_timesync --host=ankh,morpork,klatch --์ค์=3
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์ ๋ฐํํฉ๋๋ค.
ํ์ง ์๊ฐ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๊ฐ. ๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ๋ฐํํฉ๋๋ค.
txn_idle
("symlink: check_postgres_txn_idle") "idle in
ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ "ํธ๋์ญ์ " ์ฟผ๋ฆฌ๋ฅผ ์คํํฉ๋๋ค. ์ด ์์ ์ ๋ ๋ฒ ์ด์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and
--๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . ์์ธํ ๋ด์ฉ์ ์๋์ "๊ธฐ๋ณธ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ญ์์ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์๊ฐ ๋จ์, ๋ถํธ ์๋ ์ ์ ๋๋
์๊ฐ ๋จ์์ ๋ํ ์ ์์ด๋ฉฐ ๋ ๋ค ์ ๊ณตํด์ผ ํฉ๋๋ค(๊ธฐ๋ณธ๊ฐ ์์). ์ ํจํ ๋จ์
'์ด', '๋ถ', '์๊ฐ' ๋๋ '์ผ'์ ๋๋ค. ๊ฐ๊ฐ์ ๋จ์ ๋๋ ์ฝ์ด๋ก ์์ฑ๋ ์ ์์ต๋๋ค.
์ฒซ ๊ธ์๋ง. ๋จ์๊ฐ ์ง์ ๋์ง ์๊ณ ์ซ์์ ๋ถํธ๊ฐ ์์ผ๋ฉด ๋จ์
์ด๋ก ๊ฐ์ ํฉ๋๋ค.
์ด ์์ ์๋ Postgres 8.3 ์ด์์ด ํ์ํฉ๋๋ค.
์ 1: ํธ๋์ญ์ ์์ 15์๊ฐ ์ด์ ์ ํด ์ํ์ธ ์ฐ๊ฒฐ์ด ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
์ด:
check_postgres_txn_idle --port=5432 --warning='15์ด'
์ 2: 50๊ฐ ์ด์์ ํธ๋์ญ์ ์ด ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ์ ๊ณต
check_postgres_txn_idle --port=5432 --warning='+50'
์ 3: 5๊ฐ ์ด์์ ์ฐ๊ฒฐ์ด ํธ๋์ญ์ ์์ ๋ ๋ง์ ์๊ฐ ๋์ ์ ํด ์ํ์ธ ๊ฒฝ์ฐ ์๊ณ๊ฐ ์ ๊ณต
10์ด ์ด์:
check_postgres_txn_idle --port=5432 --critical='5์ด ๋์ 10'
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ๊ฐ์ฅ ๊ธด ์ ํด ํธ๋์ญ์ ์ด ๋ฐ์ํ ์๊ฐ(์ด)์ ๋ฐํํฉ๋๋ค.
๋ฌ๋ฆฌ๊ธฐ. ๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ธฐํ ์ ๋ณด๋ฅผ ๋ฐํํฉ๋๋ค.
๊ฐ์ฅ ๊ธด ๊ฑฐ๋.
txn_time
("symlink: check_postgres_txn_time") ํ๋ ์ด์์ ์ด๋ฆฐ ํธ๋์ญ์ ๊ธธ์ด๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋น ๋ ๋ฒ ์ด์ ์ด ๋ช ๋ น์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค์์ ์ฌ์ฉํ์ฌ ํํฐ๋งํ ์ ์์ต๋๋ค. --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ์ต์ . "๊ธฐ๋ณธ"์ ์ฐธ์กฐํ์ญ์์ค.
FILTERING' ์น์ ์์ ์์ธํ ๋ด์ฉ์ ํ์ธํ์ธ์. ๊ฑฐ๋ ์์ ์๋ ๋ค์์ ํตํด ํํฐ๋งํ ์๋ ์์ต๋๋ค.
์ ์ฌ์ฉ --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ต์ . "์ฌ์ฉ์ ์ด๋ฆ ํํฐ๋ง" ์น์ ์ ์ฐธ์กฐํ์ธ์.
์์ธํ ๋ด์ฉ์.
๊ฐ ๋๋ --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์๊ฐ ๋จ์์ด๋ฉฐ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
(๊ธฐ๋ณธ๊ฐ ์์). ์ ํจํ ๋จ์๋ '์ด', '๋ถ', '์๊ฐ' ๋๋ '์ผ'์ ๋๋ค. ๊ฐ๊ฐ์
๋จ์ ๋๋ ์ฒซ ๊ธ์๋ก ์ถ์ฝ๋ฉ๋๋ค. ๋จ์๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ
๋จ์๋ ์ด๋ก ๊ฐ์ ํฉ๋๋ค.
์ด ์์ ์๋ Postgres 8.3 ์ด์์ด ํ์ํฉ๋๋ค.
์ 1: ํธ๋์ญ์ ์ด 10๋ถ ์ด์ ์ด๋ ค ์๋ ๊ฒฝ์ฐ ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
check_postgres_txn_time --port=5432 --critical='10๋ถ'
์ 1: ์ฌ์ฉ์ '์ฐฝ๊ณ '๊ฐ 30์ด ๋์ ์ด๋ฆฐ ํธ๋์ญ์ ์ด ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ
check_postgres_txn_time --port-5432 --warning=30s --includeuser=์จ์ดํ์ฐ์ค
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ํธ๋์ญ์ ์ด ์ด๋ฆฐ ์ต๋ ์๊ฐ(์ด)์ ๋ฐํํฉ๋๋ค.
์ฒซ์งธ ์ค. ๋ค ๋ฒ์งธ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ ์ ๊ณตํฉ๋๋ค.
txn_wraparound
("symlink: check_postgres_txn_wraparound") ํธ๋์ญ์ ๋ฉ์ด๋ผ์ด๋ XNUMX์ ์ผ๋ง๋ ๊ฐ๊น์ด์ง ํ์ธํฉ๋๋ค.
๋๋ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ๋ณดํ๊ณ ์์ต๋๋ค. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ์ซ์๋ฅผ ๋ํ๋ ๋๋ค
์๋ฃ๋ ํธ๋์ญ์ ์ ์์ด๋ฉฐ ์์ ์ ์์ฌ์ผ ํฉ๋๋ค. ๋ ์ค ํ๋์ ์ต์ ์ด ์ ๊ณต๋์ง ์์ผ๋ฉด
๊ธฐ๋ณธ๊ฐ 1.3์ต๊ณผ 1.4์ต์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ช ๋ น์ ๋ ์ด์ ์คํํ ํ์๊ฐ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋น ํ ๋ฒ ์ด์. ์ด ์ซ์์ ๋ํ ์์ธํ ์ค๋ช ์
ํ์ํ๊ณ ์ด์ ๋ํด ์ํํ ์์ ์ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ์ญ์์ค.
<http://www.postgresql.org/docs/current/static/routine-vacuuming.html#ํฌ์ฅ์ฉ ์ง๊ณต>
๊ฒฝ๊ณ ๋ฐ ์๊ณ๊ฐ์๋ Perl๊ณผ ๊ฐ์ด ๊ฐ๋ ์ฑ์ ์ํด ์ซ์์ ๋ฐ์ค์ด ์์ ์ ์์ต๋๋ค.
์์ต๋๋ค.
์ 1: localhost ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ๊ฐ ํ์ธ
check_postgres_txn_wraparound --ํธ์คํธ=๋ก์ปฌํธ์คํธ
์ 2: ํฌํธ 6000์ ํ์ธํ๊ณ 1.7์ต ํธ๋์ญ์ ์ ๋๋ฌํ๋ฉด ์๊ณ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
check_postgres_txn_wraparound --port=6000 --critical=1_700_000_000
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ XNUMXํ์ ๋ชจ๋ โโ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํด ๊ฐ์ฅ ๋์ ํธ๋์ญ์ ์๋ฅผ ๋ฐํํฉ๋๋ค.
4ํ์ ๊ทธ๊ฒ์ด ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ์ง๋ฅผ ๋ํ๋ ๋๋ค.
๋ฒ์
("symlink: check_postgres_version") Postgres์ ํ์ ๋ฒ์ ์ด ๋ค์์ธ์ง ํ์ธํฉ๋๋ค.
๋ฌ๋ฆฌ๊ธฐ. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ (ํ๋๋ง ํ์)์ ๋ค์ ํ์์ด์ด์ผ ํฉ๋๋ค.
XY or XYZ ์ด๋์ X ๋ ์ฃผ ๋ฒ์ ๋ฒํธ์ด๋ฉฐ, Y ๋ ๋ถ ๋ฒ์ ๋ฒํธ์ด๋ฉฐ Z is
๊ฐ์ .
์ 1: ํฌํธ 5678์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฒ์ 8.4.10์ด ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_version --port=5678 -w=8.4.10
์ 2: ๊ณ๊ณก, ๊ณก๋ฌผ ๋๋ ์ผ์กฐ ํธ์คํธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ 8.3์ด ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
check_postgres_version -H ๊ณ๊ณก, ๊ณก๋ฌผ, ํ๋น --critical=8.3
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์ค์์ ์ฑ๊ณต ๋๋ ์คํจ๋ฅผ ๋ํ๋ด๋ 1 ๋๋ 0์ ๋ณด๊ณ ํฉ๋๋ค. NS
๋ค ๋ฒ์งธ ์ค์ ํ์ฌ ๋ฒ์ ์ ๋ํ๋ ๋๋ค. ๋ฒ์ ์ "--mrtg"๋ฅผ ํตํด ์ ๊ณต๋์ด์ผ ํฉ๋๋ค.
์ต์ ์ ์ ํํฉ๋๋ค.
wal_files
("symlink: check_postgres_wal_files") ํ์ผ์ WAL ํ์ผ์ด ๋ช ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. pg_xlog
๋๋ ํ ๋ฆฌ์์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ, ๋๋ก๋ ๋ค๋ฅธ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ก
์ฑ๋ฅ์์ ์ด์ ๋ก ๋ฌผ๋ฆฌ์ ๋์คํฌ. ์ด ์์ ์ ์ํผ์ ์ ๋ก ์คํํด์ผ ํฉ๋๋ค.
์ ๋ด์ฉ์ ์ก์ธ์ค pg_xlog ์๋ฐฐ ๊ท์น์. ์ด ์์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ต์ ๋ฒ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํฌ์คํธ๊ทธ๋ ์ค 8.1. NS --๊ฒฝ๊ณ and --๋นํ์ ์ธ ์ต์ ์ ๋จ์ํ ํ์ผ์ ์์ ๋๋ค.
pg_xlog ์๋ฐฐ ๊ท์น์. ์ด๊ฒ์ ์ค์ ํ๋ ์ซ์๋ ๋ค์ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ง์นจ์
๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ํฌ์ฐฉํ๊ธฐ ์ํด ํ์๋ณด๋ค ์ฝ๊ฐ ๋์ ์ซ์์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก WAL ํ์ผ์ ๋ซํ์ ์ฌ์ฌ์ฉ๋์ง๋ง ์ฅ๊ธฐ ์คํ๋๋ ์ด๋ฆฐ ํธ๋์ญ์ ๋๋
๊ฒฐํจ ์์นด์ด๋ธ ๋ช ๋ น ์คํฌ๋ฆฝํธ๋ก ์ธํด Postgres๊ฐ ๋๋ฌด ๋ง์ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก,
์ด๋ก ์ธํด ๋์คํฌ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ๊ฒ ๋๋ฉฐ ์ด ์์ ์์ Postgres๋
๋ฅ์ณ
์ 1: "pluto" ํธ์คํธ์์ WAL ํ์ผ ์๊ฐ 20๊ฐ ์ดํ์ธ์ง ํ์ธ
check_postgres_wal_files --host=pluto --์ค์=20
MRTG ์ถ๋ ฅ์ ๊ฒฝ์ฐ 1ํ์ WAL ํ์ผ ์๋ฅผ ๋ณด๊ณ ํฉ๋๋ค.
์ฌ๊ตฌ์ถ_symlinks
์ฌ๊ตฌ์ถ_symlinks_force
์ด ์์ ์ ๋ค๋ฅธ ์ธ์๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ์ง ์๊ณ ๋จ์ํ
๊ฐ ์์ ์ ๋ํด ํ์ฌ ๋๋ ํ ๋ฆฌ์ ๋ค์ ํ์์ผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์์ฑํฉ๋๋ค.
check_postgres_. ํ์ผ์ด ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ๋ฎ์ด์ฐ์ง ์์ต๋๋ค. ๋ง์ฝ์
์์ ์ด rebuild_symlinks_force์ด๋ฉด ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋ฎ์ด์๋๋ค. ์ต์
--symlinks๋ --action=rebuild_symlinks๋ฅผ ๋ ์งง๊ฒ ํํํ ๊ฒ์ ๋๋ค.
BASIC ํํฐ๋ง
์ต์ --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค ๊ฒ์ฌํ ํญ๋ชฉ์ ์ ํํ๊ธฐ ์ํด ๊ฒฐํฉํ ์ ์์ต๋๋ค.
ํ๋์ ๋ฐ๋ผ. ๋ค์์ ์ฌ์ฉํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ํํฐ๋งํ ์ ์์ต๋๋ค.
์์ : ๋ฐฑ์๋, 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 ์์ ์ ์ฌ์ฉํ ๋ ํ์ผ ์์คํ ์ ์ด๋ฆ์ ํํฐ๋งํ ์ ์์ต๋๋ค.
ํฌํจ ์ต์ ๋ง ์ ๊ณต๋๋ฉด ์ผ์นํ๋ ํญ๋ชฉ๋ง ํ์ธ๋ฉ๋๋ค.
๋จ, ์ ์ธ์ ํฌํจ์ด ๋ชจ๋ ์ฃผ์ด์ง๋ฉด ์ ์ธ๋ฅผ ๋จผ์ ํ๊ณ ํฌํจ์ ์ํจ๋ค.
ํ์ ์ ์ธ๋์์ ์ ์๋ ๊ฒ์ ๋ณต์ํฉ๋๋ค. ๋ ๋ค --ํฌํจํ๋ค and --๋ค์ด์ค์ง ๋ชปํ๊ฒ ํ๋ค
์ฌ๋ฌ ๋ฒ ์ ๊ณต๋๊ฑฐ๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ์ ํ ๋ฌผ๊ฒฐํ๊ฐ ์ผ์นํฉ๋๋ค.
๋ค์ ๋จ์ด๋ฅผ ์ ๊ท์์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์คํค๋ง๋ฅผ ์ผ์น์ํค๋ ค๋ฉด ๊ฒ์์ด๋ฅผ ๋ง์นจํ ํ๋๋ก ๋๋ด์ญ์์ค. ์ ํ ๋ฌผ๊ฒฐํ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์คํค๋ง์ ๋ํด์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
ํํฐ๋ง์ ์ฌ์ฉํ ๋ ์ฃผ์ํ์ญ์์ค. ์๋ฅผ ๋ค์ด ๋ฐฑ์๋์ ํฌํจ ๊ท์น์
์ผ์นํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐฑ์๋๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ณด๊ณ ๋์ง ์์ ๋ฟ๋ง ์๋๋ผ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์ฒ ์๊ฐ ํ๋ ธ์ต๋๋ค!
์ :
pg_class๋ผ๋ ์ด๋ฆ์ ํญ๋ชฉ๋ง ํ์ธํฉ๋๋ค.
--include=pg_class
'pg_' ๋ฌธ์๊ฐ ํฌํจ๋ ํญ๋ชฉ๋ง ํ์ธํฉ๋๋ค.
--ํฌํจ=~ํ์ด์ง_
'pg_'๋ก ์์ํ๋ ํญ๋ชฉ๋ง ํ์ธ:
--ํฌํจ=~^pg_
'test'๋ผ๋ ํญ๋ชฉ์ ์ ์ธํฉ๋๋ค.
--์ ์ธ=ํ ์คํธ
'test:' ๋ฌธ์๊ฐ ํฌํจ๋ ๋ชจ๋ ํญ๋ชฉ ์ ์ธ:
--exclude=~ํ ์คํธ
์คํค๋ง 'pg_catalog'์ ๋ชจ๋ ํญ๋ชฉ์ ์ ์ธํฉ๋๋ค.
--exclude='pg_catalog.'
'ace' ๋ฌธ์๊ฐ ํฌํจ๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ์ธํ์ง๋ง 'faceoff' ํญ๋ชฉ์ ํ์ฉํฉ๋๋ค.
--exclude=~ace --include=ํ์ด์ค์คํ
'slon' ๋ฌธ์๊ฐ ํฌํจ๋ 'pg_' ๋ฌธ์๋ก ์์ํ๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ์ธํ๊ฑฐ๋
์ด๋ฆ์ 'sql_settings' ๋๋ 'green'์ ๋๋ค. ๋ฌธ์๊ฐ ์๋ ํญ๋ชฉ์ ๊ตฌ์ฒด์ ์ผ๋ก ํ์ธํ์ญ์์ค.
์ด๋ฆ์ 'prod'๋ฅผ ํฌํจํ๊ณ ํญ์ 'pg_relname'์ด๋ผ๋ ํญ๋ชฉ์ ํ์ธํ์ธ์.
--exclude=~^pg_,~slon,sql_settings --exclude=green --include=~prod,pg_relname
USER ์ด๋ฆ ํํฐ๋ง
์ต์ --ํฌํจ ์ฌ์ฉ์ and --์ ์ธ ์ฌ์ฉ์ ์ผ๋ถ ์์ ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ ๋ช ์ด์์ ์ฌ์ฉ์๊ฐ ์์ ํ(๋๋ ์์ ํ์ง ์์) ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด. NS --ํฌํจ ์ฌ์ฉ์ option
ํญ์ ์ด๊ธด๋ค --์ ์ธ ์ฌ์ฉ์ ์ต์ . ๊ฐ ์ต์ ์ ๋ํด ๋ ๋ฒ ์ด์ ๋ถ์ฌํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ์ฌ์ฉ์ ๋๋ ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํ์ฌ ์ฌ์ฉ ์ค์ธ ์์
์ด๋ฌํ ์ต์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํฌ๊ธฐ
๋ง์ง๋ง_๋ถ์
last_autoanalyze
last_vacuum
last_autovacuum
์ฟผ๋ฆฌ ์๊ฐ
๊ด๊ณ ํฌ๊ธฐ
txn_time
์ :
greg๋ผ๋ ์ฌ์ฉ์๊ฐ ์์ ํ ํญ๋ชฉ๋ง ํ์ธํ์ญ์์ค.
--includeuser=๊ทธ๋
watson ๋๋ crick์ด ์์ ํ ํญ๋ชฉ๋ง ํ์ธํ์ญ์์ค.
--includeuser=์์จ, ํฌ๋ฆญ
crick, franklin, watson ๋๋ Wilkins๊ฐ ์์ ํ ํญ๋ชฉ๋ง ํ์ธํ์ญ์์ค.
--includeuser=watson --includeuser=franklin --includeuser=crick, Wilkins
์ฌ์ฉ์ scott์ ์ํ ํญ๋ชฉ์ ์ ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ํ์ธํ์ญ์์ค.
--excludeuser=์ค์ฝง
TEST ๋ชจ๋
์ค์ ์ ๋๊ธฐ ์ํด ์ด ํ๋ก๊ทธ๋จ์ ๋ค์์ ์ง์ ํ์ฌ "ํ ์คํธ ๋ชจ๋"์์ ์คํํ ์ ์์ต๋๋ค.
--์ํ ์ต์ . ์ด๋ ๊ฒ ํ๋ฉด ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ํ ์คํธ๋ฅผ ์ํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ
์ฌ์ฉ์๊ฐ
์ํผ์ ์ , Postgres ๋ฒ์ ์ด ์ถฉ๋ถํ ์ ๋ฒ์ ์ด๊ณ stats_row_level์ด ํ์ฑํ๋ ๊ฒฝ์ฐ.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์์ check_postgres_slony_statusp ์ฌ์ฉ