日誌主機安裝指南

lee_lgw發表於2021-09-09


一.希望達到的目的

       1.伺服器日誌集中存放到MySQL資料庫中;

       2.每天傳送一封E-MAIL, 報告異常日誌條目;

       3.實時報告異常系統事件;

       4.WEB介面查詢日誌;

二.日誌主機安裝和配置

各個軟體的功能及互動圖

 

 

1.安裝syslog-ng:

   從[url][/url]下載 eventlog, libol, syslog-ng 的tarball.

   安裝eventlog:   # ./configure  --prefix=/usr/local/eventlog && make && make install

   安裝 libol:      # ./configure –prefix=/usr/local/libol &&make && make install

   安裝 syslog-ng:  # export PKG_CONFIG_PATH=/usr/local/eventlog/pkgconfig/

                           # ./configure –prefix=/usr/local/syslog-ng --with-libol=/usr/local/libol

                           # make && make install

   配置 syslog-ng:  # vi /usr/local/syslog-ng/etc/syslog-ng/syslog-ng.conf

        options {

            keep_hostname(yes);

            long_hostnames(off);

            sync(1);

            log_fifo_size(1024);

    create_dirs(yes);  # if a dir does not exist create it

            owner(root);       # owner of created files

            group(root);       # group of created files

            perm(0600);        # permissions of created files

            dir_perm(0700);    # permissions of created dirs

};

    source s_all {

            udp();                    # remote logs

                                      # arriving at 514/udp

            unix-stream("/dev/log");  # local system logs

            file("/proc/kmsg");       # local kernel logs

            internal();               # internal syslog-ng logs

            };

    destination single-file {

             file("/var/log/syslog-ng/all-messages");

            };

    log {

            source(s_all);

            destination(single-file);

            };

   啟動 syslog-ng:  # /etc/init.d/syslog stop

                    # /usr/local/syslog-ng/sbin/syslog-ng

   驗證:ps –ef|grep syslog-ng

         檢視檔案:/var/log/syslog-ng/all-messages

2. 安裝MySQL到 /usr/local/mysql 下,以存放日誌。

3. 安裝 SQLSyslogd, 以便將日誌寫入 MySQL 資料庫中:

   從 [url]http://www.frasunek.com/sources/security/sqlsyslogd/[/url] 下載SQLSyslogd

   安裝:# ln –s /usr/local/mysql/lib/mysql /usr/local/lib/mysql

         # ln –s /usr/local/mysql/include/mysql

              /usr/local/include/lib

         # make && cp sqlsyslogd /usr/local/sbin/

         # cat “/usr/local/lib/mysql” >> /etc/ld.so.conf && ldconfig

   驗證 sqlsyslogd 能正常執行:# sqlsyslogd

        如果正常,你可以看到 sqlsyslogd 的幫助資訊。

   修改 sqlsyslogd.sql 檔案: # vi sqlsyslogd.sql

        create database sqlsyslogd;

        use sqlsyslogd;

        create table logs (

            Id int(10) NOT NULL auto_increment,

            Timestamp varchar(16),

            Host varchar(50),

            Prog varchar(50),

            Mesg text,

            PRIMARY KEY (id)

        );

        use mysql;

        create user sqlsyslogd@localhost identified by ‘foo’;

        grant all on sqlsyslogd.* to sqlsyslogd;

        flush privileges;

        # sql –u root –p < sqlsyslogd.sql

        # vi /usr/local/etc/sqlsyslogd.conf

          foo

   修改 syslog-ng.conf 檔案,新增下面幾行:

      destination mysql {

            program(“/usr/local/sbin/sqlsyslogd –u sqlsyslogd

                      –t logs sqlsyslogd –p”);

            };

      log {

            source(all);

            destination(mysql);

            };

   重啟 syslog-ng: # pkill –SIGHUP syslog-ng

   驗證:現在你應該可以透過 MySQL 客戶端軟體檢視日誌了。

4.安裝 logcheck 和 newlogcheck:

   從 [url][/url] 下載 logcheck,

   從 [url][/url] 下載 newlogcheck.tgz

   安裝:# mkdir –p /usr/local/logcheck/bin

           /usr/local/logcheck/etc/ /usr/local/logcheck/tmp

         # cd logcheck-<version>

           修改 Makefile 檔案,將其中的 /usr/local 改

           為 /usr/local/logcheck

          # make linux

          # cd newlogcheck-<version> &&

            cp *.* /usr/local/logcheck/etc/

    配置:根據logcheck各個檔案的位置修改 /usr/local/logcheck/etc/

          目錄下的 newlogcheck.sh 和 sort_logs.pl

          # mkdir /usr/local/logcheck/tmp/host

    測試:# /usr/local/logcheck/etc/newlogcheck.sh

     如果安裝正常,你應該收到一封e-mail, 現在你可以安裝一個

     crontab 來自動化logcheck日誌

     檢查: # crontab –e

                …

                10 2 * * * /usr/local/logcheck/etc/newlogcheck.sh

