تخطَّ إلى المحتوى

كونسول

أوامر وسير عمل HashiCorp Consul الشاملة لاكتشاف الخدمات وإدارة التكوين وشبكة الخدمات.

التثبيت والإعداد

أمروصف
consul versionأظهر إصدار Consul
consul agent -devابدأ وكيل التطوير
consul agent -config-dir=/etc/consul.dابدأ بالتكوين
consul membersقائمة أعضاء العنقود
consul infoعرض معلومات الوكيل

إدارة الوكيل

العمليات الأساسية للوكيل

أمروصف
consul agent -server -bootstrap-expect=3ابدأ وكيل الخادم
consul agent -client=0.0.0.0ابدأ وكيل العميل
consul join 192.168.1.100انضم إلى العنقود
consul leaveالمغادرة بأناقة من العنقود
consul reloadإعادة تحميل التكوين

تكوين الوكيل

أمروصف
consul validate /etc/consul.dتحقق من الإعداد
consul configtestإعداد الاختبار

اكتشاف الخدمات

تسجيل الخدمات

أمروصف
consul services register service.jsonتسجيل الخدمة من الملف
consul services deregister service-idإلغاء تسجيل الخدمة
consul catalog servicesقائمة جميع الخدمات
consul catalog nodesقائمة جميع العقد

استعلامات الخدمات

أمروصف
consul catalog service webقائمة حالات الخدمة
consul catalog service web -tag productionتصفية حسب الوسم
consul health service webحالة فحص الصحة
consul health node node1حالة صحة العقدة

واجهة DNS

أمروصف
dig @127.0.0.1 -p 8600 web.service.consulاستعلام الخدمة عبر DNS
dig @127.0.0.1 -p 8600 web.service.dc1.consulاستعلام مركز بيانات محدد
dig @127.0.0.1 -p 8600 node1.node.consulاستعلام العقدة عبر DNS

مخزن المفاتيح والقيم

عمليات المفاتيح والقيم

أمروصف
consul kv put config/database/url "postgresql://..."تخزين المفتاح-القيمة
consul kv get config/database/urlاسترجاع القيمة
consul kv get -recurse config/احصل على جميع المفاتيح تحت البادئة
consul kv delete config/database/urlمفتاح الحذف
consul kv delete -recurse config/احذف جميع المفاتيح تحت البادئة

عمليات المفاتيح والقيم المتقدمة

أمروصف
consul kv put -cas -modify-index=123 config/app/version "2.0"تحديث شرطي
consul kv get -detailed config/app/versionاحصل على البيانات الوصفية
consul kv export config/تصدير المفاتيح
consul kv import @backup.jsonاستيراد المفاتيح

فحوصات الصحة

إدارة فحوصات الصحة

أمروصف
consul health checksقائمة جميع الفحوصات الصحية
consul health checks webقائمة فحوصات الخدمة
consul health state criticalقائمة الفحوصات الحرجة
consul health state passingقائمة الفحوصات الناجحة

قوائم التحكم في الوصول (ACLs)

إدارة قوائم التحكم في الوصول

أمروصف
consul acl bootstrapنظام التحكم بالوصول Bootstrap
consul acl token create -description="Web service token"إنشاء رمز
consul acl token listقائمة الرموز
consul acl token delete TOKEN_IDاحذف الرمز

سياسات قوائم التحكم في الوصول

أمروصف
consul acl policy create -name web-policy -rules @policy.hclإنشاء سياسة
consul acl policy listقائمة السياسات
consul acl policy read web-policyاقرأ السياسة
consul acl policy update -id POLICY_ID -rules @new-policy.hclتحديث السياسة

Connect (شبكة الخدمات)

تكوين Connect

أمروصف
consul connect ca get-configاحصل على تكوين CA
consul connect ca set-config -config-file ca.jsonتعيين تكوين CA
consul connect proxy -service webابدأ وكيل Connect

النوايا

أمروصف
consul intention create web dbالسماح للويب بالاتصال بقاعدة البيانات
consul intention create -deny web cacheمنع الويب من التخزين المؤقت
consul intention listقائمة جميع النوايا
consul intention delete web dbحذف النية

إدخالات التكوين

تكوين الخدمة

أمروصف
consul config write service-defaults.hclاكتب الإعدادات الافتراضية للخدمة
consul config write proxy-defaults.hclاكتب الإعدادات الافتراضية للوكيل
consul config list -kind service-defaultsقائمة التكوينات
consul config read -kind service-defaults -name webاقرأ التكوين
consul config delete -kind service-defaults -name webاحذف التكوين

