لانچر مصنوعات Bitnami دستاویزاتimaxe CLI بلاگ رابطہ
imaxe memcached کیش v1.1.0

فائلوں کو چھوئے بغیر اپنا کیش چلائیے

آپ کے انسٹینس کے لیے موزوں کیش کا حجم، تھریڈز اور کنکشنز شمار کر کے لاگو کرتا ہے، SASL اسناد اور TLS سرٹیفکیٹ سنبھالتا ہے، اور سروس کی حالت براہِ راست دکھاتا ہے — وہ بھی memcached.conf کو ہاتھ سے ترمیم کیے بغیر۔

$ imaxe memcached status
ورژن
v1.1.0
ذیلی کمانڈز
9
کنفیگ
/etc/imaxe/memcached.yml
root درکار
جی ہاں
پورٹس
11211 TLS · 11212 local

یہ ماڈیول کیا کرتا ہے #

Memcached ایک ٹیکسٹ فائل اور چند فلیگز سے ترتیب پاتا ہے: کتنی RAM دی جائے، کتنے تھریڈ، کتنے کنکشن۔ درست اعداد انسٹینس کے حجم پر منحصر ہیں، اور غلطی مہنگی پڑتی ہے — یا تو کیش کم پڑ جاتا ہے یا وہ RAM کھا جاتے ہیں جو نظام کو درکار ہے۔

memcached ماڈیول یہ سب اور سروس کے گرد کی ہر چیز سنبھالتا ہے: مشین کی حقیقی RAM سے ٹیوننگ شمار کرتا ہے، SASL اسناد سنبھالتا ہے (اس امیج میں لازمی)، پہلے بوٹ پر بننے والا TLS سرٹیفکیٹ برقرار رکھتا ہے —وہ کبھی AMI میں پکایا نہیں جاتا— اور سروس کے اعداد و شمار کے ساتھ براہِ راست حالت دیتا ہے۔

شروع کرنے سے پہلے

جو کمانڈز اسناد پڑھتی ہیں یا ترتیب بدلتی ہیں انہیں root درکار ہے (sudo استعمال کریں)۔ optimize سے محتاط رہیں: نئی قدریں لاگو کرنے پر سروس دوبارہ چلتی ہے، اور دوبارہ چلنے سے کیش خالی ہو جاتا ہے۔ اگر خود دوبارہ چلانا چاہیں تو --no-restart دیں۔

فوری رہنماقدم بہ قدم کام

فوری رہنما #

جو کرنا ہے منتخب کیجیے۔ ہر نسخے میں کمانڈ پہلے سے لکھی ہے — کاپی کریں اور کاپی کریں دبائیں۔

1

سروس کی حالت دیکھیں

ایک نظر میں دیکھیں کہ کیش ٹھیک ہے اور کون سی ٹیوننگ لاگو ہے۔

ubuntu صارف کے ساتھ SSH کے ذریعے اپنے انسٹینس سے جُڑیں۔

حالت پوچھیں: نظر آئے گا کن پورٹس پر سن رہا ہے، TLS اور SASL فعال ہیں یا نہیں، لاگو ٹیوننگ اور براہِ راست اعداد و شمار (زیرِ استعمال میموری، آئٹمز، ہٹس اور مسز):

terminal
$ sudo imaxe memcached status

ڈیش بورڈ یا اسکرپٹ کے لیے چاہیے؟ --json شامل کریں:

terminal
$ sudo imaxe memcached status --json
اگر hits بڑھتا رہے اور evictions کم رہے تو کیش کا حجم درست ہے۔ اگر اخراج بڑھ جائیں تو کیش کا حجم ایڈجسٹ کریں پر جائیں۔
2

کیش سے جُڑیں

صارف، پاس ورڈ اور پورٹ حاصل کریں تاکہ اپنی ایپلیکیشن وہاں جوڑ سکیں۔

یہ امیج SASL لازمی کرتی ہے: گمنام رسائی نہیں۔ اِس انسٹینس کی اسناد مانگیں (پاس ورڈ چھپا ہوا آتا ہے):

