1 Temmuz 2012 Pazar

Syslog Server Kurmak

Merhabalar ;
Son yazımdaki Syslog kurulumu çok karışık geldiği için şikayet geldi.Bende baştan yazıyorum.Bu sefer cactiyi karıştırmıyorum.


Syslog kurulumunu baştan yaparken bir tarafdan yaptığım herşeyi yazıyor olacağım.
Sanal sunucu üzerine Centos 5.3 i386 OS sistemi kurdum.kurulum modunda Linux text seçtim.
İp ayarları ile uğraşmamak için dinamik ip seçtim
Dili US
Klawye trq
Zaman dilimi europa/İstanbul
Hostname   syslogtest
Kurulum bitiminde firewall kapattım. Burası çok önemli….
Koyu-italik-altıçizi yazılanların hepsi komutsatırında yazılacak...

Vi /etc/ssh/sshd_config
Dosyası içinde PermitRootLogin yes başındaki # kaldırıyoruz.Kaydediyoruz.Bu şekilde uzaktan root ile ssh yapabileceğiz.
Service sshd restart
Artık makineye shh ile  bağlanabiliriz.Ben uzaktan bağlanmak için SecureCRT kullanıyorum.
Yum update
Yum install ntp
Ntpdate –u “sistemizdeki DC ipsi”
Date
Sistemimizi güncelliyorum.Saatimizin doğrulunu görebiliriz.
yum install httpd mysql mysql-server php php-mysql rsyslog rsyslog-mysql
Sistemiz için gerekli tüm dosyaları kurulmuş oluyor.
chkconfig mysqld on
chkconfig httpd on
chkconfig rsyslog on

Sistemi yeniden başlattığımızda bu servislerin otomatik başlamasını sağlıyoruz.
service mysqld start
service httpd start
bu servisleri şimdi başlatıyoruz.
yum remove sysklogdCentos da zaten basit bir syslog aktif halde gelir bunu kaldırıyoruz.Çünkü bizimkiyle çakışıyor. 

service rsyslog start
bu servisi şimdi başlatıyoruz.
Starting system logger: [  OK  ] yazısını görmemiz lazım…
vi /etc/rsyslog.conf
Yazdığımızda rsyslogun ayar dosyası aşağıdaki gibi gelir.
# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log




Aşağıdaki bu listenin başına eklememiz gerekiyor.

$ModLoad ommysql
*.*       :ommysql:127.0.0.1,LogAnalyzer,log_user,log_user

$Modload imudp
$UDPServerRun 514
$Modload imtcp
$InputTCPServerRun 514



*.*       :ommysql:127.0.0.1,LogAnalyzer,log_user,log_user  yazan yerde
LogAnalyzer   ----DB ismi
log_user        -----db kullanıcı ismi
log_user        -----db kullanıcı şifresi

Dosyanın  son hali
$ModLoad ommysql
*.*       :ommysql:127.0.0.1,LogAnalyzer,log_user,log_user

$Modload imudp
$UDPServerRun 514
$Modload imtcp
$InputTCPServerRun 514

# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
~
~

service rsyslog restart
Shutting down system logger: [  OK  ]
Starting system logger: [  OK  ]
netstat -an |grep 514
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN     
tcp        0      0 :::514                      :::*                        LISTEN     
udp        0      0 0.0.0.0:514                 0.0.0.0:*                              
udp        0      0 :::514                      :::* 

şeklinde karşılaşırız. Yukarıda bize bildiğiniz gibi syslog bize 514 portu dinlediğini söylüyor.

mysqladmin create LogAnalyzer
LogAnalyzer isimli DB oluşturuyoruz.Tüm loglar bu database yazılacak...
mysql -u root mysql
Bu komut ile birlikte mysql içine giriyoruz.

mysql> CREATE USER 'log_user'@'localhost' IDENTIFIED BY 'log_user';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON LogAnalyzer.* TO 'log_user'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.00 sec)

