Graylog عبارة عن أداة برمجية مجانية ومفتوحة المصدر (open-source) لإدارة السجلات (log) يمكن استخدامها لمراقبة سجل أنظمة الشبكة من خادم مركزي.
يستخدم Elasticsearch لتخزين بيانات السجلات وتوفير إمكانات البحث و MongoDB لتخزين معلومات التعريف(meta information) .
يساعدك على مراقبة كمية كبيرة من البيانات والبحث عنها وتحليلها في تنسيق بسيط يمكن قراءته.
سنشرح هنا تثبيت Graylog على خادم Ubuntu 20.04.
المتطلبات الأساسية
خادم يعمل بنظام التشغيل Ubuntu 20.04.
ذاكرة وصول عشوائي لا تقل عن 4 جيجابايت.
إعداد كلمة مرور الـ root.
ستحتاج إلى تحديث حزم النظام إلى أحدث إصدار.
يمكنك تحديثها جميعًا باستخدام الأمر التالي:
apt-get update -y
ستحتاج أيضًا إلى تثبيت بعض التبعيات (dependencies) على الخادم الخاص بك.
يمكنك تثبيتهم بالأمر التالي:
apt-get install apt-transport-https gnupg2 uuid-runtime pwgen curl dirmngr -y
تثبيت Java
يتطلب Graylog تثبيت Java على الخادم.
إذا لم يكن مثبتًا يمكنك تثبيته باستخدام الأمر التالي:
apt-get install openjdk-11-jre-headless -y
يمكنك التحقق من إصدار Java المثبت عن طريق الأمر التالي:
java -version
ستحصل على النتيجة التالية:
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)
تثبيت وإعداد Elasticsearch
يستخدم Graylog Elasticsearch لتخزين السجلات.
سوف تحتاج إلى تثبيت Elasticsearch في نظامك.
لا يتوفر أحدث إصدار من Elasticsearch في مستودع Ubuntu الافتراضي.
لذلك سوف تحتاج إلى إضافة مستودع Elasticsearch إلى النظام.
قم بتنزيل وإضافة مفتاح Elasticsearch GPG باستخدام الأمر التالي:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
أضف مستودع Elasticsearch باستخدام الأمر التالي:
echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
قم بتحديث المستودع وقم بتثبيت Elasticsearch باستخدام الأمر التالي:
apt-get update -y
apt-get install elasticsearch-oss -y
After installing Elasticsearch, you will need to edit the Elasticsearch configuration file and define the cluster name. You can do it with the following command:
ستحتاج إلى تعديل ملف إعدادات Elasticsearch وتحديد اسم الـ cluster.
يمكنك القيام بذلك باستخدام الأمر التالي:
nano /etc/elasticsearch/elasticsearch.yml
حدد اسم الـ cluster الخاصة بك graylog وأضف السطر التالي
cluster.name: graylog
action.auto_create_index: false
Save and close the file when you are finished. Then, start the Elasticsearch service and enable it to start at boot with the following command:
احفظ وأغلق الملف.
ابدأ خدمة Elasticsearch وقم بتفعيلها للبدء اثناء الـ boot باستخدام الأمر التالي:
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch
تحقق من حالة خدمة Elasticsearch باستخدام الأمر التالي:
systemctl status elasticsearch
يجب أن تحصل على النتيجة التالية:
? elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-09-05 08:41:18 UTC; 9s ago
Docs: http://www.elastic.co
Main PID: 7085 (java)
Tasks: 17 (limit: 2353)
Memory: 1.1G
CGroup: /system.slice/elasticsearch.service
??7085 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly ->
Sep 05 08:41:18 ubuntu2004 systemd[1]: Started Elasticsearch.
تحقق من استجابة Elasticcsearch باستخدام الأمر التالي:
curl -X GET http://localhost:9200
يجب أن تحصل على النتيجة التالية:
{
"name" : "vzg8H4j",
"cluster_name" : "graylog",
"cluster_uuid" : "6R9SlXxNSUGe6aclcJa9VQ",
"version" : {
"number" : "6.8.12",
"build_flavor" : "oss",
"build_type" : "deb",
"build_hash" : "7a15d2a",
"build_date" : "2020-08-12T07:27:20.804867Z",
"build_snapshot" : false,
"lucene_version" : "7.7.3",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
تثبيت خادم MongoDB
يستخدم Graylog الـ MongoDB كقاعدة بيانات.
ستحتاج إلى تثبيت قاعدة بيانات MongoDB على الخادم الخاص بك.
يمكنك تثبيته بالأمر التالي:
apt-get install mongodb-server -y
ابدأ تشغيل خدمة MongoDB وقم بتفعيلها للبدء اثناء الـ boot باستخدام الأمر التالي:
systemctl start mongodb
systemctl enable mongodb
تثبيت وإعداد Graylog
لا تتوفر حزمة Graylog في مستودع Ubuntu الافتراضي.
لذلك ستحتاج إلى تثبيت مستودع Graylog على الخادم الخاص بك.
يمكنك تنزيل حزمة مستودع Graylog باستخدام الأمر التالي:
wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
قم بتثبيت الحزمة التي تم تنزيلها باستخدام الأمر التالي:
dpkg -i graylog-3.3-repository_latest.deb
قم بتحديث المستودع وتثبيت خادم Graylog باستخدام الأمر التالي:
apt-get update -y
apt-get install graylog-server -y
After installing Graylog server, you will need to generate a secret to secure the user passwords. You can generate it with the following command:
ستحتاج إلى إنشاء secret لتأمين كلمات مرور المستخدم.
يمكنك إنشاؤها باستخدام الأمر التالي:
pwgen -N 1 -s 96
يجب أن ترى النتيجة التالية:
Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
ستحتاج أيضًا إلى إنشاء كلمة مرور آمنة لمستخدم مسؤول Graylog.
ستحتاج إلى كلمة المرور هذه لتسجيل الدخول إلى واجهة ويب Graylog.
يمكنك إنشاؤها باستخدام الأمر التالي:
echo -n password | sha256sum
يجب أن ترى النتيجة التالية:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 -
قم بتعديل ملف الإعداد الرئيسي Graylog وحدد كلمتي المرور:
nano /etc/graylog/server/server.conf
الصق كل من كلمة المرور التي أنشأتها أعلاه كما هو موضح أدناه:
password_secret = Wv4VQWCAA9sRbL7pxPeY7tb9lSo50esEWgNXxXHypx0Og3CezMmQLdF2QzQdRSIXmNXKINjRvZpPTrvZv4k4NlJrFYTfOc3c
root_password_sha2 = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
ستحتاج أيضًا إلى تحديد عنوان (IP Address) للخادم كما هو موضح أدناه:
http_bind_address = 127.0.0.1:9000
احفظ وأغلق الملف.
ابدأ خدمة Graylog وقم بتفعيلها للبدء اثناء الـ boot باستخدام الأمر التالي:
systemctl daemon-reload
systemctl start graylog-server
systemctl enable graylog-server
تحقق من حالة خادم Graylog باستخدام الأمر التالي:
systemctl status graylog-server
يجب أن ترى النتيجة التالية:
? graylog-server.service - Graylog server
Loaded: loaded (/lib/systemd/system/graylog-server.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2020-09-05 08:50:16 UTC; 15min ago
Docs: http://docs.graylog.org/
Main PID: 8693 (graylog-server)
Tasks: 156 (limit: 2353)
Memory: 865.0M
CGroup: /system.slice/graylog-server.service
??8693 /bin/sh /usr/share/graylog-server/bin/graylog-server
??8726 /usr/bin/java -Xms1g -Xmx1g -XX:NewRatio=1 -server -XX:+ResizeTLAB -XX:+UseConcMarkSweepGC -XX:+CMSConcurrentMTEnabled -XX>
Sep 05 08:50:16 ubuntu2004 systemd[1]: Started Graylog server.
تحقق من سجل خادم Graylog باستخدام الأمر التالي:
tail -f /var/log/graylog-server/server.log
بمجرد بدء تشغيل خادم Graylog بنجاح ستحصل على النتيجة التالية:
2020-09-05T08:51:36.473Z INFO [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=59, JobSchedulerService [RUNNING]=105, GracefulShutdownService [RUNNING]=106, OutputSetupService [RUNNING]=110, BufferSynchronizerService [RUNNING]=111, UrlWhitelistService [RUNNING]=153, JournalReader [RUNNING]=166, KafkaJournal [RUNNING]=222, MongoDBProcessingStatusRecorderService [RUNNING]=240, ConfigurationEtagService [RUNNING]=259, EtagService [RUNNING]=302, StreamCacheService [RUNNING]=306, LookupTableService [RUNNING]=376, PeriodicalsService [RUNNING]=655, JerseyService [RUNNING]=58701}
2020-09-05T08:51:36.477Z INFO [ServerBootstrap] Graylog server up and running.
تم بدء تشغيل خادم Graylog والاستماع على المنفذ 9000.
إعداد Nginx كوكيل عكسي (Reverse Proxy) لـ Graylog
ستحتاج إلى تثبيت Nginx وتكوينه كوكيل عكسي (reverse proxy) للوصول إلى خادم Graylog.
قم بتثبيت خادم Nginx باستخدام الأمر التالي:
apt-get install nginx -y
أنشئ ملف إعداد مضيف ظاهري (virtual host) لـ Nginx جديد باستخدام الأمر التالي:
nano /etc/nginx/sites-available/graylog.conf
أضف الأسطر التالية:
server {
listen 80;
server_name graylog.example.org;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Graylog-Server-URL http://$server_name/;
proxy_pass http://127.0.0.1:9000;
}
}
احفظ وأغلق الملف.
تحقق من Nginx بحثًا عن أي خطأ في البناء باستخدام الأمر التالي:
nginx -t
يجب أن تحصل على النتيجة التالية:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
قم بتفعيل ملف إعداد مضيف Nginx الظاهري باستخدام الأمر التالي:
ln -s /etc/nginx/sites-available/graylog.conf /etc/nginx/sites-enabled/
أعد تشغيل خدمة Nginx لتطبيق التغييرات:
systemctl restart nginx
تحقق من حالة Graylog باستخدام الأمر التالي:
systemctl status nginx
يجب أن تحصل على النتيجة التالية:
? nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-09-05 09:07:50 UTC; 20s ago
Docs: man:nginx(8)
Process: 9408 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 9419 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 9423 (nginx)
Tasks: 3 (limit: 2353)
Memory: 10.2M
CGroup: /system.slice/nginx.service
??9423 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
??9424 nginx: worker process
??9425 nginx: worker process
Sep 05 09:07:50 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 09:07:50 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.
الوصول إلى واجهة ويب Graylog
افتح متصفح الويب واكتب عنوان URL http://graylog.example.com.
ستتم إعادة توجيهك إلى صفحة تسجيل الدخول إلى Graylog
أدخل اسم مستخدم المسؤول (admin) وكلمة المرور وانقر على زر تسجيل الدخول .
سترى لوحة معلومات Graylog
الآن ، انقر فوقSystem ثم نOverview.
سترى حالة خادم Graylog