terminal
$ sudo imaxe memcached credentials

جب واقعی کاپی کرنا ہو تو اسے کھلا دکھائیں:

terminal
$ sudo imaxe memcached credentials --show-password
پورٹ 11211 TLS پر چلتا ہے؛ 11212 سادہ متن ہے اور صرف loopback پر سنتا ہے، نظام کے اپنے اوزاروں کے لیے۔ 11211 کو انٹرنیٹ پر نہ کھولیں: اپنے VPC کے CIDR کے لیے کھولیں۔
3

کیش کا حجم ایڈجسٹ کریں

مشین کے اصل حجم کے مطابق میموری، تھریڈ اور کنکشن دوبارہ شمار کریں۔

پہلے دیکھیں کیا قدریں نکلیں گی، کچھ بدلے بغیر:

terminal
$ sudo imaxe memcached optimize --show

پسند آئیں تو لاگو کریں۔ سروس دوبارہ چلے گی اور کیش خالی ہو جائے گا:

terminal
$ sudo imaxe memcached optimize

زیادہ کیش اور نظام کے لیے کم گنجائش چاہیے؟ RAM کا فیصد بڑھائیں:

terminal
$ sudo imaxe memcached optimize --memory-pct 75
--dry-run کے ساتھ وہ کنفیگریشن بلاک بھی نظر آتا ہے جو لکھا جاتا۔ اور --no-restart سے دوبارہ چلائے بغیر لاگو ہوتا ہے: نئی قدریں اگلے بوٹ پر اثر کریں گی۔
4

SASL صارف بنائیں

اپنی ایپلیکیشنز کی اسناد بنائیں، بدلیں یا مٹائیں۔

SASL ڈیٹابیس میں موجود صارفین کی فہرست دیکھیں:

terminal
$ sudo imaxe memcached users list

ہر ایپلیکیشن کے لیے ایک بنائیں، بے ترتیب پاس ورڈ کے ساتھ:

terminal
$ sudo imaxe memcached users add app1

کوئی مخصوص پاس ورڈ چاہیے؟ اسے معیاری ان پٹ سے دیں تاکہ وہ ps یا شیل کی تاریخ میں نہ آئے:

terminal
$ sudo imaxe memcached users add app1 --stdin
کسی صارف کا پاس ورڈ بدلنے کے لیے: imaxe memcached users rotate <صارف>۔ نام نہ دیں تو مصنوعے کے صارف کا بدلتا ہے۔
5

TLS سرٹیفکیٹ جانچیں

میعاد جانچیں اور انسٹینس کا سرٹیفکیٹ تجدید کریں۔

سرٹیفکیٹ ہر انسٹینس کے پہلے بوٹ پر بنتا ہے، اس لیے مشینوں کے درمیان کبھی مشترک نہیں ہوتا۔ جو زیرِ استعمال ہے وہ دیکھیں:

terminal
$ sudo imaxe memcached tls show

جب چاہیں تجدید کریں، خواہ موجودہ اب بھی درست ہو:

terminal
$ sudo imaxe memcached tls renew --force
یہ طویل میعاد کا خود دستخط شدہ سرٹیفکیٹ ہے۔ آپ کے کلائنٹ کو اس پر بھروسہ کرنا ہوگا یا اس کا SHA-256 فنگر پرنٹ جانچنا ہوگا، جو tls show چھاپتا ہے۔
چل نہیں رہا، یا سند نہیں مل رہی؟

سند اور سرٹیفکیٹ ہر بوٹ پر instance-setup بناتا ہے، جسے systemd پکارتا ہے۔ اگر کوئی کمانڈ 65 کوڈ لوٹائے تو اُس انسٹینس نے اپنا پہلا بوٹ مکمل نہیں کیا: کچھ بدلنے سے پہلے sudo systemctl status memcached دیکھیں۔

CLI حوالہکمانڈز، فلیگز اور فائلیں

خلاصہ #