5.安裝 swatch:

   按順序安裝下面的perl 模組:Carp-Clan, Bit-Vector, Date-Calc,

   Time-HiRes, File-Tail,TimeDate, swatch(使用3.0.8版本,

   不要用3.0.12)

   配置 swatch: #vi /etc/swatch.conf

    watchfor /Failed password/

        mail address=root, subject=warning: Failed password

        throttle 01:00

    watchfor /Invalid user/

        mail address=root, subject=warning: Invalid user

        throttle 01:00

    watchfor /authentication failure/

        mail address=root, subject=warning: authentication failure

        throttle 01:00

    watchfor /iptables:/

        mail address=root, subject=warning: iptables operation

        throttle 01:00

    watchfor /Duplicate address/

        mail address=root, subject=warning: Duplicate address

        throttle 01:00

    watchfor /file system full/

        mail address=root, subject=warning: file system full

        throttle 01:00

    watchfor /(panic|halt)/

        mail address=root, subject=warning: panic or halt happened

        throttle 01:00

    watchfor /Media Error/

        mail address=root, subject=warning: disk error happened

        throttle 01:00

    ……

   執行swatch: # /usr/bin/swatch --config-file=/etc/swatch.conf

                   --tail-file=/var/log/syslog-ng/all-messages &

   驗證:ps –ef|grep swatch | grep –v grep

         如果正常,你應該看到2個程式:

         root  ......   /usr/bin/perl /usr/bin/swatch

                  --config-file=/etc/swatch.conf

                  --tail-file=/var/log/syslog-ng/all-messages

         root  ......   /usr/bin/perl

                 /root/.swatch_script.17374 ß 你看到的將是其他數字

6.安裝 splunk:

   從 [url][/url] 下載 splunk tarball

   解壓 splunk tarball 並將其移動到 /usr/local/splunk

   修改 /usr/local/splunk/bin/setSplunkEvn  

   和 /usr/local/splunk/etc/init.d/redhat/splunk,將

   其中的 $SPLUNK_HOME 設定為 /usr/local/splunk, 將  

   /usr/local/splunk/etc/init.d/redhat/splunk 複製到

   /etc/init.d/目錄下,

   # chmod 700 /etc/init.d/splunk && chkconfig splunk on

   啟動splunk: /etc/init.d/splunk start

   現在你可以透過 WEB 瀏覽器訪問 splunk 了:[url][/url]

 

   配置:

        

現在你可以搜尋日誌了.

7.配置啟動:vi /etc/rc.local

/usr/local/syslog-ng/sbin/syslog-ng

/usr/bin/swatch –config-file=/etc/swatch.conf

   –tail-file=/var/syslog-ng/all-messages &

 

三.日誌客戶機配置

這裡所說的日誌客戶機指需要把自己的日誌傳送給日誌主機的伺服器。

我們在日誌客戶機上的配置很簡單,只需要兩步:

1. 在 /etc/syslog.conf 檔案新增一項,使日誌客戶機把自己的嚴重程度在.info以上的日誌也傳送給日誌主機:

# cat /etc/syslog.conf

...

*.info                               @log_host

2. 在 /etc/hosts 檔案裡面新增一項,使日誌客戶機能解析上面的 log_host:

# cat /etc/hosts

...

x.x.x.x                              log_host

 

總結,配置一個日誌主機,需要花費較大的功夫。但是,一旦你配置好了,它給你帶來的益處也很大,比如,你能夠隨時查閱很久以前的日誌,你能及時知道某臺伺服器的硬碟有問題了,如果有駭客入侵了你的伺服器,不管他如何銷燬自己的蹤跡,你都能夠他在入侵過程中留下的痕跡,等等等等。所以,花大力氣建立這樣一個日誌主機還是明智的。

©著作權歸作者所有:來自51CTO部落格作者zkjian517的原創作品,如需轉載,請與作者聯絡,否則將追究法律責任

日誌休閒swatch作業系統


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2820913/,如需轉載,請註明出處,否則將追究法律責任。

相關文章