خطوات التثبيت

يصف هذا الدليل تثبيت حزم RPM باستخدام yum.

يُقصد بهذا الدليل أن يُستخدم لتثبيت SKOOR على نظام جديد. لترقية نظام SKOOR موجود بالفعل، يرجى استخدام دليل الترقية الموجود هنا.

المتطلبات

تعطيل SELinux

قبل تثبيت SKOOR Engine، يجب تعطيل SELINUX. عرض حالة SELinux:

sestatus

تحقق مما إذا كان الوضع قيد التنفيذ:

SELinux status:                 enabled
...
Current mode:                   enforcing

إذا كان الأمر كذلك، فقم بتغييره على الأقل إلى permissive أو قم بتعطيله عن طريق تغيير تكوين SELinux:

vi /etc/selinux/config

قم بتغيير التكوين إلى permissive أو disabled:

SELINUX=disabled

قم بتنشيط التكوين وتحقق من ذلك باستخدام sestatus:

setenforce 0 

السماح بـ cron للمستخدمين

إذا كان cron مقيدًا، فيجب السماح للمستخدمين الذين يحتاجهم برنامج SKOOR بالوصول إلى cron عن طريق إضافتهم إلى الملف التالي:

/etc/cron.allow

المستخدمون:

postgres
eranger
reranger

بصمات GPG لمستودع SKOOR:

RPM-GPG-KEY-SKOOR:

0C18 95B8 11D4 71E5 D043 EFA3 69E1 147C 2CB4 0F3A

RPM-GPG-KEY-PGDG:

D4BF 08AE 67A0 B4C7 A1DB CCD2 40BC A2B4 08B4 0D20

مفتاح RPM-GPG-KEY-TIMESCALEDB:

1005 fb68 604c e9b8 f687 9cf7 59f1 8edf 47f2 4417

تثبيت محرك SKOOR (خادم واحد)

بالنسبة للأنظمة التي تحتوي على نسخ متماثل للقاعدة البيانات، يجب تثبيت خادمين منفصلين كما هو موضح في هذا القسم. راجع دليل نسخ قاعدة البيانات للحصول على مزيد من خطوات التكوين

تثبيت PostgreSQL

PostgreSQL 13 هو خادم قاعدة البيانات الذي يحتاجه محرك SKOOR. يجب تثبيته قبل برنامج SKOOR:

قم بتثبيت خادم PostgreSQL باستخدام حزمة تثبيت SKOOR PostgreSQL:

dnf install eranger-postgresql

تقوم هذه الحزمة بتنفيذ الخطوات التالية:

  • تثبيت postgresql13-server وtimescaledb-2-postgresql-13 وeranger-database-utils من خلال تبعياتها.

  •  تهيئة مجموعة قواعد البيانات باستخدام initdb

  • ضبط postgresql.conf لـ TimescaleDB

  • تقوم بتهيئة قاعدة بيانات (قاعدة بيانات عادية، بدون مخطط أو بيانات) يمكن استخدامها بواسطة خادم SKOOR

  • يفتح منفذ TCP 5432 على جدار الحماية

تثبيت PgBouncer

يُستخدم PgBouncer كمجمع اتصالات ويقع بين SKOOR وخادم PostgreSQL.

قم بتثبيت PgBouncer باستخدام حزمة تثبيت SKOOR PgBouncer:

dnf install eranger-pgbouncer

تقوم هذه الحزمة بتنفيذ الخطوات التالية:

  • تثبيت pgbouncer من خلال تبعياته.

  • إعادة تكوين PostgreSQL (postgresql.conf)

    • listen_addresses = 'localhost' الاستماع فقط للاتصالات المحلية

    • unix_socket_directories = '/var/run/postgresql-backend' عدم استخدام مقبس UNIX الافتراضي لـ PostgreSQL

    • max_connections = 300 السماح بـ 300 اتصال

  • تكوين PgPool

    • listen_addr = *

    • listen_port = 5432

    • unix_socket_dir = /var/run/postgresql

    • max_client_conn = 300

    • default_pool_size = 60

تثبيت الخادم القياسي

بالنسبة للعملاء الذين يحتاجون فقط إلى مجموعة البرامج الأساسية (أي معظم العملاء)، قم بتشغيل الأمر التالي لتثبيت الحزم المطلوبة:

dnf install eranger-server