استعمال
imaxe memcached <ذیلی کمانڈ> [flags]

تقریباً ہر ذیلی کمانڈ کو root درکار ہے (sudo دیں) کیونکہ وہ SASL ڈیٹابیس، سرٹیفکیٹ یا سروس کی ترتیب پڑھتی ہیں۔ مشین کے پڑھنے کے قابل نتیجے کے لیے status، credentials، users list یا tls show کے ساتھ --json دیں۔

ذیلی کمانڈز #

ذیلی کمانڈکیا کرتی ہےمتعلقہ فلیگز
optimizeاس انسٹینس کے لیے بہترین کیش حجم، تھریڈ اور کنکشن شمار کر کے لاگو کرتا ہے۔--memory-pct --dry-run --show --no-restart
statusسروس کی حالت: سننے والے، TLS، SASL، لاگو ٹیوننگ اور براہِ راست اعداد و شمار۔--json
credentialsاس انسٹینس کی SASL اسناد اور جُڑنے کا طریقہ دکھاتا ہے۔--json --show-password
usersSASL صارفین سنبھالتا ہے: list، add، rotate اور delete۔--password --stdin --json
set-passwordپروڈکٹ کے SASL صارف کا پاس ورڈ بدلتا ہے۔ users rotate کا مختصر طریقہ۔--random --stdin
open-portہوسٹ فائر وال (ufw) میں memcached پورٹ کھولتا ہے۔--cidr --json
close-portہوسٹ فائر وال میں پورٹ بند کرتا ہے اور موجود قواعد ہٹا دیتا ہے۔--json
tlsاس انسٹینس کا TLS سرٹیفکیٹ: show اور renew۔--force --json
instance-setupسروس چلنے سے پہلے انسٹینس تیار کرتا ہے۔ ہر بوٹ پر systemd اسے پکارتا ہے۔--bake

آرگیومنٹس اور فلیگز #

فلیگقسمطے شدہتفصیل
--memory-pctint60optimize میں: قابلِ استعمال RAM کا وہ فیصد جو کیش کو ملتا ہے۔
--reserve-mem-mbint512optimize میں: MB میں وہ RAM جسے چھوا نہیں جاتا، نظام اور باقی سروسز کے لیے محفوظ۔
--threadsint0optimize میں: کام کرنے والے تھریڈ۔ 0 انہیں CPU کی تعداد سے اخذ کرتا ہے۔
--max-connectionsint0optimize میں: بیک وقت کنکشن۔ 0 انہیں کیش کے حجم سے اخذ کرتا ہے۔
--dry-runboolfalseoptimize میں: کچھ نہیں لکھتا؛ قدریں اور وہ کنفیگریشن بلاک دکھاتا ہے جو لاگو ہوتا۔
--showboolfalseoptimize میں: صرف شمار کی گئی قدریں چھاپتا ہے۔
--no-restartboolfalseoptimize میں: ترتیب لکھتا ہے مگر سروس دوبارہ نہیں چلاتا۔ دوبارہ چلنے سے کیش خالی ہوتا ہے۔
--passwordstringusers add/rotate میں: مخصوص پاس ورڈ۔ نہ دیں تو بے ترتیب بنتا ہے۔
--stdinboolfalseusers add/rotate میں: پاس ورڈ معیاری ان پٹ سے پڑھتا ہے، تاکہ وہ ps یا تاریخ میں نظر نہ آئے۔
--show-passwordboolfalsecredentials میں: پاس ورڈ کھلا چھاپتا ہے۔ طے شدہ طور پر چھپا رہتا ہے۔
--forceboolfalsetls renew میں: موجودہ سرٹیفکیٹ درست اور اسی انسٹینس کا ہونے پر بھی دوبارہ بناتا ہے۔
--randomboolfalseset-password میں: مضبوط پاس ورڈ بنا کر ایک ہی بار دکھاتا ہے۔
--cidrstringopen-port میں: قاعدے کو اسی ماخذ تک محدود کرتا ہے۔ اس کے بغیر ہر ماخذ کی اجازت ہے۔
--jsonboolfalseنتیجہ منظم JSON کے طور پر stdout پر دیتا ہے۔

