لینوکس به صورت پیش فرض داری پکیج syslog میباشد و شما میتوانید از آن به عنوان سرور متمرکز syslog استفاده کنید. اساسا میتوان از آن برای ارسال تمام لاگ فایل ها از دیوایس ها یا تجهیزات شبکه تان به صورت ریموت استفاده کرد. همچنین یکسری پکیج های معروف تر syslog موجود هستند که میتوانید از آنها استفاده کنید همانند syslog-ng,rsyslog & splunk syslog که همه آنها قابلیت ها و انعطاف پذیری های بیشتری را ارائه میدهند.
در این پست ما قصد داریم از سرور syslogd/sysklogd استفاده کنیم که در حقیقت یک نرم افزار چند platform و پایدار میباشد.
[Syslog Server]
1 - ابتدا از نصب پکیج sysklogd روی سیستم خود مطمئن شوید :
2 - سرویس syslog را start کنید :
3 - بررسی کنید که آیا process آن در حال اجرا باشد :
4 - syslog را کانفیگ میکنیم :
فایل های کانفیگ :
آپشن -r را برای فعال کردن loging از ماشین های remote به فایل زیر اضافه میکنیم :
5 - سرویس syslog را restart میکنیم :
[Client devices]
تا اینجا تنظیمات سمت سرور syslog را انجام دادیم و اکنون زمان آن رسیده که کلاینتی که قرار هست لاگ هایش را به سرور syslog ارسال کند را کانفیگ نمایید. ممکن است این کلاینت ها یک ماشین لینوکسی، یک ماشین ویندوزی یا یک دیوایس سیسکو و یا یک دیوایس جونیپر باشد. به هر حال در هر کدام از این کلاینت ها باید تنظیماتی انجام دهیم.
a ) سرور های لینوکسی (Linux Server) :
بعد از نصب پکیج syslog روی کلاینت لینوکسی وارد فایل /etc/syslog.conf شده و تنظیمات آن را همانند آنچه در زیر میبینید تغییر میدهیم :
نکته : دقت کنید به جای ip 172.16.0.100 از ip مربوط به سرور syslog تان استفاده کنید.
b ) دیوایس های سیسکو و یا موتورولا (Cisco/Motorola) :
نکته : دقت کنید که به جای ip 172.16.0.100 از ip سرور syslog استفاده کنید.
c ) سیستم عامل جونیپر (Juniper OS) :
نکته : دقت کنید که به جای ip 172.16.0.100 از ip سرور syslog استفاده کنید.
d ) یونیکس (Unix) :
e ) ویندوز (Windows) :
در ویندوز راه مستقیمی برای کانفیگ کردن کلاینت های syslog یا ارسال پیغام های لاگ به سرور syslog وجود ندارد. شما باید از کلاینت های syslog همانند snare و winlogd استفاده کنید که من در این پست در مورد آنها صحبت نخواهم کرد.
راه دوم ارسال لاگ ها به عنوان snmp trap و با استفاده از کانفیگ سرویس snmp و همچنین استفاده از event برای trap translator یا دستور "evntwin" میباشد.
ترفند های اضافی :
1 - برای اینکه syslogd فایل کانفیگش را دوباره بخواند یک سیگنال hangup به سمتش ارسال کنید :
2 - با امکانات و جزییات بیشتر سطوح مختلف syslog آشنا شوید که مرجع خوبی درباره آن میتواند wiki باشد.
http://en.wikipedia.org/wiki/Syslog
نمونه فایل syslog نیز در قسمت config-script در لینک گفته شده میباشد که میتواند برای ادمین های سیستم بسیار مفید باشد.
3 - شما میتوانید بررسی کنید که آیا پیغام ها به سرور syslog تان ارسال و log میشود یا خیر؟ و برای تست کردن فایل /etc/syslog.conf خود میتوانید از دستور loger استفاده کنید :
همچنین توصیه میشود مطالعه کنید :
آموزش نصب و راه اندازی Splunk Log Analyzer روی CentOS 7
مانیتور log های سرور به صورت Real-Time با استفاده از ابزار Log.io در RHEL/CentOS 7/6
با آرزوی موفقیت ...
در این پست ما قصد داریم از سرور syslogd/sysklogd استفاده کنیم که در حقیقت یک نرم افزار چند platform و پایدار میباشد.
[Syslog Server]
1 - ابتدا از نصب پکیج sysklogd روی سیستم خود مطمئن شوید :
کد PHP:
[root@freelinux ~]# rpm -qa | grep sysklogd
sysklogd-1.4.1-46.el5
کد PHP:
[root@freelinux ~]# service syslog start
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
کد PHP:
[root@freelinux ~]# ps -ef | grep syslog
root 2174 1 0 17:53 ? 00:00:00 syslogd -m 0
root 2180 2110 0 17:54 pts/1 00:00:00 grep syslog
[root@freelinux ~]# ls -la /var/run | grep syslog
-rw——- 1 root root 5 Oct 9 17:53 syslogd.pid
فایل های کانفیگ :
کد PHP:
/etc/sysconfig/syslog
/etc/syslog.conf
کد PHP:
[root@freelinux ~]# cat /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables ‘MARK’ messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS=”-r -m 0?
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with ‘ksymoops’
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS=”-x”
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for “group” and “other”.
کد PHP:
[root@freelinux ~]# service syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
[Client devices]
تا اینجا تنظیمات سمت سرور syslog را انجام دادیم و اکنون زمان آن رسیده که کلاینتی که قرار هست لاگ هایش را به سرور syslog ارسال کند را کانفیگ نمایید. ممکن است این کلاینت ها یک ماشین لینوکسی، یک ماشین ویندوزی یا یک دیوایس سیسکو و یا یک دیوایس جونیپر باشد. به هر حال در هر کدام از این کلاینت ها باید تنظیماتی انجام دهیم.
a ) سرور های لینوکسی (Linux Server) :
بعد از نصب پکیج syslog روی کلاینت لینوکسی وارد فایل /etc/syslog.conf شده و تنظیمات آن را همانند آنچه در زیر میبینید تغییر میدهیم :
کد PHP:
[root@freelinux ~]# cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
*.* @172.16.0.100
# 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
b ) دیوایس های سیسکو و یا موتورولا (Cisco/Motorola) :
کد PHP:
Cisco#configure terminal
Cisco#logging facility local6
Cisco#logging 172.16.0.49
نکته : دقت کنید که به جای ip 172.16.0.100 از ip سرور syslog استفاده کنید.
c ) سیستم عامل جونیپر (Juniper OS) :
کد PHP:
darwin@Juniper> configure
Entering configuration mode
{master}[edit]
darwin@Juniper#
darwin@Juniper# set system syslog host a.a.a.a facility-override local6 any any
darwin@Juniper#commit synch
darwin@Juniper#show configuration
host 172.16.0.100 {
any any;
facility-override local6;
}
نکته : دقت کنید که به جای ip 172.16.0.100 از ip سرور syslog استفاده کنید.
d ) یونیکس (Unix) :
کد PHP:
# @(#)B.11.11_LR
#
# syslogd configuration file.
#
# See syslogd(1M) for information about the format of this file.
#
mail.debug /var/adm/syslog/mail.log
*.info;mail.none;local1.none;local2.none;local5.none;local6.none;local7.none /var/adm/syslog/syslog.log
*.alert /dev/console
#*.alert root
*.emerg *
local4.info /var/adm/syslog/fw.log
local6.info /var/adm/syslog/cisco.log
e ) ویندوز (Windows) :
در ویندوز راه مستقیمی برای کانفیگ کردن کلاینت های syslog یا ارسال پیغام های لاگ به سرور syslog وجود ندارد. شما باید از کلاینت های syslog همانند snare و winlogd استفاده کنید که من در این پست در مورد آنها صحبت نخواهم کرد.
راه دوم ارسال لاگ ها به عنوان snmp trap و با استفاده از کانفیگ سرویس snmp و همچنین استفاده از event برای trap translator یا دستور "evntwin" میباشد.
ترفند های اضافی :
1 - برای اینکه syslogd فایل کانفیگش را دوباره بخواند یک سیگنال hangup به سمتش ارسال کنید :
کد PHP:
[root@freelinux ~]# kill -HUP `cat /var/run/syslog.pid`
http://en.wikipedia.org/wiki/Syslog
نمونه فایل syslog نیز در قسمت config-script در لینک گفته شده میباشد که میتواند برای ادمین های سیستم بسیار مفید باشد.
3 - شما میتوانید بررسی کنید که آیا پیغام ها به سرور syslog تان ارسال و log میشود یا خیر؟ و برای تست کردن فایل /etc/syslog.conf خود میتوانید از دستور loger استفاده کنید :
کد PHP:
e.g.
@/etc/syslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
[root@freelinux ~]# logger -p user.info “Test Message”
[root@freelinux ~]# tail /var/log/messages
همچنین توصیه میشود مطالعه کنید :
آموزش نصب و راه اندازی Splunk Log Analyzer روی CentOS 7
مانیتور log های سرور به صورت Real-Time با استفاده از ابزار Log.io در RHEL/CentOS 7/6
با آرزوی موفقیت ...