تنصيب الحد الأدنى من LAMP لـ LogAnalyzer على CentOS-8

بدلاً من تحليل سجلات كل جهاز / خادم على حدة من أماكن عديدة ، لماذا لا تخزن جميع السجلات في قاعدة بيانات واحدة (أو أكثر) ، بحيث يمكنك عرضها وتحليلها من واجهة مستخدم واحدة؟

ملاحظات:

إذا كنت تستخدم تثبيتًا جديدًا لـ CentOS 8-Stream (020200629) على الخادم أو الحد الأدنى من الإصدار ، فقد تكون واجهة ethernetالــ معطلة. لتعرف عن اسمه ، اكتب: ip ad sh ، بمجرد معرفة اسم الواجهة (افترض أنه enp0s8) ، قم بإحضاره بواسطة: ifup enp0s8. وإحضاره تلقائيًا في كل مرة يقوم فيها الخادم بالتمهيد ، قم بتحرير الملف: /etc/ sysconfig/network-scripts/ifcfg-enp0s8 واستبدالــ ONBOOT=no بـ ONBOOT="yes".

وكالعادة ، اذا تريد تسجيل الدخول كجذر باستخدام su - ، أو بادية جميع الأوامر التالية بــ sudo.

قد قمنا بكتابة سكربت BASH لتنفيذ كل مايلي تلقائياً:

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

[root@centos8 ~]# git clone https://github.com/DeaDSouL/unix.cafe_loganalyzer.git
[root@centos8 ~]# cd unix.cafe_loganalyzer ; git checkout CentOS-8
[root@centos8 ~]# bash centos8-setup.sh

التثبيت:

كما هو الحال دائمًا ، تأكد من تحديث خادمنا:

[root@centos8 ~]# dnf --refresh update -y

الآن ، لنقم بتثبيت مستودع EPEL:

[root@centos8 ~]# dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
[root@centos8 ~]# dnf update -y

ثم نحتاج إلى تثبيت الحزم المطلوبة:

[root@centos8 ~]# dnf install -y mariadb mariadb-server rsyslog-mysql httpd php php-mysqlnd php-gd

الآن ، نحن بحاجة إلى تثبيت مستودع remi ، من أجل تثبيت phpMyAdmin من مستودع (بهذه الطريقة ، سيعتني المشرف بتحديثاته لنا). وبما أننا لا نريد التسبب في أي مشاكل في المستقبل بين الحزم/التبعيات ، فسوف نقوم بتعطيلها.

[root@centos8 ~]# dnf install -y http://rpms.remirepo.net/enterprise/remi-release-8.rpm
[root@centos8 ~]# dnf config-manager --set-disabled remi-modular remi-safe
[root@centos8 ~]# dnf install phpMyAdmin --enablerepo=remi -y

دعونا نُفعل ونُشغل Apache و MariaDB:

[root@centos8 ~]# systemctl enable --now httpd.service
[root@centos8 ~]# systemctl enable --now mariadb.service

إنشاء قواعد بيانات ومستخدم MariaDB المطلوبة:

لنفترض أن كلمة المرور التي سنستخدمها لمستخدم rsyslog الخاص بنا هي: PASSWORD. الآن ، إذا كان هذا تثبيتًا جديدًا لنسخة MariaDB وبعد عبارات SQL التالية. إذا كان لديك بالفعل كلمة مرور لحساب الجذر على MariaDB ، فاستخدم العلامة -p مع كل أمر من الأوامر التالية.

[root@centos8 ~]# mysql -u root < /usr/share/doc/rsyslog/mysql-createDB.sql
[root@centos8 ~]# mysql -u root -e 'CREATE DATABASE IF NOT EXISTS Loganalyzer;'
[root@centos8 ~]# mysql -u root -e "GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'PASSWORD';"
[root@centos8 ~]# mysql -u root -e 'GRANT ALL ON Loganalyzer.* TO "rsyslog"@"localhost";'
[root@centos8 ~]# mysql -u root -e 'FLUSH PRIVILEGES;'

تأمين MariaDB:

في هذه المرحلة ، قد ترغب في تأمين خادم قاعدة البيانات الخاص بك ، عن طريق تعيين كلمة مرور لحساب الجذر ، وعدم السماح بتسجيل الدخول عن بُعد.

[root@centos8 ~]# mysql_secure_installation

إعداد الـ rsyslog:

أولاً ، دعنا ننسخ ملف التكوين احتياطيًا ، في حالة فشلنا في بعض الأمور:

[root@centos8 ~]# cp -p /etc/rsyslog.conf{,.def}

في هذه المرحلة ، نحتاج ان نخبر rsyslog ان يتلقى السجلات المرسلة من أجهزتنا على منفذ 514 لكل من البروتوكولات TCP و UDP. لذا دعنا نحرر الملف: /etc/rsyslog.conf:

centos8-rsyslog.conf-1
/etc/rsyslog.conf

نحتاج الآن إلى إلغاء التعليق على الأسطر أعلاه: 19 و 20 و 24 و 25 ، لتصبح كتالي:

