منبع اصلی نوشتار زیر در این لینک قرار دارد

بررسی کارایی دیتابیس PostgreSQL با نرم افزار PgHero

monitoring

 

ابزارها و نرم افزارهای گوناگونی جهت مانیتورینگ و بررسی کارایی دیتابیس 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 بر روی آن می باشد را بنویسید.
  • به جای ۵۴۳۲ که پورت پیشفرض سرویس 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

 

نکته اینکه بجای ۳۰۰۱ می توان پورت مورد نظر خود را بنویسید.اکنون باید پورت تعیین شده را بر روی دیوار آتش باز کنید که به عنوان نمونه بر روی دیوار آتش 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\ استفاده کنید.یک نمونه از اجرای دستورهای گفته شده به همراه خروجی را در تصویر پایین مشاهده می کنید :

pghero

 

سپس این دستور را اجرا کنید :

CREATE INDEX ON "pghero_query_stats" ("database", "captured_at");

یک نمونه از اجرای دستور گفته شده به همراه خروجی را در تصویر پایین مشاهده می کنید :

 

 

 

pghero

 

اکنون از کنسول postgresql مربوط به کاربر hos7ein خارج شوید و سپس به کاربر postgres سوئیچ کنید :

 

 

#su – postgres

اکنون به دیتابیس hos7eindb وصل شوید :

 

 

$psql -d hos7eindb

اکنون جهت ساخت extension با نام pg_stat_statements این دستور را اجرا کنید :

 

 

 

CREATE extension pg_stat_statements;

 

 

جهت بررسی کار می توانید از دستور dx\ استفاده کنید.یک نمونه از اجرای دستور گفته شده به همراه خروجی آن را در تصویر پایین مشاهده می کنید :

 

 

 

pghero

 

 

اکنون کافیست تا یکبار سرویس pghero را restart کنید :

 

 

 

#systemctl start pghero

 

 

 

اضافه کردن دیتابیس های دیگر :

 

برای اینکه بتوانید چند دیتابیس را مانیتور و بررسی کنید کافیست تا یم فایل با نام pghero.yml ایجاد کنید :

 

#vi pghero.yml

سپس این خطوط را درون آن بنویسید :

 

pghero

 

 

 

نکته اینکه مقادیر را بر اساس نام و مشخصات دیتابیس های خود باید بنویسید.سپس این دستور را اجرا کنید :

 

#cat pghero.yml | pghero run sh -c "cat > config/pghero.yml"

 

نکته ی دیگری که باید به آن توجه کنید این است که مراحل مربوط به Historical Query Stats را برای دیتابیس جدید و هر دیتابیسی که اضافه می کنید را باید انجام دهید.

 

سپس یکبار سرویس pghero را restart کنید :

 

#systemctl restart pghero

 

در ادامه تصاویری از پنل نرم افزار pghero را مشاهده می کنید :

 

pghero

 

 

pghero

 

 

pghero

 

امید است تا از این مطلب استفاده لازم را ببرید.

 

 



برچسب ها : , , , , , , , , , , , , , , , , , , , , ,