تحقق من حزم SKOOR Engine المثبتة:

dnf list installed |grep eranger

النتيجة المتوقعة:

eranger-agent.x86_64                      <version>
eranger-auth.x86_64                       <version>
eranger-collector.x86_64                  <version>
eranger-collector-eem.x86_64              <version>
eranger-collector-mail.x86_64             <version>
eranger-common.x86_64                     <version>
eranger-database-utils.x86_64             <version>
eranger-doc.x86_64                        <version>
eranger-nodejs.x86_64                     <version>
eranger-postgresql.x86_64                 <version>
eranger-pymodules.x86_64                  <version>
eranger-report.x86_64                     <version>
eranger-server.x86_64                     <version>
eranger-syncfs.x86_64                     <version>
eranger-ui.x86_64                         <version>

SKOOR < 8.1 يقوم بتثبيت Google Chrome كاعتمادية. يقوم Google Chrome بتثبيت مستودع YUM لتحديث نفسه إلى الإصدارات الأحدث. ولكن نظرًا لأن SKOOR يحتاج إلى إصدار محدد للغاية، فإننا نحتاج إلى تعطيل هذا المستودع الذي تم إنشاؤه حديثًا. SKOOR >= 8.1 لم يعد يحتاج إلى Google Chrome وبالتالي لم يتم تثبيت المستودع أيضًا.

sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/google-chrome.repo

تثبيت SKOOR Engine Collector

منذ الإصدار 5.5، هناك خياران للمجمع الخارجي، التثبيت الكامل والتثبيت الأساسي. يأتي التثبيت الأساسي مع مجموعة ميزات محدودة وتبعيات أقل ويمكن توسيعه لاحقًا إلى تثبيت كامل مع حزم إضافية.

التثبيت الكامل لـ Skoor Engine Collector:

لتثبيت جامع محرك SKOOR خارجي، استخدم الأمر التالي للتثبيت الكامل:

dnf install eranger-collector eranger-collector-eem eranger-collector-mail

التثبيت الأساسي لـ Skoor Engine Collector:

لتثبيت جامع محرك SKOOR خارجي أساسي، استخدم الأمر التالي:

dnf install eranger-collector

حزم إضافية لمجمع Skoor Engine الأدنى:

لتمكين مهام EEM على المجمع الخارجي، يمكنك تثبيت المكون الإضافي باستخدام الأمر التالي:

dnf install eranger-collector-eem

لتمكين مهام البريد (EWS أو IMAP أو POP3 أو SMTP) على المجمع الخارجي، يمكنك تثبيت المكون الإضافي باستخدام الأمر التالي:

dnf install eranger-collector-mail

الاتصال بمحرك SKOOR

بعد تثبيت جامع خارجي جديد، يجب تكوين الاتصال بمحرك SKOOR. يوضح القسم التالي الاحتمالات المختلفة لتحقيق ذلك.

عام

بالنسبة لمحرك SKOOR، يعد المجمع نوعًا خاصًا من المستخدمين. لذلك، يجب تكوين كل مجمع خارجي في واجهة المستخدم. قم بإنشاء مستخدم مصادق محليًا مع دور المجمع في /root /Users /Users وقم بتعيين كلمة مرور.

يتم إجراء التكوين الإضافي في ملف تكوين المجمّعين على خادم المجمّع: 

/etc/opt/eranger/eranger-collector.cfg

أولاً، يجب تحديد server_id لمحرك SKOOR. على مضيف محرك SKOOR، افتح eranger-server.cfg:

/etc/opt/eranger/eranger-server.cfg

ابحث عن المعلمة server_id في التكوين (إذا تم التعليق عليها كما في المثال التالي، فإن المعرف هو 1):

#server_id      = 1

إذا كان جامع خارجي يرسل قياسات إلى أكثر من محرك SKOOR واحد، فيجب أن يكون المعلمة server_id مختلفة في كل محرك SKOOR.

TCP

هذه هي الطريقة القياسية التي يتواصل بها المجمعون مع محرك SKOOR. الاتصال غير مشفر.

يجب تكوين المعلمات التالية في eranger-collector.cfg:

  • اضبط المعلمة server1_id على القيمة المكونة على خادم محرك SKOOR كـ server_id (القيمة الافتراضية هي 1)

  • اضبط المعلمة server1_address على اسم مضيف محرك SKOOR أو عنوان IP (تُستخدم مآخذ unix للمجمعات المحلية فقط)

  • اضبط server1_user و server1_passwd كما تم تكوينهما في محرك SKOOR