اللقطات والنسخ الاحتياطية

عمليات اللقطات

أمروصف
consul snapshot save backup.snapإنشاء لقطة
consul snapshot restore backup.snapاستعادة لقطة
consul snapshot inspect backup.snapافحص اللقطة

المراقبة وتصحيح الأخطاء

أوامر المراقبة

أمروصف
consul monitorسجلات التدفق
consul monitor -log-level=DEBUGسجلات مستوى التصحيح
consul debugجمع معلومات التصحيح
consul operator raft list-peersقائمة نظراء Raft

الأداء

أمروصف
consul operator autopilot get-configاحصل على تكوين التحكم التلقائي
consul operator autopilot set-config -cleanup-dead-servers=trueضبط تكوين التحكم التلقائي

أمثلة التكوين

تكوين الخادم

datacenter = "dc1"
data_dir = "/opt/consul"
log_level = "INFO"
node_name = "consul-server-1"
server = true
bootstrap_expect = 3
retry_join = ["10.0.1.10", "10.0.1.11"]

bind_addr = "10.0.1.10"
client_addr = "0.0.0.0"

ui_config \\\\{
  enabled = true
\\\\}

connect \\\\{
  enabled = true
\\\\}

acl = \\\\{
  enabled = true
  default_policy = "deny"
  enable_token_persistence = true
\\\\}

تكوين العميل```hcl

datacenter = “dc1” data_dir = “/opt/consul” log_level = “INFO” node_name = “consul-client-1” retry_join = [“10.0.1.10”, “10.0.1.11”, “10.0.1.12”]

bind_addr = “10.0.1.20” client_addr = “127.0.0.1”

services \\{ name = “web” port = 80 tags = [“production”, “v1.0”]

check \\{ http = “http://localhost:80/health” interval = ”10s” \\} \\}

### تعريف الخدمة
```json
\\\\{
  "service": \\\\{
    "name": "web",
    "port": 80,
    "tags": ["production"],
    "check": \\\\{
      "http": "http://localhost:80/health",
      "interval": "10s"
    \\\\},
    "connect": \\\\{
      "sidecar_service": \\\\{\\\\}
    \\\\}
  \\\\}
\\\\}

سياسة التحكم بالوصول (ACL)

node_prefix "" \\\\{
  policy = "read"
\\\\}

service_prefix "" \\\\{
  policy = "read"
\\\\}

service "web" \\\\{
  policy = "write"
\\\\}

key_prefix "config/web/" \\\\{
  policy = "write"
\\\\}

session_prefix "" \\\\{
  policy = "read"
\\\\}

إعداد شبكة الخدمات

الإعدادات الافتراضية للوكيل

Kind = "proxy-defaults"
Name = "global"

Config \\\\{
  protocol = "http"
\\\\}

MeshGateway \\\\{
  Mode = "local"
\\\\}

الإعدادات الافتراضية للخدمة

Kind = "service-defaults"
Name = "web"

Protocol = "http"

MeshGateway \\\\{
  Mode = "local"
\\\\}

Expose \\\\{
  Checks = true
  Paths = [
    \\\\{
      Path = "/health"
      LocalPathPort = 8080
      ListenerPort = 21500
    \\\\}
  ]
\\\\}

إعداد متعدد مراكز البيانات

الاتحاد عبر الشبكة الواسعة (WAN)

أمروصف
consul join -wan 192.168.2.10انضم إلى WAN
consul members -wanقائمة أعضاء WAN
consul catalog datacentersقائمة مراكز البيانات

الاستعلامات عبر مراكز البيانات

أمروصف
consul catalog service web -datacenter dc2خدمة الاستعلام في DC2
dig @127.0.0.1 -p 8600 web.service.dc2.consulاستعلام DNS إلى DC2

استكشاف الأخطاء وإصلاحها

المشاكل الشائعة

أمروصف
consul operator raft list-peersتحقق من حالة عنقود Raft
consul debug -duration=30sجمع معلومات التصحيح
consul validate /etc/consul.dتحقق من الإعداد
consul members -detailedمعلومات العضو المفصلة

تحليل السجلات

أمروصف
consul monitor -log-level=TRACEتسجيل المستوى التتبعي
journalctl -u consul -fاتبع سجلات systemd

أفضل الممارسات

الأمان