بدلاً من تحليل سجلات كل جهاز / خادم على حدة من أماكن عديدة ، لماذا لا تخزن جميع السجلات في قاعدة بيانات واحدة (أو أكثر) ، بحيث يمكنك عرضها وتحليلها من واجهة مستخدم واحدة؟
ملاحظات:
إذا كنت تستخدم تثبيتًا جديدًا لـ 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
استمتع 🙂