server1_id            = 1
server1_address        = 10.10.10.10
#server1_port           = 50001
#server1_domain         =
server1_user           = collector-user
server1_passwd         = collector-password
#server<server_id>_fetch_parse_dir (server_id instead of index)!
#server1_fetch_parse_dir= /var/opt/run/eranger/collector/tmp

HTTP/HTTPS

لا يُنصح بالاتصال باستخدام HTTP بدون تشفير. إذا لزم الأمر لسبب ما، يجب تكوين خادم httpd على محرك SKOOR للسماح بهذا النوع من الاتصال أولاً.

لا يمكن تبديل المجمعات التي تستخدم HTTP(S) للاتصال تلقائيًا عند إجراء تجاوز الفشل في إعداد أساسي/احتياطي

يصف القسم التالي كيفية إعداد الاتصال المشفر باستخدام HTTPS. للتشفير، يجب نسخ شهادة CA الجذرية المستخدمة بواسطة خادم محرك SKOOR إلى نظام المجمع. يمكن استخدام مسارات Linux القياسية لوضعها في نظام الملفات.

قم بتكوين المعلمات المطلوبة في eranger-collector.cfg:

  • اضبط المعلمة server1_id على القيمة التي تم تكوينها على خادم SKOOR Engine كـ server_id (القيمة الافتراضية هي 1)

  • اضبط المعلمة server1_address على اسم مضيف SKOOR Engine أو عنوان IP في شكل عنوان URL كما هو موضح أدناه

  • تأكد من تعليق المعلمة server1_port، وإلا فسوف يتعطل الاتصال

  • اضبط server1_user و server1_passwd كما تم تكوينهما في SKOOR Engine

  • قم بتكوين server1_ssl_cacert أو server1_ssl_capath إلى الموقع الذي تم نسخ الشهادة إليه من قبل

server1_id            = 1
server1_address        = https://10.10.10.10/skoor-collector
#server1_port           = 50001
#server1_domain         =
server1_user           = collector-user
server1_passwd         = collector-password
#server<server_id>_fetch_parse_dir (server_id instead of index)!
#server1_fetch_parse_dir= /var/opt/run/eranger/collector/tmp
server1_ssl_cacert     = /etc/pki/tls/certs/rootCA.pem

HTTPS مع مصادقة العميل

يجب تمكين مصادقة العميل على محرك SKOOR أولاً. افتح ملف تكوين خادم الويب المعني لهذا الغرض:

/etc/httpd/conf.d/skoor-engine-over-http.conf

قم بإلغاء تعليق توجيه SSLVerifyClient:

<Location "/skoor-collector">
        ExpiresActive On
        ExpiresDefault "now"
        ProxyPass http://localhost:50080 retry=0 connectiontimeout=15 timeout=30
    SSLVerifyClient require
</Location>

أعد تحميل httpd:

systemctl reload httpd

الاسم

الوصف

server1_ssl_cacert

المسار الكامل لشهادة CA الجذرية، سيستخدم المجمع هذا الملف المحدد

server1_ssl_capath

المسار إلى الدليل الذي يحتوي على شهادة CA الجذرية، سيبحث المجمع عن الشهادة الصحيحة

server1_ssl_verify_peer

إذا تم تعيينه على صحيح (افتراضي)، يتم التحقق من شهادة خادم SKOOR Engine

server1_ssl_verify_host

إذا تم تعيينه على "صحيح" (افتراضي)، يتم التحقق من اسم مضيف خادم SKOOR Engine

server1_ssl_cert_client_public_key

المفتاح العام المستخدم لمصادقة العميل (شهادة المجمع)

server1_ssl_cert_client_private_key

المفتاح الخاص المستخدم لمصادقة العميل (المفتاح الخاص للمجمع)

server1_ssl_cert_client_private_key_passwd

كلمة المرور لقراءة المفتاح الخاص للمجمع إذا تم تعيينها

ترخيص SKOOR Engine

احصل على ترخيص صالح من SKOOR وأضف الأسطر اللازمة إلى الملف:

/etc/opt/eranger/eranger-server.cfg

مثال بترخيص 1000 جهاز:

license_name   = Example customer
license_feature_set = 3.1
license_devices= 1000
license_key    = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

