بدلاً من تحليل سجلات كل جهاز / خادم على حدة من أماكن عديدة ، لماذا لا تخزن جميع السجلات في قاعدة بيانات واحدة (أو أكثر) ، بحيث يمكنك عرضها وتحليلها من واجهة مستخدم واحدة؟
ملاحظات:
إذا كنت تستخدم تثبيتًا جديدًا لـ 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://gitlab.com/unix.cafe/loganalyzer.git [root@centos8 ~]# cd 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:

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

رائع ، الآن نحتاج أيضًا إلى تهيئتها لنخزين تلك السجلات في قاعدة بيانات MariaDB. (والتي تسمى Syslog) ، عن طريق إضافة الكود التالي إليها:
# Adding logs to MariaDB module(load="ommysql") *.* :ommysql:127.0.0.1,Syslog,rsyslog,PASSWORD
لتصبح هكذا: (السطور 27–29)

الآن ، نحتاج إلى إعادة تشغيل خدمة rsyslog:
[root@centos8 ~]# systemctl restart rsyslog.service
إعداد الـ phpMyAdmin:
الآن ، دعنا نحرر /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>ليصبح الملف كما يلي:

نحتاج الآن إلى إبلاغ 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://gitlab.com/unix.cafe/loganalyzer.git [root@centos8 ~]# cd loganalyzer ; git checkout CentOS-8 [root@centos8 ~]# bash centos8-setup.sh
استمتع 🙂