Bu komutlar ile localhostda yani sadece makine üzerinde log_user  isimli log_user şifreli kullanıcı oluşturduk.
LogAnalyzer isimli DBsinde bu kullanıcıya full yetki verdik.
Sonra bu yetkileri etkin hale getirdik.


mysql> create DATABASE loganalyzer_db; 
Query OK, 1 row affected (0.00 sec)
mysql> create USER 'loguser'@'localhost' IDENTIFIED BY 'loguser';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON loganalyzer_db.* TO 'loguser'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES ;
Query OK, 0 rows affected (0.00 sec)

Bu komut ile LogAnalyzer in kullanıcı bilgilerinin saklanacağı loganalyzer_db isimli bir database oluşturduk. Loguser isimli başka bir kullanıcıyı buraya full yetkili yaptık.

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| LogAnalyzer        |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)
Bu komut sistemimizdeki Database leri gösterir. Kontrol amaçlı bakabilirsiniz.


mysql> use LogAnalyzer;
Database changed
mysql>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
);
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE SystemEventsProperties
(
ID int unsigned not null auto_increment primary key,
SystemEventID int NULL ,
ParamName varchar(255) NULL ,
ParamValue text NULL
);


Query OK, 0 rows affected (0.02 sec)
LogAnalyzer database  içindeki taploları şekillendirdik. Mysql ile işimiz bitti.
mysql> exit
Bye

şimdi biz LogAnalyzer geçelim
http://loganalyzer.adiscon.com/  sitesinden son stable versiyonu indirelim yazıyı yazığım zaman güncel verisyon

cd /var/www/html/
wget
http://download.adiscon.com/loganalyzer/loganalyzer-3.4.4.tar.gz
tar -xzvf loganalyzer-3.4.4.tar.gz
ls


loganalyzer-3.4.4  loganalyzer-3.4.4.tar.gz

Yukarıda html klasörü içerisine sıkıştırılmış haldeki loganalyzeri indirip dışarı çıkardık..

cd loganalyzer-3.4.4
ls
ChangeLog  contrib  COPYING  doc  INSTALL  src
cp -fR src/* /var/www/html/
cp -fR contrib/* /var/www/html/
cd ..
chmod +x configure.sh
./configure.sh
Eğer firewall kapalı ise
http://ip-adresimiz yazığımızda LogAnalyzer kurulum ekranı gelecek
kuruluma başlıyoruz.Next-next-next

3. Adıma geldiğimizde User Database Options  kısmını yes diyelim.
Database Host        localhost
Database port        3306
Database Name     loganalyzer_db
Table prefix            logcon_
Database User       loguser
Database Password    loguser
Require user to be logged in  yes
Burda dikkat ettiysek Mysql üzerinde 2. Oluşturduğumuz database ve o database in kullanıcı bilgisini kullandık.
Next
4. adımda bu database üzerinde ki Tabloları oluşturacak.
Next
6. adımda Creating the Main Useraccount
Burada bir LogAnalyzer için kullanıcı oluşturacağız
Username admin
Password 123456
Next
7.Adım  Create the first source for syslog messages


Burda Rsyslogun log  attığı database göstereceğiz.
Ortamda birden fazla database olma ihtimali var.İstediğiniz kadar database ekleyebilirsiniz.
Name of the Source         önemli değil istediğniz ismi verebilirsiniz.Ben Default bıraktım.
Source of Type                      MYSQL Native          
Select View                            Syslog Fields
Database Type Options
Table type                              ManitorWare
Database Host                       localhost
Database Name                     LogAnalyzer
Database Tablename           SystemEvents
Database User                       log_user
Database Password             log_user
Enable Row Counting           yes

Next
Step 8 - Done

Congratulations! You have successfully installed LogAnalyzer :)!

Click here to go to your installation.

Tebrikler Kurulum tamamlandı. Yeni oluşturduğumuz kullanıcı adımızı giriyoruz…..


İstersek test yapalım.
logger "deneme"










Hiç yorum yok:

Yorum Gönder