xxxx… يمثل مفتاح الترخيص الفعلي. تأكد من إدخال المفتاح الفعلي في سطر واحد بدون أحرف جديدة بينهما.

تكوين محرك SKOOR

قم بتوسيع متغير PATH للجذر:

~/.bashrc

أضف:

PATH=$PATH:/opt/eranger/bin

ثم قم بتطبيق التغييرات وقم بتشغيل eRanger.sh start لبدء خدمات محرك SKOOR:

. ~/.bashrc
eRanger.sh start

===========================================================================
 Choose command                                 eRanger Version 5.0.0

 Command - Action       - Object                - Current State
===========================================================================

 1       - start        - eRanger Server        - started
 2       - start        - eRanger Collector     - started
 3       - start        - eRanger Report        - started
 4       - start        - eRanger Agent         - started
 a       - start        - all above
 9       - start        - eRanger Webservice    - started
 11      - start        - PostgreSQL            - started
 12      - start        - Rsyslog               - started
 13      - start        - Trapd                 - stopped
 14      - start        - Httpd                 - started
 15      - start        - Smsd                  - stopped
 16      - start        - Postfix               - started

 r       - Switch to restart mode
 S       - Switch to stop mode
 c       - Current eRanger status
 0       - do_exit program

Enter selection:

لا يتم سرد Webservice و IC Alerter و Ethd إلا إذا تم تثبيت الحزمة المقابلة.

أدخل a لبدء جميع الخدمات المطلوبة. ثم اخرج باستخدام 0.

تسجيل الدخول إلى SKOOR Engine

الآن يمكنك تسجيل الدخول إلى SKOOR Engine باستخدام متصفح الويب وإدخال FQDN أو عنوان IP الخاص بـ SKOOR Engine في شريط العنوان:

 

بيانات تسجيل الدخول الافتراضية هي:

اسم المستخدم

admin

كلمة

admin

تثبيت شهادة SSL

بعد التثبيت الافتراضي، سيشكو المتصفح من شهادات أمان SSL غير موثوقة. إما أن تقبل الشهادة الافتراضية الموقعة ذاتيًا أو تقوم بإنشاء وتثبيت شهادة SSL مخصصة.

تقع الشهادات افتراضيًا في:

/etc/pki/tls/certs/

يجب تعديل ملف التكوين

/etc/httpd/conf.d/ssl.conf

يجب تعديله ليشير إلى الشهادات الصحيحة. يبدو أحد الأمثلة على الإدخال كما يلي:

SSLCertificateFile /etc/pki/tls/certs/wildcard_mycompany.ch.crt
SSLCertificateKeyFile /etc/pki/tls/private/private-key_mycompany.ch.key 

أعد تشغيل خادم الويب Apache باستخدام الأمر:

systemctl restart httpd

تعطيل إعادة كتابة https

عند استدعاء http://skoor.company.com، سيقوم خادم الويب بإعادة كتابة العنوان لاستخدام https بدلاً من http. إذا كان سيتم استخدام http فقط، فقم بتعطيل قاعدة إعادة الكتابة في ملف التكوين:

/etc/httpd/conf.d/eranger.conf


قم بتعليق الأسطر الثلاثة التالية (بوضع علامة هاش في البداية):

# RewriteEngine On
# RewriteCond %{HTTPS} !=on
# RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

أعد تشغيل خادم الويب Apache باستخدام الأمر:

systemctl restart httpd

تحسين SKOOR في البيئات الافتراضية

في حالة تشغيل محرك SKOOR أو جامع SKOOR داخل جهاز افتراضي، يجب تكييف برنامج جدولة IO لأسباب تتعلق بالأداء. بشكل افتراضي، يتم تثبيت Red Hat < 7 مع برنامج جدولة IO cfq. برنامج جدولة IO الموصى به لأنظمة Red Hat التي تعمل في جهاز افتراضي هو برنامج جدولة noop على Red Hat 7 وبرنامج جدولة none على Red Hat 8 / 9.

بالنسبة لأنظمة Red Hat 7

قم بتشغيل الأوامر التالية لتمكين مجدول noop لنظام قيد التشغيل لجهاز الكتلة sda الذي يتوافق عادةً مع القرص الأول:

# echo noop > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq

