LogAnalyzer mərkəzləşdirilmiş log serverin RHEL6/CENTOS6-da sazlanması
Salamlar,
Bugünkü məqalədə Linux ƏS-də mərkəzləşdirilmiş log serverin sazlanması ilə tanış olacağıq.
Bütün ƏS-lərinin, şəbəkə avadalıqlarının və tətbiqi programların logları, ortaya çıxan problemlərin analizi, təhlükəsizlik insidentlərinin araşdırılması, istifadəçi əməliyyatlarının qeydiyyatı baxımından vacib əhəmiyyət daşıyırlar. Default olaraq, bütün ƏS-ləri logları lokal disk yaddaşında saxlayır. İnventarınızda 1 neçə kiçik serverin və şəbəkə avadlığının mövcudluğu şəraitinidə, logların hər birinin avadanlıqda ayrılıqda analizi çətinlik yaratmasa da, 10-larla, 100-lərlə avadanlığın gün ərzində hər 1-nə ayrıca daxil olmaqla monitoringi, analizi, resurstutumlu əməliyyatdır.
Lakin mərkəzləşdirilmiş log serverin, avadanlığın mövcudluğu bu prosesin sadələşdirilməsinə kömək edir. Faydası:
-
Hər bir avadanlıqda logları ayrıca analiz etməyə ehtiyac qalmır, hər bir avadanlıq öz loglarınız, sazlanmasından asılı olaraq, mərkəzləşdirilmiş log serverə göndərir;
-
Log serverin backup-larını müəyyən intervallarla almaqla, logların istədyiniz müddətə saxlanmasını təmin edə bilərsiniz;
Mərkəzləşdirilmiş log server rolunu yerinə yetirə biləcək program təminati çox olsa da, biz seçimi edərkən açıq mənbəli, pulsuz program təminatına üstünlük verdik ki, bu kategoriyada da ən uyumlusu rsyslog+LogAnalyzer-dir.
Sistemin işləməsi üçün bizə aşağıdakilar lazım olacaq:
[root@rhel6 /]# yum install httpd mysql mysql-server php php-mysql php-gd rsyslog rsyslog-mysql
MYSQL-in sazlanması:
[root@rhel6 /]# /sbin/chkconfig --levels 235 mysqld on [root@rhel6 /]# /etc/init.d/mysqld start [root@rhel6 /]# /usr/bin/mysql_secure_installation
Mysql-ı avtomatlaşdırılmış rejimdə quraşdırırıq. Bu rejimdə program sizdən bəzi cavablar istiyəcək:
“Şifrə hələ qurulmayıb sualına” ‘y’ düyməsini tuşlayırıq.
“root üçün şifrə qurulmayıb” sualına biz enter düyməsini basıb yeni şifrəni daxil edirik.
“Anonymous istifadəçisini silmək istərdiniz sualına” – ‘y’ cavabı veririk.
Root-a uzaqdan əmrlər ilə idarə etməsinə, test verilən bazasını və səlahiyyətlərin yenilənməsi kimi sualların hamısına ‘y’ cavabı veririk.
Verilənlər bazasının və cədvəllərin qurulması:
Verilən bazasına daxil oluruq:
[root@rhel6 /]# mysql -u root -p
İstifadəçini yaradırıq:
CREATE USER rsyslog; SET PASSWORD FOR rsyslog= PASSWORD('sizinşifrə');
Verilən bazasını və cədvəl sxemalarını yaradırıq:
CREATE DATABASE rsyslogdb; USE rsyslogdb;
Lazımi baza elementlərini yaradırıq. Aşağıdakı copy və paste edə bilərsiniz:
CREATE TABLE SystemEvents( ID int unsigned not null auto_increment primary key, CustomerID bigint, ReceivedAt datetime NULL, DeviceReportedTime datetime NULL, Facility smallint NULL, Priority smallint NULL, FromHost varchar(60) NULL, Message text, NTSeverity int NULL, Importance int NULL, EventSource varchar(60), EventUser varchar(60) NULL, EventCategory int NULL, EventID int NULL, EventBinaryData text NULL, MaxAvailable int NULL, CurrUsage int NULL, MinUsage int NULL, MaxUsage int NULL, InfoUnitID int NULL , SysLogTag varchar(60), EventLogType varchar(60), GenericFileName VarChar(60), SystemID int NULL ); CREATE TABLE SystemEventsProperties( ID int unsigned not null auto_increment primary key, SystemEventID int NULL , ParamName varchar(255) NULL , ParamValue text NULL );
İndi isə əvvəlki addımlarımızda yaratdığımız istifadəçiyə imtiyazlar veririk:
GRANT ALL PRIVILEGES ON `rsyslogdb`.* TO 'rsyslog'@'%' IDENTIFIED BY 'sizinşifrə'; flush privileges;
Rsyslog-un sazlanması:
Hər hansı mətn redaktorunda rsyslog faylını açırıq və yaşıl xəttələ işarələnmiş dəyişiklikləri edirik
# nano /etc/rsyslog.conf #### MODULES #### $ModLoad ommysql # provides support for MySQLTEZES$ModLoad imuxsock.so # provides support for local system logging (e.g. via logger command) $ModLoad imklog.so # provides kernel logging support (previously done by rklogd) #$ModLoad immark.so # provides --MARK-- message capability # Provides UDP syslog reception # UDP/TCP, 514 portlarını, ardından bizim şəbəkəmizin range-ini qeyd edirik və bazaya qoşulma parametrlərini əlavə edirik: $ModLoad imudp.so $UDPServerRun 514 TEZES# Provides TCP syslog reception $ModLoad imtcp.soTEZES$InputTCPServerRun 514 $AllowedSender TCP, 127.0.0.1, 192.168.56.0/24 $AllowedSender UDP, 127.0.0.1, 192.168.56.0/24 *.* :ommysql:127.0.0.1,rsyslogdb,rsyslog,sizinDBşifrə
rsyslog.conf faylında etdiyimiz dəyişiklikləri saxlamaqla çıxırıq və rsyslog servizini yenidən başladırıq:
[root@rhel6 /]# service rsyslog restart
Apache serverin sazlanması:
[root@rhel6 /]# chkconfig --levels 235 httpd on [root@rhel6 /]# service httpd start
Indi isə apache serverin konfigurasiya faylına keçid alırıq və həmin faylın içində bu sətirləri dəyişirik::
[root@rhel6 /]# nano /etc/httpd/conf/httpd.conf
Listen 80 <<<– bu sətri tapıb aşağədaki sətr ilə əvəzliyirik
Listen sizin.servernizin.ip.ünvanı:80
həmçinin
#ServerName www.example.com:80
əvəz edirik
ServerName sizin.servernizin.tam.adi:80
sonra yadaşa verib serverin çalımasını yeniləyirik:
[root@rhel6 /]# service httpd restart FireWall(iptables)-ın sazlanması: # iptables-ın konfigurasiya faylına keçid alırıq və orada bu sətirləri əlavə edirik: [root@rhel6 /]# nano /etc/sysconfig/iptables # Bu sətr 80(http) portu buraxmaqa icazə verir. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # Bu sətr tcp ilə range buraxmaqa icazə verir. -I INPUT -p tcp --dport 514 -s 192.168.56.0/24 -j ACCEPT # Bu sətr UDP ilə range buraxmaqa icazə verir. -I INPUT -p udp --dport 514 -s 192.168.56.0/24 -j ACCEPT
və bununla iptables konfigurasiya faylı ilə işimiz bitir, sonra iptables servizinin yeniləyirik:
[root@rhel6 /]# service iptables restart
LogAnalyzer-ın qurulması:
Əvvəl loganalyzerı yükləyirik:
[root@rhel6 /]# cd /tmp</p> [root@rhel6 /]# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.6.tar.gz
<<<– çalışın ki beta versiyası olmasın, burada görtərdiyim son stable versiyadır.
sonra onu arxivdən çıxardırıq:
[root@rhel6 /]# tar -xvf loganalyzer-3.6.6.tar.gz
həmin arxivdən aldığmız loganalyzer-3.6.6 qovluğun source qovluğuna daxil oluruq:
[root@rhel6 /] cd loganalyzer-3.6.6/src
və orada olan bütün faylları Apache html qovluğuna kopyalayıb, config.php faylını yaradırıq:
[root@rhel6 /]# mkdir -p /var/www/html [root@rhel6 /]# cp -R * /var/www/html [root@rhel6 /]# cd /tmp/loganalyzer-3.6.6/contrib/ [root@rhel6 /]# cp * /var/www/html [root@rhel6 /]# cd /var/www/html [root@rhel6 /]# chmod +x configure.sh secure.sh
Artıq bu fayıl mikro-program kimi çalışa bilər və biz onu execute edirik, o isə öz yerində bizə config.php faylını yaradır.
[root@rhel6 /]# ./configure.sh
Bunu ls -ltr əmri ilə yoxlaya bilərsiniz.
Artıq LogAnalyzer-ı web vasitəsi ilə açıb quraşdırmaq olar.
LogAnalyzer-ın web vasitəsi ilə qurulması:
Adətən CENTOS/RHEL sistemində Mozilla brauzeri default olaraq yüklənir və bizdə loganalizerin qurulmasını məhz Mozillada davam edəcəyik.
Brauzeri açıb address barda sizin servernizin adını yığın:
http://sisizin-servernizin-adi/src
Belə bir mesajla qarşılaşacaqsınız:
“Critical Error Occurred: Error main configuration file is missing! Click here to install Adiscon LogAnalyzer!”. “here” -sözünün üstünə mouse ilə tuşlayın.
Sonra isə iki dəfə “Next“-in üstünə tuşlayın və siz əsas menyuya keçid alacaqsınız “Basic Configuration” – həmin meyuda konfigurasiya belə olmalıdır:
-
Number of syslog messages per page: 200
-
Message character limit for main view: 80 (default)
-
Character display limit for all string fields: 80
-
Show message details popup: Yes (default)
-
Automatically resolved IP Addresses (inline): Yes (default)
-
Enable User Database: Yes
-
Database Host: localhost (default)
-
Database Port: 3306 (default)
-
Database Name: rsyslogdb
-
Table prefix: logcon_
-
Database User: rsyslog
-
Database Password: <sizinDBşifrə>
-
Require user to be logged in: Yes
Sonra “Next” tuşlayın.
Və “Create Tables” səhifəsində “Next” tuşlayın, “Creating the Main Useraccount” səhifəsində admin istifadəçisini gurun:
-
Username: <admin>
-
Password: <admin1>
-
Repeat Password: <admin1> <<<—Burada numunə üçün istifadəçi admin və onun şifrəsi admin1 kimi gorsədilib.
“Next” tuşlayın.
Növbəti səhifənin “Create the first source for syslog messages” qurulması üçün tövsiyə olunan konfigurasiya budur:
-
Name of the source: All Syslog Sources
-
Source type: MySQL Native
-
Select view: Syslog Fields (default)
-
Table type: MonitorWare
-
Database host: localhost (default)
-
Database name: rsyslogdb
-
Database table name: SystemEvents
-
Database user: rsyslog
-
Database password: <sisizinDBşifrəniz>
-
Enable row counting: “Yes”
“Next” sonra isə “Finish” tuşlayın.
Bununla server gurmuş oluruq.
İndi isə gəlin kliyent serverlərin sazlanmasına baxaq:
Kliyent RHEL/CENTOS sistemində nümunə kimi göstəriləcək:
/etc/rsyslog.conf faylında bu sətri əlavə edirik:
*.* @@192.168.56.101:514 <<<– Conf faylının sonun bunu əlavə edirik. Açılış: @-udp,@@-tcp protokoldan istifadə etmək, 192.168.56.101 – sizin loganalyzer servernizin ip-sidir, və 514 portdur.
#### MODULES #### <<<–Təxminən bu yazının yuxarısına.
Fayllı baglayırıq və prosesi yeniləyirik
[root@rhel6 /]# service rsyslog restart
Bununla kliyent hissəsində işimizi bitirdik.
Ugurlar.
Şərhlər ( 3 )
Çox faydalı,anlaşıqlı və gözəl. Təşəkkürlər.
@Emin Mammadov
Gözəl mövzuya görə Təşəkkür edirəm! Ardı gəlsin İNŞALLAH.
Təşəkkür edirəm, Ardı olacaq İNŞALLAH.