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.