في هذه المقالة، سنستكشف كيفية نشر Elasticsearch واستخدام . هذان مكونان رئيسيان من مجموعة ELK( ، Logstash،)، Kibana مما يساعدك على البحث عن البيانات وتحليلها وتصورها بشكل فعال. فيما يلي التكوينات التفصيلية وكيفية عمل كل مكون. Docker Compose Elasticsearch Kibana
1. Elasticsearch
أ. التكوين الأساسي
Elasticsearch تم تكوينه ليتم تشغيله في حاوية Docker بالمعلمات التالية:
الصورة: يتم استخدام الصورة الرسمية Elasticsearch ، الإصدار
8.17.2.وضع العقدة الفردية: يتم تمكينه عبر متغير البيئة
discovery.type=single-node.الأمان: تم تمكين أمان X-Pack()، وتم تعيين
xpack.security.enabled=trueكلمة المرور للمستخدم على.elasticYVG6PKplG6ugGOwالشبكة: يستمع Elasticsearch إلى جميع واجهات الشبكة(
network.host=0.0.0.0).ذاكرة JVM: تم تكوينها باستخدام
-Xms1g(الذاكرة الأولية) و-Xmx1g(الحد الأقصى للذاكرة).
فرقة Ports Volumes
Ports: يتم تعيين المنفذ
9200(HTTP) و9300(الاتصالات الداخلية) من الحاوية إلى المضيف.Volumes: يتم تخزين بيانات Elasticsearch في
elasticsearch-dataالمجلد.
ج. فحص الصحة
تم إعداد فحص الصحة لمراقبة Elasticsearch حالة 's من خلال استدعاء /_cluster/health واجهة برمجة التطبيقات مع elastic المستخدم. إذا فشلت واجهة برمجة التطبيقات في الاستجابة، فسيتم إعادة تشغيل الحاوية.
2. Kibana
أ. التكوين الأساسي
Kibana تم تكوينه للاتصال Elasticsearch والتشغيل في حاوية Docker بالمعلمات التالية:
الصورة: يتم استخدام الصورة الرسمية Kibana ، الإصدار
8.17.2.Elasticsearch الاتصال: Elasticsearch تم تعيين العنوان على
http://elasticsearch:9200.المصادقة: يستخدم Kibana
kibana_userكلمة المرورYVG6PKplG6ugGOwللاتصال بـ Elasticsearch.
ب. Ports والشبكات
Ports: يتم تعيين المنفذ
5601من الحاوية إلى المضيف للوصول إلى Kibana الواجهة.الشبكات: Kibana متصلة بـ
elk-network.
ج. الاعتماد على Elasticsearch
Kibana يبدأ فقط بعد أن Elasticsearch يصبح جاهزًا، مما يضمن اتصالاً ناجحًا بين الخدمتين.
3. الحجم والشبكة
أ. الحجم
elasticsearch-data: يتم استخدام هذا المجلد لتخزين Elasticsearch البيانات، مما يضمن ثبات البيانات حتى إذا تم حذف الحاوية.
ب. الشبكة
elk-network: يتم إنشاء شبكة
bridgeللاتصال Elasticsearch والخدمات Kibana.
4. كيفية الاستخدام
أ. بدء الخدمات
للبدء Elasticsearch ، Kibana قم بتشغيل الأمر التالي:
docker-compose up -d
ب. إنشاء Kibana مستخدم(إذا لزم الأمر)
إذا كنت تريد استخدام مستخدم مخصص لـ Kibana ، فيمكنك إنشاء واحد باستخدام الأمر التالي:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
لاستخدام كلمة مرور token بدلاً من كلمة مرور، يمكنك إنشاء كلمة مرور باستخدام الأمر التالي:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. استكشاف الأخطاء وإصلاحها
إذا واجهت أخطاء، فيمكنك التحقق من سجلات الحاوية باستخدام:
docker logs elasticsearch docker logs kibanaلإعادة التشغيل Kibana:
المحتوى الكامل Docker Compose للملف
فيما يلي المحتوى الكامل للملف docker-compose-els.yml :
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- ELASTIC_PASSWORD=you_password
- network.host=0.0.0.0
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- '9200:9200'
- '9300:9300'
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elk-network
healthcheck:
test: ["CMD-SHELL", "curl -u elastic:YVG6PKplG6ugGOw --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 10s
retries: 5
start_period: 30s
timeout: 5s
kibana:
image: docker.elastic.co/kibana/kibana:8.17.2
container_name: kibana
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_user
- ELASTICSEARCH_PASSWORD=you_password
networks:
- elk-network
depends_on:
elasticsearch:
condition: service_healthy
volumes:
elasticsearch-data:
driver: local
networks:
elk-network:
driver: bridge
خاتمة
باستخدام هذا Docker Compose التكوين، يمكنك بسهولة نشر Elasticsearch وتلبية Kibana احتياجات البحث عن البيانات وتحليلها وتصورها. يمكنك تخصيص هذا التكوين وتوسيعه ليناسب المتطلبات المحددة لمشروعك!

