أوامر وسير عمل 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 |
أفضل الممارسات
الأمان