فائلیں اور راستے #

راستہمواد
/etc/imaxe/memcached.ymlماڈیول کی ترتیب: سروس، راستے، اور optimize، TLS اور SASL کی طے شدہ قدریں۔
/etc/memcached.confmemcached کی ترتیب۔ اسے optimize لکھتا ہے: ہاتھ سے ترمیم نہ کریں۔
/etc/systemd/system/memcached.service.d/systemd drop-in، جس میں ماڈیول کے لاگو کردہ آغاز کے پیرامیٹرز ہوتے ہیں۔
/etc/memcached/tls/اِس انسٹینس کا سرٹیفکیٹ اور نجی کلید، پہلے بوٹ پر بنے۔
/etc/sasl2/memcached-sasldb2SASL ڈیٹابیس، صارفین اور اُن کے پاس ورڈز کے ساتھ۔

memcached.yml کی مثال:

/etc/imaxe/memcached.yml
service: memcached
port: 11211
optimize:
  memory_pct: 60
  memory_min_mb: 64
  reserve_mem_mb: 512
  threads: 0
  max_connections: 0
tls:
  enabled: true
  days: 3650
  plain_local_port: 11212
sasl:
  enabled: true
  user: memcached

ایگزٹ کوڈز اور لاگز #

ہر چلن ایک کوڈ لوٹاتا ہے جسے آپ echo $? سے دیکھ سکتے ہیں — اسکرپٹ میں جوڑنے کے لیے مفید:

0OKکام کامیابی سے مکمل ہوا۔
1ERRغیر درجہ بند عام خرابی۔ لاگ دیکھیں۔
2USAGEغلط آرگیومنٹس یا ذیلی کمانڈ۔
64NOMEMCACHEDاس مشین پر memcached نصب نہیں ہے۔
65NOSECRETایسی سند مانگی گئی جو اس انسٹینس نے ابھی بنائی نہیں۔
66NOUFW‏اس مشین پر ufw دستیاب نہیں ہے۔

کام کرتے ہوئے سروس کو براہِ راست دیکھیں:

terminal
$ sudo systemctl status memcached
$ sudo journalctl -u memcached -f

مسائل کا حل #

علامتممکنہ وجہحل
NOSECRET آتا ہے (کوڈ 65)انسٹینس نے پہلا بوٹ مکمل نہیں کیا، اور سند تبھی بنتی ہے۔sudo systemctl status memcached جانچیں اور دوبارہ کوشش کریں۔
NOMEMCACHED آتا ہے (کوڈ 64)ماڈیول نصب ہے مگر میزبان پر memcached نہیں۔آپ مصنوعے والی امیج پر نہیں ہیں: memcached نصب کریں یا درست AMI استعمال کریں۔
status میں بہت سے evictionsجو رکھ رہے ہیں اُس کے لیے کیش چھوٹا ہے: جگہ بنانے کو آئٹمز نکالے جاتے ہیں۔optimize --memory-pct سے فیصد بڑھائیں یا زیادہ RAM والے انسٹینس پر جائیں۔
کیش اچانک خالی نظر آتا ہےسروس دوبارہ چلی ہے، اور memcached ڈسک پر کچھ محفوظ نہیں رکھتا۔optimize کے بعد معمول ہے۔ دوبارہ چلائے بغیر لاگو کرنے کو --no-restart دیں۔
کلائنٹ سرٹیفکیٹ مسترد کرتا ہےیہ خود دستخط شدہ ہے اور ہر انسٹینس کا اپنا۔اپنے کلائنٹ میں اس پر بھروسہ کریں یا tls show سے فنگر پرنٹ جانچیں۔

کیا Memcached ماڈیول کے ساتھ اٹک گئے ہیں؟

«imaxe <module> status --json» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔

سپورٹ سے رابطہ کریں