يتم الآن تمييز مجدول noop على أنه المجدول الحالي. قم بتشغيل هذا الأمر لكل قرص افتراضي تم تكوينه للنظام (استبدل sda باسم القرص الافتراضي).
ومع ذلك، لن يستمر الإعداد أعلاه عبر عمليات إعادة التشغيل. استخدم الدليل التالي لتمكين مجدول noop بشكل دائم.

قم بتعيين noop بشكل عام لجميع الأجهزة عن طريق تحرير the file /etc/default/grub كما هو موضح أدناه ثم إعادة إنشاء ملف تكوين grub2:

# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel00/root rd.lvm.lv=rhel00/swap"                            (before)
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=rhel00/root rd.lvm.lv=rhel00/swap elevator=noop"              (after)
...

# grub2-mkconfig -o /boot/grub2/grub.cfg                                                                     (on BIOS-based machines)
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg                                                            (on UEFI-based machines)

لأنظمة Red Hat 8 / 9

قم بتشغيل الأوامر التالية لتمكين جدولة noop لنظام قيد التشغيل لجهاز الكتلة sda الذي يتوافق عادةً مع القرص الأول:

# echo none > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[none] mq-deadline kyber bfq

تم الآن تمييز المجدول none باعتباره المجدول الحالي. قم بتشغيل هذا الأمر لكل قرص افتراضي تم تكوينه للنظام (استبدل sda باسم القرص الافتراضي).
ومع ذلك، لن يستمر الإعداد أعلاه عبر عمليات إعادة التشغيل. استخدم الدليل التالي لتمكين المجدول none بشكل دائم.

قم بتعيين none بشكل عام لجميع الأجهزة عن طريق تحرير the file /etc/default/grub كما هو موضح أدناه ثم إعادة إنشاء ملف تكوين grub2:

# vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rh9-swap rd.lvm.lv=rh9/root rd.lvm.lv=rh9/swap"                            (before)
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rh9-swap rd.lvm.lv=rh9/root rd.lvm.lv=rh9/swap elevator=none"              (after)
...

# grub2-mkconfig -o /boot/grub2/grub.cfg                                                                     (on BIOS-based machines)
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg                                                            (on UEFI-based machines)

إنشاء مستودع yum

 في حالة عدم تمكن مضيفات المجمّع عن بُعد من الوصول إلى أي مستودعات Red Hat ولكن محرك SKOOR يمكنه ذلك، فقد يكون من المفيد إنشاء مستودع برامج بسيط على الخادم يحتوي على جميع ملفات RPM المستخدمة للتثبيت عبر yum. سيكون المستودع متاحًا لمضيفات المجمّع عبر المنفذ 443 وهو منفذ مفتوح بالفعل. فيما يلي الخطوات اللازمة لإعداد مثل هذا المستودع والوصول إليه من مضيف مجمّع عن بُعد:

قم بإنشاء الدليل الجذر للمستودع وانسخ جميع ملفات RPM المطلوبة:

# cd /srv/eranger/html
# mkdir repo
# cp /path/to/*.rpm repo/
# yum install createrepo
# createrepo ./repo

استبدل /path/to/ أعلاه بالمسار الذي تم نسخ ملفات RPM المطلوبة إليه على مضيف محرك SKOOR. سيؤدي ذلك إلى إنشاء دليل فرعي جديد باسم repodata داخل دليل repo.

أضف الآن المستودع كمصدر لتثبيت الحزم على المضيفات البعيدة (مثل مضيف جامع SKOOR Engine):

# vi /etc/yum.repos.d/SKOOR.repo
[SKOOR]
name=SKOOR
baseurl=https://<ip or hostname of repository>/repo/
sslverify=false
gpgcheck=0
enabled=1

تحقق من الوصول إلى المستودع المضاف حديثًا من المضيف البعيد:

# yum clean all
# yum repolist 

الآن يمكن للمضيف البعيد تثبيت البرامج باستخدام مستودع SKOOR كمصدر للحزم. 

إضافة قرص DVD أو CD كمستودع

لتثبيت البرامج من محرك أقراص DVD أو CD RedHat مدرج، أضف مستودعًا جديدًا عن طريق إنشاء الملف التالي: 

vi /etc/yum.repos.d/RHEL_6.5_DVD.repo
[RHEL_6.5_DVD]
name=RHEL_6.5_DVD
baseurl="file:///cdrom/"
gpgcheck=0