centos8-rsyslog.conf-2
/etc/rsyslog.conf

رائع ، الآن نحتاج أيضًا إلى تهيئتها لنخزين تلك السجلات في قاعدة بيانات MariaDB. (والتي تسمى Syslog) ، عن طريق إضافة الكود التالي إليها:

# Adding logs to MariaDB
module(load="ommysql")
*.* :ommysql:127.0.0.1,Syslog,rsyslog,PASSWORD

لتصبح هكذا: (السطور 2729)

centos8-rsyslog.conf-3
/etc/rsyslog.conf

الآن ، نحتاج إلى إعادة تشغيل خدمة rsyslog:

[root@centos8 ~]# systemctl restart rsyslog.service

إعداد الـ phpMyAdmin:

الآن ، دعنا نحرر /etc/httpd/conf.d/phpMyAdmin.conf:

centos8-phpmyadmin.conf-1
/etc/httpd/conf.d/phpMyAdmin.conf

نحتاج إلى إضافة الكود التالي بين <Directory /usr/share/phpMyAdmin/> و </Directory>:

   <IfModule mod_authz_core.c>
     #Apache 2.4
     <RequireAny>
       Require all granted
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>

ليصبح الملف كما يلي:

centos8-phpmyadmin.conf-2
/etc/httpd/conf.d/phpMyAdmin.conf

نحتاج الآن إلى إبلاغ Apache عن تكوين phpMyAdmin الجديد ، من خلال إعادة تشغيله:

[root@centos8 ~]# systemctl restart httpd.service

إعداد الجدار الناري (Firewall):

الآن نحتاج إلى إبلاغ جدار الحماية الخاص بنا بأننا نريد تلقي اتصالات على HTTP و HTTPS و 514. وبما أنه لا توجد خدمة في FirewallD لـ rsyslog ، فسنقوم بإنشائه:

[root@centos8 ~]# firewall-cmd --permanent --new-service=rsyslog
[root@centos8 ~]# firewall-cmd --permanent --service=rsyslog --set-description="Rsyslog Listener Service"
[root@centos8 ~]# firewall-cmd --permanent --service=rsyslog --set-short=rsyslog
[root@centos8 ~]# firewall-cmd --permanent --service=rsyslog --add-port=514/{tcp,udp}
[root@centos8 ~]# firewall-cmd --permanent --add-service={http,https,rsyslog}
[root@centos8 ~]# firewall-cmd --reload

تنزيل وإعداد LogAnalyzer للتثبيت:

نظرًا لأنه لا توجد حزمة لـ LogAnalyzer في مستودعاتنا ، فقد نحتاج إلى تنزيلها يدويًا ، ثم استخراجها إلى المجلد الصحيح.

[root@centos8 ~]# wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.10.tar.gz -P /tmp
[root@centos8 ~]# tar -xzvf /tmp/loganalyzer-*.tar.gz -C /tmp/
[root@centos8 ~]# mkdir /var/www/html/loganalyzer
[root@centos8 ~]# cp -pr /tmp/loganalyzer-/src/ /var/www/html/loganalyzer
[root@centos8 ~]# cp -p /tmp/loganalyzer-*/contrib/configure.sh /var/www/html/loganalyzer
[root@centos8 ~]# cd /var/www/html/loganalyzer
[root@centos8 ~]# bash configure.sh
[root@centos8 ~]# chcon -h -t httpd_sys_script_rw_t config.php

الآن ، دعنا نزور http://your-server-ip/loganalyzer ، ونبدأ عملية التثبيت.تذكر فقط ان:

في الخطوة 3:

  • تمكين قاعدة بيانات المستخدم: (Enable User Database): yes
  • مضيف قاعدة البيانات: (Database Host): localhost
  • المنفذ: (Port): 3306
  • اسم قاعدة البيانات: (Database Name): Loganalyzer
  • بادئة الجدول: (Table prefix):
  • مستخدم قاعدة البيانات: (Database User): rsyslog
  • كلمة مرور قاعدة البيانات: (Database Password): PASSWORD (أو ما اخترته)

في الخطوة 7:

  • نوع المصدر: (Source Type): MYSQL Native
  • حدد طريقة العرض: (Select View): Syslog Fields
  • نوع الجدول: (Table type): MonitorWare
  • مضيف قاعدة البيانات: (Database Host): localhost
  • اسم قاعدة البيانات: (Database Name): Syslog
  • اسم جدول قاعدة البيانات: (Database Tablename): SystemEvents
  • مستخدم قاعدة البيانات: (Database User): rsyslog
  • كلمة مرور قاعدة البيانات: (Database Password): PASSWORD (أو ما اخترته)
  • تمكين عد الصفوف: (Enable Row Counting): yes

أو استخدم نص الــ BASH الذي كتبته لتشغيل كل ما سبق تلقائاً:

[root@centos8 ~]# git clone https://github.com/DeaDSouL/unix.cafe_loganalyzer.git
[root@centos8 ~]# cd unix.cafe_loganalyzer ; git checkout CentOS-8
[root@centos8 ~]# bash centos8-setup.sh

استمتع 🙂

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.