1. مقدمة
توفّر Looker (الإصدار الأساسي من Google Cloud) عملية مبسّطة وسلسة لتوفير وضبط وإدارة مثيل Looker من خلال وحدة تحكّم Google Cloud. يمكن أيضًا تنفيذ بعض مهام إدارة المثيل من وحدة التحكّم.
تتوفّر ثلاثة إعدادات شبكة لمثيلات Looker (نظام Google Cloud Core):
- عام: يستخدم الاتصال بالشبكة عنوان IP خارجيًا يمكن الوصول إليه من الإنترنت.
- خاص: يستخدم اتصال الشبكة عنوان IP داخليًا لشبكة سحابة إلكترونية خاصة افتراضية (VPC) مستضافة على Google.
- عام وخاص: يستخدم اتصال الشبكة كلاً من عنوان IP العام وعنوان IP الخاص، حيث سيتم توجيه حركة البيانات الواردة عبر عنوان IP عام وسيتم توجيه حركة البيانات الصادرة عبر عنوان IP خاص.
في البرنامج التعليمي، ستنشر شبكة خاصة شاملة من البداية إلى النهاية لتفعيل اتصال Looker بشبكة سحابة إلكترونية خاصة افتراضية (VPC) على موقع إلكتروني باستخدام شبكة VPN ذات التوفّر العالي (HA) التي يمكن تكرارها لتلبية متطلباتك للاتصال بخدمات متعددة على السحابة الإلكترونية وعلى الموقع الإلكتروني.
تتيح أداة Looker (الإصدار الأساسي من Google Cloud) عناوين IP الخاصة للمثيلات التي تستوفي المعايير التالية:
- يجب أن تكون إصدارات النُسخ من Enterprise أو Embed.
ما الذي ستنشئه
في هذا الدليل التعليمي، ستُنشئ عملية نشر شاملة لشبكة Looker الخاصة في شبكة سحابة إلكترونية خاصة افتراضية (VPC) مستقلة تتضمّن اتصالاً مختلطًا بخدمات متعددة من السحابة الإلكترونية والشبكات الداخلية.
عليك إعداد شبكة VPC باسم on-prem-vpc
لتمثيل بيئة داخل الشركة. ولن تتوفّر شبكة vpc داخل الشركة لعملية النشر، بل سيتم استخدام شبكة مختلطة مع مركز البيانات داخل الشركة أو مقدّم خدمات السحابة الإلكترونية.
في ما يلي الخطوات الرئيسية للدليل التعليمي.
- إنشاء شبكة VPC مستقلة في us-central1
- تخصيص شبكة فرعية لعنوان IP للوصول إلى الخدمة الخاصة
- نشر نسخة Looker في شبكة VPC المستقلة
- إنشاء نموذج vpc على مقر الشركة والشبكات المختلطة
- الإعلان عن نطاق عناوين IP لمنصة Looker والتحقّق من صحته من خلال بروتوكول BGP
- دمج بيانات Looker وPostgresql والتحقّق من صحتها
Figure1
المُعطيات
- طريقة إنشاء شبكة VPC وشبكات مختلَطة مرتبطة بها
- كيفية نشر Looker في إصدار افتراضي مستقل (vPC)
- طريقة إنشاء ملف شخصي افتراضي داخل الشركة وشبكة مختلَطة مرتبطة به
- اربط vpc في مقر الشركة مع إحصاءات vps عبر شبكة VPN عالية التوفّر
- كيفية الإعلان عن الشبكات الفرعية في Looker عبر الشبكات المختلطة
- كيفية مراقبة البنية الأساسية للشبكات المختلطة
- كيفية دمج قاعدة بيانات Postgresql مع Looker Cloud Core
المتطلبات
- مشروع Google Cloud
أذونات "إدارة الهوية وإمكانية الوصول"
2. قبل البدء
تعديل المشروع ليتلاءم مع البرنامج التعليمي
يستخدم هذا البرنامج التعليمي $variables للمساعدة في تنفيذ تهيئة gcloud في Cloud Shell.
في Cloud Shell، نفِّذ ما يلي:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3- إعداد سحابة VPC
إنشاء analytics-vpc
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks create analytics-vpc --project=$projectid --subnet-mode=custom
إنشاء حدث on-prem-vpc
في Cloud Shell، نفِّذ ما يلي:
gcloud compute networks create on-prem-vpc --project=$projectid --subnet-mode=custom
إنشاء الشبكة الفرعية لقاعدة بيانات Postgresql
داخل Cloud Shell، يمكنك تنفيذ ما يلي:
gcloud compute networks subnets create database-subnet-us-central1 --project=$projectid --range=172.16.10.0/27 --network=on-prem-vpc --region=us-central1
إعداد Cloud Router وNAT
يتم استخدام Cloud NAT في البرنامج التعليمي الخاص بتثبيت حِزمة البرامج لأنّ مثيل الجهاز الافتراضي لقاعدة البيانات لا يحتوي على عنوان IP خارجي.
داخل Cloud Shell، أنشئ Cloud Router.
gcloud compute routers create on-prem-cr-us-central1-nat --network on-prem-vpc --region us-central1
في Cloud Shell، أنشئ بوابة NAT.
gcloud compute routers nats create on-prem-nat-us-central1 --router=on-prem-cr-us-central1-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
إنشاء مثيل اختبار قاعدة البيانات
إنشاء مثيل لقاعدة بيانات postgres-database سيتم استخدامه لاختبار الاتصال بمنصة Looker والتحقّق من صحته
أنشئ المثيل داخل Cloud Shell.
gcloud compute instances create postgres-database \
--project=$projectid \
--zone=us-central1-a \
--machine-type=e2-medium \
--subnet=database-subnet-us-central1 \
--no-address \
--image=projects/ubuntu-os-cloud/global/images/ubuntu-2304-lunar-amd64-v20230621 \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt -y install postgresql postgresql-client postgresql-contrib -y"
إنشاء قواعد جدار الحماية
للسماح لعمليات الشراء داخل التطبيق بالاتصال بمثيلات الأجهزة الافتراضية، أنشِئ قاعدة جدار حماية تعمل على:
- ينطبق على جميع مثيلات الأجهزة الافتراضية التي تريد الوصول إليها باستخدام ميزة "الشراء داخل التطبيق".
- يسمح بالزيارات الواردة من نطاق IP 35.235.240.0/20. يحتوي هذا النطاق على جميع عناوين IP التي تستخدمها IAP لإعادة توجيه بروتوكول TCP.
من Cloud Shell
gcloud compute firewall-rules create on-prem-ssh \
--network on-prem-vpc --allow tcp:22 --source-ranges=35.235.240.0/20
4. الوصول إلى الخدمات الخاصة
إنّ الوصول إلى الخدمات الخاصة هو اتصال خاص بين شبكة VPC وشبكة مملوكة لشركة Google أو جهة خارجية. تُعرف أيضًا Google أو الجهات الخارجية التي تقدّم الخدمات باسم منتجي الخدمات. Looker Cloud Core هو منتج خدمة.
يتيح الاتصال الخاص لأجهزة VM في شبكة VPC والخدمات التي تصل إليها إمكانية التواصل حصريًا باستخدام عناوين IP الداخلية.
على مستوى عالٍ، لاستخدام الوصول إلى الخدمات الخاصة، عليك تخصيص نطاق عنوان IP (كتلة CIDR) في شبكة VPC ثم إنشاء اتصال خاص بمنتج الخدمة.
تخصيص نطاق عنوان IP للخدمات
قبل إنشاء اتصال خاص، يجب تخصيص نطاق عناوين IPv4 لاستخدامه من قِبل شبكة VPC لمقدّم الخدمة. يضمن ذلك عدم حدوث تضارب في عنوان IP بين شبكة VPC الخاصة بك وشبكة منتج الخدمة.
عند تخصيص نطاق في شبكة VPC، لا يكون هذا النطاق مؤهَّلاً للشبكات الفرعية (النطاقات الأساسية والثانوية) ووجهات المسارات الثابتة المخصّصة.
لا يُتاح استخدام نطاقات عناوين IPv6 مع الوصول إلى الخدمات الخاصة.
يمكنك تفعيل Service Networking API لمشروعك في وحدة التحكّم في Google Cloud. عند تفعيل واجهة برمجة التطبيقات، قد تحتاج إلى إعادة تحميل صفحة وحدة التحكّم للتأكّد من تفعيلها.
إنشاء عملية تخصيص لعنوان IP
لتحديد نطاق عنوان وطول بادئة (قناع الشبكة الفرعية)، استخدم العناوين وعلامات طول البادئة. على سبيل المثال، لتخصيص كتلة CIDR 192.168.0.0/22، حدد 192.168.0.0 للعنوان و22 لطول البادئة.
في Cloud Shell، أنشئ عملية تخصيص عنوان IP لخدمة Looker.
gcloud compute addresses create psa-range-looker \
--global \
--purpose=VPC_PEERING \
--addresses=192.168.0.0 \
--prefix-length=22 \
--description="psa range for looker" \
--network=analytics-vpc
داخل Cloud Shell، تحقَّق من صحة تخصيص عنوان IP.
gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
مثال:
userl@cloudshell$ gcloud compute addresses list --global --filter="purpose=VPC_PEERING"
NAME: psa-range-looker
ADDRESS/RANGE: 192.168.0.0/22
TYPE: INTERNAL
PURPOSE: VPC_PEERING
NETWORK: analytics-vpc
REGION:
SUBNET:
STATUS: RESERVED
إنشاء اتصال خاص
بعد إنشاء نطاق مخصّص، يمكنك إنشاء اتصال خاص بمنتِج الخدمة، Looker Cloud Core. يُنشئ الاتصال الخاص اتصال تبادل المعلومات بين شبكات VPC بين شبكة VPC وشبكة VPC بعد إنشاء نسخة Looker.
الاتّصالات الخاصة هي علاقة بين شخصين بين شبكة VPC ومنتج خدمة. إذا كان منتِج الخدمة الواحد يقدم خدمات متعددة، فستحتاج فقط إلى اتصال خاص واحد لجميع خدمات المنتِج.
إذا اتصلت بالعديد من منتجي الخدمات، استخدم تخصيصًا فريدًا لكل منتج خدمة. تساعدك هذه الممارسة في إدارة إعدادات الشبكة، مثل المسارات وقواعد جدار الحماية، لكل منتج خدمة.
في Cloud Shell، أنشئ اتصالاً خاصًا، وسجِّل اسم العملية.
gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
مثال:
user@cloudshell$ gcloud services vpc-peerings connect \
--service=servicenetworking.googleapis.com \
--ranges=psa-range-looker \
--network=analytics-vpc
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
في Cloud Shell، تحقّق ممّا إذا كانت العملية ناجحة، واستبدِل OPERATION_NAME بالاسم الذي تم إنشاؤه في الخطوة السابقة.
gcloud services vpc-peerings operations describe \
--name=OPERATION_NAME
مثال:
user@cloudshell$ gcloud services vpc-peerings operations describe \
--name=operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea
Operation "operations/pssn.p24-1049481044803-f16d61ba-7db0-4516-b525-cd0be063d4ea" finished successfully.
5- إنشاء مثيل Looker (الإصدار الأساسي من Google Cloud)
قبل البدء
فعِّل واجهة برمجة التطبيقات Looker API لمشروعك في Google Cloud Console. عند تفعيل واجهة برمجة التطبيقات، قد تحتاج إلى إعادة تحميل صفحة وحدة التحكّم لتأكيد أنّه تم تفعيلها.
إعداد عميل OAuth للمصادقة على المثيل والوصول إليه
في القسم التالي، ستحتاج إلى استخدام معرّف وسر عميل OAuth لإنشاء نسخة Looker.
إنّ مصادر JavaScript المعتمَدة ومعرّفات الموارد المنتظمة (URI) لإعادة التوجيه غير مطلوبة.
داخل Cloud Console، يمكنك إنشاء مثيل استنادًا إلى لقطات الشاشة المقدّمة.
انتقِل إلى LOOKER ← إنشاء مثيل
املأ معرّف عميل OAuth وسرّه اللذَين تم إنشاؤهما سابقًا.
انقر على إنشاء.
أثناء إنشاء المثيل، ستتم إعادة توجيهك إلى صفحة المثيلات في وحدة التحكّم. قد تحتاج إلى إعادة تحميل الصفحة للاطّلاع على حالة المثيل الجديد. يمكنك أيضًا الاطّلاع على نشاط إنشاء المثيل من خلال النقر على رمز الإشعارات في قائمة وحدة تحكّم Google Cloud. أثناء إنشاء المثيل، سيكون رمز الإشعارات في قائمة Google Cloud Console محاطًا برمز تحميل.
بعد إنشاء نسخة Looker، يتم إنشاء عنوان URL للمثيل. دوِّن عنوان URL.
6- تعديل معرِّف عميل OAuth 2.0
في القسم التالي، عليك تعديل معرِّف عميل OAuth الذي تم إنشاؤه مسبقًا، وهو معرِّف الموارد المنتظم (URI) المُصرَّح به لإعادة التوجيه من خلال إلحاق /oauth2callback
بعنوان URL للمثيل.
بعد الانتهاء، يمكنك استخدام عنوان URL للمثيل لتسجيل الدخول إلى واجهة مستخدم Looker.
في Cloud Console، انتقِل إلى APIs & SERVICES (واجهات برمجة التطبيقات والخدمات) → CREDENTIALS (بيانات الاعتماد).
اختَر معرِّف عميل Oauth 2.0 وعدِّل عنوان URL للوحدة، كما هو موضّح أدناه:
7- التحقّق من إمكانية الوصول إلى Looker
في Cloud Console، انتقِل إلى Looker واختَر عنوان URL للنسخة الافتراضية الذي سيفتح واجهة مستخدم Looker.
بعد الإطلاق، ستظهر لك الصفحة المقصودة وفقًا لقطة الشاشة أدناه التي تؤكّد إمكانية وصولك إلى Looker Cloud Core.
8. الاتصال المختلط
في القسم التالي، ستنشئ "جهاز توجيه السحابة الإلكترونية" الذي يمكّنك من تبادل المسارات ديناميكيًا بين السحابة الإلكترونية الخاصة الافتراضية (VPC) وشبكة التطبيقات المشابهة باستخدام بروتوكول بوابة الحدود (BGP).
يمكن لتطبيق Cloud Router إعداد جلسة BGP عبر نفق Cloud VPN لربط شبكاتك. ويتعرّف تلقائيًا على نطاقات عناوين IP الجديدة للشبكة الفرعية ويعلن عنها لشبكة النظير.
في الدليل التعليمي، ستنشر شبكة VPN الخاصة بجودة عالية بين analytics-vpc وon-prem-vpc لتوضيح الاتصال الخاص بمنصة Looker.
أنشئ شبكة VPN الخاصة بالشبكات عالية الكثافة لـ analytics-vpc
عند إنشاء كل بوابة، يتم تخصيص عنوانَي IPv4 خارجيَين تلقائيًا، أحدهما لكل واجهة بوابة. دوِّن عناوين IP هذه لاستخدامها لاحقًا في خطوات الضبط.
داخل Cloud Shell، يمكنك إنشاء شبكة VPN بمعايير HA VPN
gcloud compute vpn-gateways create analytics-vpn-gw \
--network=analytics-vpc\
--region=us-central1
إنشاء بوابة VPN ذات التوفّر المرتفع لـ on-prem-vpc
عند إنشاء كل بوابة، يتم تخصيص عنوانَي IPv4 خارجيَين تلقائيًا، أحدهما لكل واجهة بوابة. دوِّن عناوين IP هذه لاستخدامها لاحقًا في خطوات الضبط.
في Cloud Shell، أنشئ بوابة VPN لتوفير إمكانية التوفّر العالية.
gcloud compute vpn-gateways create on-prem-vpn-gw \
--network=on-prem-vpc\
--region=us-central1
التحقّق من إنشاء GW لشبكة VPN HA
باستخدام وحدة التحكّم، انتقِل إلى "الاتصال الهجين" ← شبكة VPN ← بوابات شبكة VPN في السحابة الإلكترونية.
إنشاء Cloud Router لـ analytics-vpc
داخل Cloud Shell، أنشئ Cloud Router الذي يقع في us-central1
gcloud compute routers create analytics-cr-us-central1 \
--region=us-central1 \
--network=analytics-vpc\
--asn=65001
إنشاء Cloud Router لجهاز كمبيوتر vpc على شبكة الشركة
داخل Cloud Shell، أنشئ Cloud Router في المنطقة us-central1.
gcloud compute routers create on-prem-cr-us-central1 \
--region=us-central1 \
--network=on-prem-vpc \
--asn=65002
إنشاء أنفاق شبكة VPN لـ analytics-vpc
ستحتاج إلى إنشاء نفقَين لشبكة VPN على كل مدخل شبكة VPN باتصال HA.
إنشاء نفق شبكة VPN0
داخل Cloud Shell، أنشئ نفقًا 0:
gcloud compute vpn-tunnels create analytics-vpc-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 0
إنشاء نفق شبكة VPN1
داخل Cloud Shell، أنشئ النفق tunnel1:
gcloud compute vpn-tunnels create analytics-vpc-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router analytics-cr-us-central1 \
--vpn-gateway analytics-vpn-gw \
--interface 1
إنشاء أنفاق VPN لشبكة VPC على الموقع
ستُنشئ نفقَين لشبكة VPN على كل بوابة شبكة VPN لتوفير إمكانية التوفّر العالية.
إنشاء نفق شبكة VPN0
داخل Cloud Shell، أنشئ نفقًا 0:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [ZzTLxKL8fmRykwNDfCvEFIjmlYLhMucH] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 0
إنشاء نفق شبكة VPN1
داخل Cloud Shell، أنشئ النفق tunnel1:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway analytics-vpn-gw \
--region us-central1 \
--ike-version 2 \
--shared-secret [bcyPaboPl8fSkXRmvONGJzWTrc6tRqY5] \
--router on-prem-cr-us-central1 \
--vpn-gateway on-prem-vpn-gw \
--interface 1
التحقّق من إنشاء نفق شبكة VPN
باستخدام وحدة التحكّم، انتقِل إلى HYBRID CONNECTIVITY ← شبكة VPN ← CLOUD VPN TUNNELS.
9. إنشاء جيران BGP
إنشاء جلسات BGP
في هذا القسم، يمكنك ضبط واجهات Cloud Router وأقران BGP.
إنشاء واجهة BGP وربط لشبكة analytics-vpc
داخل Cloud Shell، أنشئ واجهة BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel0-to-onprem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel0 \
--region us-central1
في Cloud Shell، أنشئ نظير BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel0 \
--interface if-tunnel1-to-onprem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region us-central1
داخل Cloud Shell، أنشئ واجهة BGP:
gcloud compute routers add-interface analytics-cr-us-central1 \
--interface-name if-tunnel1-to-onprem \
--ip-address 169.254.2.1 \
--mask-length 30 \
--vpn-tunnel analytics-vpc-tunnel1 \
--region us-central1
داخل Cloud Shell، أنشئ نظير BGP:
gcloud compute routers add-bgp-peer analytics-cr-us-central1 \
--peer-name bgp-on-premises-tunnel1 \
--interface if-tunnel2-to-onprem \
--peer-ip-address 169.254.2.2 \
--peer-asn 65002 \
--region us-central1
إنشاء واجهة BGP وربط لشبكة vpc على الموقع
داخل Cloud Shell، أنشئ واجهة BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel0-to-analytics-vpc \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region us-central1
في Cloud Shell، أنشئ نظير BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel0 \
--interface if-tunnel1-to-analytics-vpc \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region us-central1
داخل Cloud Shell، أنشئ واجهة BGP:
gcloud compute routers add-interface on-prem-cr-us-central1 \
--interface-name if-tunnel1-to-analytics-vpc \
--ip-address 169.254.2.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region us-central1
داخل Cloud Shell، أنشئ نظير BGP:
gcloud compute routers add-bgp-peer on-prem-cr-us-central1 \
--peer-name bgp-analytics-vpc-tunnel1\
--interface if-tunnel2-to-analytics-vpc \
--peer-ip-address 169.254.2.1 \
--peer-asn 65001 \
--region us-central1
انتقِل إلى الاتصال المختلط → شبكة VPN للاطّلاع على تفاصيل نفق شبكة VPN.
التحقّق من صحة المسارات التي تم رصدها استنادًا إلى إحصاءات VPC عبر شبكة VPN عالية التوفّر
نظرًا لأنه يتم إنشاء أنفاق شبكة VPN وجلسات BGP، يتم تعلم المسارات من vpc على الموقع من analytics-vpc. باستخدام وحدة التحكّم، انتقِل إلى شبكة VPC → شبكات VPC → analytics-vpc → ROUTES → REGION → us-central1 → VIEW.
لاحظ أن analytics-vpc قد تعلم المسارات من on-prem-vpcDatabase-subnet-us-central1 172.16.10.0/27
تأكَّد من أنّ vPC لم يتعلّم المسارات من خلال شبكة VPN العالية الدقة.
لا تحتوي شبكة analytics-vpc على شبكة فرعية، وبالتالي لن يعلن "راوتر السحابة الإلكترونية" عن أي شبكات فرعية لشبكة on-prem-vpc. باستخدام وحدة التحكّم، انتقِل إلى شبكة VPC → شبكات VPC → شبكة VPC على الموقع الجغرافي → المسارات → المنطقة → us-central1 → عرض.
10. الإعلان عن شبكة Looker الفرعية لاستخدامها في مقر الشركة
لا يتم الإعلان تلقائيًا عن الشبكة الفرعية لميزة "الوصول إلى الخدمة الخاصة" (PSA) في Looker من خلال جهاز توجيه السحابة الإلكترونية analytics-cr-us-central1 لأنّ الشبكة الفرعية تم تعيينها إلى PSA وليس إلى VPC.
ستحتاج إلى إنشاء إعلان مسار مخصّص من analytics-cr-central1 للشبكة الفرعية لخدمة الخدمة العامة 192.168.0.0/22 (psa-range-looker) لأنّه سيتم الإعلان عنه في البيئة الداخلية واستخدامه من خلال أحمال العمل للوصول إلى Looker.
من وحدة التحكّم، انتقِل إلى HYBRID CONNECTIVITY ← CLOUD ROUTERS ← analytics-cr-us-central1، ثم انقر على تعديل.
في قسم "المسارات المُعلَن عنها"، حدِّد الخيار إنشاء مسارات مخصّصة، وعدِّل الحقول بناءً على المثال أدناه، واختَر تم، ثم انقر على حفظ.
11. التحقّق من أنّ شبكة vpc على الموقع الإلكتروني قد تعرّفت على شبكة Looker الفرعية
سيتمكّن الآن vpc on-prem-vpc من الوصول إلى الشبكة الفرعية لإعلانات الخدمة العامة في Looker لأنّه تم الإعلان عنه من analytics-cr-us-central1 كإعلان مسار مخصّص.
باستخدام وحدة التحكّم، انتقِل إلى VPC NETWORK ← VPC NETWORKS ← on-prem-vpc ← ROUTES ← المنطقة ← us-central1 ← عرض
راقِب مسارات Looker التي يتم الإعلان عنها من analytics-vpc:
12. التحقّق من صحة عملية تبادل المعلومات الحالية بين شبكات VPC
يتم الربط بين Looker Cloud Core وanalytics-vpc من خلال تبادل المعلومات بين شبكات VPC، ما يسمح بتبادل المسارات المخصّصة التي تم تعلُّمها من خلال BGP. في البرنامج التعليمي، يجب أن تنشر شبكة analytics-vpc المسارات التي تعلّمتها شبكة on-prem-vpc في Looker. لتفعيل هذه الوظيفة، تتطلّب ربط شبكات VPC تحديثًا لتصدير المسارات المخصّصة.
التحقق من صحة المسارات المستورَدة والمُصدَّرة الحالية.
انتقِل إلى VPC NETWORK ← VPC NETWORK PEERING ← servicenetworking-googleapis-com.
توضّح لقطة الشاشة أدناه تفاصيل Analytics-vpc الذي يستورد أداة psa-range-looker من شبكة VPC المُدارة من قِبل Google، وservicenetworking.
يؤدي اختيار "المسارات التي تم تصديرها" إلى إلغاء تصدير أيّ مسارات إلى شبكة VPC المشابهة، وذلك لأنّه 1) لم يتم ضبط الشبكات الفرعية في analytics-vpc 2) لم يتم اختيار تصدير المسارات المخصّصة.
13. تعديل ميزة "تبادل المعلومات بين شبكات VPC"
انتقِل إلى VPC NETWORK ← VPC NETWORK PEERING ← servicenetworking-googleapis-com ← تعديل
انقر على تصدير مسارات مخصّصة ← حفظ.
14. التحقّق من صحة تبادل المعلومات المعدَّل بين شبكات VPC
التحقق من صحة المسارات التي تم تصديرها.
انتقِل إلى شبكة VPC → تبادل المعلومات بين شبكات VPC → servicenetworking-googleapis-com.
يكشف خيار "مسارات مقترَحة" عن مسارات vPC المتوفّرة في الشركة (الشبكة الفرعية لقاعدة البيانات 172.16.10.0/27) التي يتم تصديرها إلى شبكة VPC التي تستضيف Looker من خلال analytics-vpc.
15. إنشاء قاعدة بيانات postgres في Looker
في القسم التالي، ستستخدم بروتوكول SSH للوصول إلى قاعدة بيانات postgres الافتراضية باستخدام Cloud Shell.
داخل Cloud Shell، يمكنك تنفيذ ssh على مثيل قاعدة بيانات postgres-data**.**
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
داخل نظام التشغيل، حدِّد ولاحظ عنوان IP (ens4) لمثيل postgres-database.
ip a
مثال:
user@postgres-database:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc mq state UP group default qlen 1000
link/ether 42:01:ac:10:0a:02 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 172.16.10.2/32 metric 100 scope global dynamic ens4
valid_lft 84592sec preferred_lft 84592sec
inet6 fe80::4001:acff:fe10:a02/64 scope link
valid_lft forever preferred_lft forever
داخل نظام التشغيل، سجِّل الدخول إلى postgresql.
sudo -u postgres psql postgres
أدخِل كلمة المرور داخل نظام التشغيل.
\password postgres
داخل نظام التشغيل، اضبط كلمة المرور على postgres (أدخِل كلمة المرور نفسها مرّتين).
postgres
مثال:
user@postgres-database:~$ sudo -u postgres psql postgres
\password postgres
psql (13.11 (Debian 13.11-0+deb11u1))
Type "help" for help.
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
داخل نظام التشغيل، يُرجى الخروج من postgres.
\q
مثال:
postgres=# \q
user@postgres-database:~$
في القسم التالي، ستُدخِل عنوان IP لمثيل قاعدة بيانات postgres والشبكة الفرعية لـ Looker Private Google Access (192.168.0.0/22) في ملف pg_hba.conf ضمن اتصالات IPv4 المحلية وفقًا لقطة الشاشة أدناه:
sudo nano /etc/postgresql/15/main/pg_hba.conf
في القسم التالي، ألغِ تعليق postgresql.conf للاستماع إلى جميع عناوين IP "*" حسب لقطة الشاشة أدناه:
sudo nano /etc/postgresql/15/main/postgresql.conf
قبل:
بعد:
داخل نظام التشغيل، أعِد تشغيل خدمة postgresql.
sudo service postgresql restart
داخل نظام التشغيل، تحقق من أن حالة postgresql نشطة.
sudo service postgresql status
مثال:
داخل نظام التشغيل، تحقق من أن حالة postgresql نشطة.
user@postgres-database$ sudo service postgresql status
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Sat 2023-07-01 23:40:59 UTC; 7s ago
Process: 4073 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 4073 (code=exited, status=0/SUCCESS)
CPU: 2ms
Jul 01 23:40:59 postgres-database systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Jul 01 23:40:59 postgres-database systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
16. إنشاء قاعدة بيانات postgres
في القسم التالي، ستنشئ قاعدة بيانات postgres باسم postgres_looker والمخطط looker_schema المستخدَم للتحقّق من إمكانية اتصال Looker بقاعدة البيانات على الموقع.
داخل نظام التشغيل، قم بتسجيل الدخول إلى postgres.
sudo -u postgres psql postgres
داخل نظام التشغيل، قم بإنشاء قاعدة البيانات.
create database postgres_looker;
داخل نظام التشغيل، أدخِل قاعدة البيانات.
\l
داخل نظام التشغيل، إنشاء عارض المستخدم باستخدام عارض كلمات المرور
create user postgres_looker with password 'postgreslooker';
داخل نظام التشغيل، اتصل بقاعدة البيانات.
\c postgres_looker;
داخل نظام التشغيل، أنشئ المخطط looker-schema وانتقِل إلى موجه Cloud Shell.
create schema looker_schema;
create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
exit
مثال:
user@postgres-database$ sudo -u postgres psql postgres
psql (15.3 (Ubuntu 15.3-0ubuntu0.23.04.1))
Type "help" for help.
postgres=# create database postgres_looker;
CREATE DATABASE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------------+----------+----------+---------+---------+------------+-----------------+-----------------------
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
postgres_looker | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc |
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(4 rows)
postgres=# create user postgres_looker with password 'postgreslooker';
CREATE ROLE
postgres=# \c postgres_looker;
You are now connected to database "postgres_looker" as user "postgres".
postgres_looker=# create schema looker_schema;
CREATE SCHEMA
postgres_looker=# create table looker_schema.test(firstname CHAR(15), lastname CHAR(20));
CREATE TABLE
postgres_looker=# exit
اخرج من نظام التشغيل، للرجوع إلى Cloud Shell.
\q
exit
17. إنشاء جدار حماية في on-prem-vpc
في القسم التالي، أنشئ جدار حماية للدخول مع تسجيل يتيح للشبكة الفرعية في Looker التواصل مع مثيل قاعدة بيانات Postgres.
من Cloud Shell، أنشئ جدار حماية VPC في الشركة.
gcloud compute --project=$projectid firewall-rules create looker-access-to-postgres --direction=INGRESS --priority=1000 --network=on-prem-vpc --action=ALLOW --rules=all --source-ranges=192.168.0.0/22 --enable-logging
18 إنشاء نظام أسماء نطاقات خاص في analytics-vpc
على الرغم من أنّ Looker يتم نشره في شبكة VPC مُدارة من Google، إلا أنّ الوصول إلى نظام أسماء النطاقات الخاص بـ analytics-vpc متاح من خلال الربط مع شبكة الخدمات.
في القسم التالي، ستنشئ منطقة نظام أسماء نطاقات خاصة في analytics-vpc وتتألف من سجل A لمثيل postgres-database باسم النطاق المؤهل بالكامل (postgres.analytics.com)
وعنوان IP.)
من Cloud Shell، أنشئ المنطقة الخاصة analytics.com.
gcloud dns --project=$projectid managed-zones create gcp-private-zone --description="" --dns-name="analytics.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/analytics-vpc"
من Cloud Shell، حدِّد عنوان IP لمثيل قاعدة بيانات postgres.
gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
مثال:
user@cloudshell$ gcloud compute instances describe postgres-database --zone=us-central1-a | grep networkIP:
networkIP: 172.16.10.2
من Cloud Shell، أنشئ سجلّ A، وتأكّد من إضافة عنوان IP المحدّد سابقًا.
gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="your-postgres-database-ip"
مثال:
user@cloudshell$ gcloud dns --project=$projectid record-sets create postgres.analytics.com. --zone="gcp-private-zone" --type="A" --ttl="300" --rrdatas="172.16.10.2"
NAME: postgres.analytics.com.
TYPE: A
TTL: 300
DATA: 172.16.10.2
من Cloud Shell، يمكنك إضافة إضافة نطاقات خادم أسماء النطاقات (DNS) analytics.com إلى خدمات الشبكات، ما يتيح لخدمة Looker الوصول إلى المنطقة الخاصة analytics-vpc.
gcloud services peered-dns-domains create looker-com --network=analytics-vpc --service=servicenetworking.googleapis.com --dns-suffix=analytics.com.
19. دمج Looker مع قاعدة بيانات Postgres
في القسم التالي، ستستخدم Cloud Console لإنشاء اتصال بقاعدة بيانات مثيل قاعدة بيانات postgres على الموقع.
في Cloud Console، انتقِل إلى Looker واختَر عنوان URL للنسخة الافتراضية الذي سيفتح واجهة مستخدم Looker.
بعد إطلاق الميزة، ستظهر لك الصفحة المقصودة كما هو موضّح في لقطة الشاشة أدناه.
انتقِل إلى المشرف → قاعدة البيانات → عمليات الربط → اختَر إضافة عملية ربط.
املأ تفاصيل الاتصال وفقًا لقطة الشاشة أدناه، ثم انقر على ربط.
تم الاتصال بنجاح الآن
20. التحقّق من إمكانية الاتصال بمنصة Looker
في القسم التالي، ستتعرّف على كيفية التحقّق من اتصال Looker بقاعدة بيانات postgres في شبكة vpc على الموقع باستخدام إجراء "اختبار" في Looker وTCPDUMP.
من Cloud Shell، سجِّل الدخول إلى قاعدة بيانات postgres-data في حال انتهاء مهلة الجلسة.
في Cloud Shell، نفِّذ ما يلي:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
gcloud compute ssh --zone "us-central1-a" "postgres-database" --project "$projectid"
من نظام التشغيل، أنشئ فلتر TCPDUMP باستخدام الشبكة الفرعية psa-range-looker 192.168.0.0/22
sudo tcpdump -i any net 192.168.0.0/22 -nn
انتقِل إلى قسم اتصال البيانات المشرف ← قاعدة البيانات ← الاتصالات ← اختيار ← اختبار
بعد اختيار "الاختبار"، ستتصل Looker بنجاح بقاعدة بيانات postgres كما هو موضّح أدناه:
انتقِل مرة أخرى إلى وحدة تحكّم نظام التشغيل وتأكَّد من أنّ TCPDUMP قد رصد أنّ psc-range-looker يتصل بمثيل قاعدة بيانات postgres على الموقع.
أضِف ملاحظة بأنّ أي عنوان IP من نطاق PSA سيظهر من Looker.
user@postgres-database$ sudo tcpdump -i any net 192.168.0.0/22 -nn
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
00:16:55.121631 ens4 In IP 192.168.1.24.46892 > 172.16.10.2.5432: Flags [S], seq 2221858189, win 42600, options [mss 1366,sackOK,TS val 4045928414 ecr 0,nop,wscale 7], length 0
00:16:55.121683 ens4 Out IP 172.16.10.2.5432 > 192.168.1.24.46892: Flags [S.], seq 1464964586, ack 2221858190, win 64768, options [mss 1420,sackOK,TS val 368503074 ecr 4045928414,nop,wscale 7], length 0
21. اقتراحات الأمان
هناك بعض اقتراحات الأمان وأفضل الممارسات المتعلقة بتأمين Looker وقاعدة بيانات Postgres. تشمل هذه الطرق ما يلي:
- إعداد أذونات حساب قاعدة البيانات الأقل امتيازًا لتطبيق Looker الذي لا يزال يسمح بتنفيذ الوظائف المطلوبة
- البيانات التي يتم نقلها بين واجهة مستخدم العميل وLooker وLooker إلى قاعدة البيانات في المشفّرة باستخدام الإصدار 1.2 من بروتوكول أمان طبقة النقل (TLS) أو الإصدارات الأحدث
- يتم تلقائيًا تشفير البيانات غير النشِطة، ويمكن للعميل أيضًا الاستفادة من CMEK في مثيلات Looker ( https://cloud.google.com/looker/docs/looker-core-cmek) وPostgres ( https://cloud.google.com/sql/docs/postgres/configure-cmek).
- التحكّم في الوصول إلى Looker: يمكن لمشرفي Looker التحكّم في ما يمكن لمبدأ أو مجموعة من المستخدمين الاطّلاع عليه وتنفيذه في Looker من خلال منح الإذن بالوصول إلى المحتوى والوصول إلى البيانات والوصول إلى الميزات. تسمح هذه الخيارات لمشرف Looker بتحديد أدوار معيّنة تشمل مجموعة النموذج والأذونات، وإنشاء تحكّم دقيق في الوصول إلى البيانات.
- تتيح Looker كلاً من سجلّات التدقيق وسجلّات الوصول إلى البيانات التي تسجّل المستخدمين الذين أجروا الإجراءات ووقت ومكان تنفيذها. تكون "سجلات التدقيق" مفعَّلة تلقائيًا، بينما يجب تفعيل سجلّات الوصول إلى البيانات صراحةً.
- تتوافق VPC-SC حاليًا مع النسخ الافتراضية للمؤسسات والتضمين التي تم ضبطها باستخدام عنوان IP خاص فقط.
22. تَنظيم
احذف نسخة Looker Cloud Core، انتقِل إلى:
LOOKER ← برنامج Looker التعليمي ← DELETE
من Cloud Shell، احذف مكوّنات الدليل التوجيهي.
gcloud compute vpn-tunnels delete analytics-vpc-tunnel0 analytics-vpc-tunnel1 on-prem-tunnel0 on-prem-tunnel1 --region=us-central1 --quiet
gcloud compute vpn-gateways delete analytics-vpn-gw on-prem-vpn-gw --region=us-central1 --quiet
gcloud compute routers delete analytics-cr-us-central1 on-prem-cr-us-central1 on-prem-cr-us-central1-nat --region=us-central1 --quiet
gcloud compute instances delete postgres-database --zone=us-central1-a --quiet
gcloud compute networks subnets delete database-subnet-us-central1 --region=us-central1 --quiet
gcloud compute firewall-rules delete looker-access-to-postgres on-prem-ssh --quiet
gcloud dns record-sets delete postgres.analytics.com. --type=A --zone=gcp-private-zone
gcloud dns managed-zones delete gcp-private-zone
gcloud compute networks delete on-prem-vpc --quiet
gcloud compute addresses delete psa-range-looker --global --quiet
gcloud compute networks delete analytics-vpc --quiet
23. تهانينا
تهانينا، لقد نجحت في ضبط إعدادات اتصال Looker عبر شبكة مختلطة والتحقّق من صحتها، ما يتيح نقل البيانات في البيئات المستضافة على الموقع الإلكتروني والبيئات السحابية المتعددة.
تمكّنت أيضًا من اختبار إمكانية اتصال Looker Cloud Core بقاعدة بيانات postgres باستخدام أداة "اختبار" في Lookers Connect وTCPDUMP في مثيل قاعدة بيانات postgres.
يعتبر تطبيق Cosmopup الفيديوهات التعليمية رائعة.
محتوى إضافي للقراءة والفيديوهات
- نقدّم لك الإصدار الجديد من Looker
- هل تريد نقل البيانات إلى Google Cloud Platform؟ الأهم أولاً: شبكات VPC
- التوجيه الديناميكي باستخدام Cloud Router
المستندات المرجعية
- مستندات Looker (الإصدار الأساسي من Google Cloud)
- إنشاء مثيل Looker (الإصدار الأساسي من Google Cloud)
- إنشاء اتصال بعنوان IP خاص لخدمة Looker (مركز Google Cloud)
- شبكة VPN لتوفير إمكانية التبديل في حالات انقطاع الخدمة بين شبكات Google Cloud
- إعداد ميزة "ترجمة عناوين الشبكة" وإدارتها باستخدام Cloud NAT
- خيارات تبادل المسارات الديناميكية