ابزارها و نرم افزارهای گوناگونی جهت مانیتورینگ و بررسی کارایی دیتابیس PostgreSQL وجود دارد که در این مطلب قصد دارم تا نرم افزار PgHero را به شما دوستان معرفی کنم و نحوه ی نصب و پیکربندی آن را جهت مانیتورینگ و بررسی کارایی دیتابیس های PostgreSQL آموزش دهم.
PgHero یک نرم افزار تحت وب می باشد که با در اختیار گذاشتن یک پنل می توان کارایی دیتابیس PostgreSQL را مورد ارزیابی قرار داد.
نصب PgHero بر روی CentOS 7.x :
ابتدا مخزن PgHero را نصب کنید :
#wget -O /etc/yum.repos.d/pghero.repo https://dl.packager.io/srv/pghero/pghero/master/installer/el/7.repo
اکنون کافیست تا بسته ی pghero را نصب کنید :
#yum install pghero
نصب PgHero بر روی CentOS 6.x :
ابتدا مخزن PgHero را نصب کنید :
#wget -O /etc/yum.repos.d/pghero.repo https://dl.packager.io/srv/pghero/pghero/master/installer/el/6.repo
اکنون کافیست تا بسته ی pghero را نصب کنید :
#yum install pghero
اکنون باید دیتابیس خود را جهت مانیتورینگ و بررسی کارایی به PgHero اضافه کنید که شکل کلی دستور آن به شکل زیر می باشد :
#pghero config:set DATABASE_URL=postgres://user:password@hostname:5432/dbname
- بجای user و password باید نام کاربری و گذرواژه ی که مالک دیتابیس است را بنویسید.
- بجای hostname باید نام دامنه یا IP ماشینی که PostgrSQL بر روی آن می باشد را بنویسید.
- به جای 5432 که پورت پیشفرض سرویس PostgreSQL می باشد باید پورت سرویس PostgreSQL را بنویسید.
- بجای dbname باید نام دیتابیس را بنویسید.
برای تعیین نام کاربری و گذر واژه برای دسترسی به پنل وب pgHero این دستورها را اجرا کنید :
#pghero config:set PGHERO_USERNAME=hos7ein
#pghero config:set PGHERO_PASSWORD=mypassword
اکنون جهت start کردن PgHero و تعیین پورت برای پنل وب آن این دستورها را اجرا کنید :
#pghero config:set PORT=3001
#pghero config:set RAILS_LOG_TO_STDOUT=disabled
#pghero scale web=1
نکته اینکه بجای 3001 می توان پورت مورد نظر خود را بنویسید.اکنون باید پورت تعیین شده را بر روی دیوار آتش باز کنید که به عنوان نمونه بر روی دیوار آتش FirewallD باید این دستورها را اجرا کرد :
# firewall-cmd --zone=public --add-port=3001/tcp # firewall-cmd --zone=public --add-port=3001/tcp --permanent
جهت بررسی فعال شدن سرویس PgHero می توانید این دستور را در خط فرمان اجرا کنید :
#curl -v http://localhost:3001/
یا اینکه می توانید این آدرس را در در یک مرورگر وب وارد کنید :
http://[server-ip]:3001
پیکربندی برای Historical Query Stats :
اکنون جهت پیکربندی Historical Query Stats باید فایل تنظیمات سرویس PostgreSQL را باز کنید که این مسیر با توجه به نسخه نصب شده بر روی سیستم شما ممکن است متفاوت باشد :
#vi /var/lib/pgsql/9.4/data/postgresql.conf
سپس این خطوط را به انتهای فایل اضافه کنید :
shared_preload_libraries = 'pg_stat_statements' pg_stat_statements.track = all pg_stat_statements.max = 10000 track_activity_query_size = 2048
اکنون سرویس postgresql را یکبار restart کنید :
#systemctl restart postgresql-9.4.service
اکنون فرض کنید ما دیتابیسی با نام hos7eindb داریم که کاربر hos7ein مالک آن می باشد.در این مرحله با کاربر hos7ein به دیتابیس hos7eindb وصل شوید :
# psql -U hos7ein -d hos7eindb
اکنون این دستور را اجرا کنید :
CREATE TABLE "pghero_query_stats" ( "id" serial primary key, "database" text, "user" text, "query" text, "query_hash" bigint, "total_time" float, "calls" bigint, "captured_at" timestamp );
جهت بررسی کار می توانید از دستور dt\ استفاده کنید.یک نمونه از اجرای دستورهای گفته شده به همراه خروجی را در تصویر پایین مشاهده می کنید :
سپس این دستور را اجرا کنید :
CREATE INDEX ON "pghero_query_stats" ("database", "captured_at");
یک نمونه از اجرای دستور گفته شده به همراه خروجی را در تصویر پایین مشاهده می کنید :
اکنون از کنسول postgresql مربوط به کاربر hos7ein خارج شوید و سپس به کاربر postgres سوئیچ کنید :
#su – postgres
اکنون به دیتابیس hos7eindb وصل شوید :
$psql -d hos7eindb
اکنون جهت ساخت extension با نام pg_stat_statements این دستور را اجرا کنید :
CREATE extension pg_stat_statements;
جهت بررسی کار می توانید از دستور dx\ استفاده کنید.یک نمونه از اجرای دستور گفته شده به همراه خروجی آن را در تصویر پایین مشاهده می کنید :
اکنون کافیست تا یکبار سرویس pghero را restart کنید :
#systemctl start pghero
اضافه کردن دیتابیس های دیگر :
برای اینکه بتوانید چند دیتابیس را مانیتور و بررسی کنید کافیست تا یم فایل با نام pghero.yml ایجاد کنید :
#vi pghero.yml
سپس این خطوط را درون آن بنویسید :
نکته اینکه مقادیر را بر اساس نام و مشخصات دیتابیس های خود باید بنویسید.سپس این دستور را اجرا کنید :
#cat pghero.yml | pghero run sh -c "cat > config/pghero.yml"
نکته ی دیگری که باید به آن توجه کنید این است که مراحل مربوط به Historical Query Stats را برای دیتابیس جدید و هر دیتابیسی که اضافه می کنید را باید انجام دهید.
سپس یکبار سرویس pghero را restart کنید :
#systemctl restart pghero
در ادامه تصاویری از پنل نرم افزار pghero را مشاهده می کنید :
امید است تا از این مطلب استفاده لازم را ببرید.