系統日志和loganalyzer

作為運維人員,熟悉系統日志是一項基本功。本文將介紹centos6的系統日志rsyslog及loganalyzer工具。

簡介

系統日志:記錄歷史事件,通常都是按時間順序將發生的事件予以記錄,linux上的日志分為syslogd(系統進程相關日志)和klogd(內核事件日志)

centos5:syslog

   缺點:不能進行并行數據存儲,效率低,不能實現放在專用數據管理文件中

centos6:rsyslog

   優點:

      1、支持多線程

      2、基于tcp,tls,relp放在遠程日志服務器中,早期的syslog僅支持簡單的文本傳輸模式實現日志發送,不安全

      3、支持將日志放到mysql,pgsql,oracle等多種數據庫中

      4、強大的過濾器,可實現過濾系統信息中的任意部分

      5、支持完整的輸出格式配置(自定義格式),特別適合企業級需求

facility:設施,從功能或程序上對日志進行分類,并由專門的工具負責記錄其日志,不是syslog一個進程來接受,而是由代理人幫忙接受并記錄下來

auth:認證相關

authpriv

cron

daemon:進程相關

lpr:打印機相關

mail:郵件相關

kern:內核相關

mark:防火墻標記相關

news:新聞組

security:安全

syslog:系統日志

user:用戶相關

uucp:unix to unix copy

local0 through local7:8個自定義的設施

指定設施可以使用通配符:

*:所有設備

f1;f2;f3:列表

!:取反

日志級別:

   debug

   notice

   warn|warning(此級別及以上級別都應該重視)

   error

   crit(藍色警戒,再不處理就掛了)

   alert(橙色警戒)

   emerg|panic(紅色警戒)

   能使用的通配符:

      *:所有級別

      none:不記錄

target(將保存至的目標文件):

文件:例如/var/log/message

用戶:*當前系統登錄的所有用戶

日志服務器:@server_ip

管道:| command

事件格式:

   時間  主機  進程  事件本身

配置文件:/etc/rsyslog.conf或/etc/rsyslog.d/*

配置文件段落:
[root@stu etc]# grep '###' /etc/rsyslog.conf
#### MODULES ####
#### GLOBAL DIRECTIVES ####
#### RULES ####
# ### begin forwarding rule ###
# ### end of the forwarding rule ###

   格式:facility.priority   target

例如:

mail.info   /var/log/maillog   info及以上級別

mail.=info   /var/log/maillog 明確指定級別

mail.!info   除了指定級別

*.info   所有facility的info及以上級別

mail.*   mail的所有級別

mail,news.info  mail和news的info及以上級別

mail.notice;news.info如果級別不同,使用;分隔

*.info  | command

日志一般是同步的,只有產生日志,就從內存寫到磁盤,若使用異步,則在target前面加

例1:日志服務器

服務器端:

去掉注釋并重啟即可打開日志服務器功能
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
重啟日志服務器
[root@stu etc]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
查看端口:
[root@stu etc]# netstat -tnulp | grep 514
tcp        0      0 0.0.0.0:514                 0.0.0.0:*                   LISTEN      1398/rsyslogd       
tcp        0      0 :::514                      :::*                        LISTEN      1398/rsyslogd       
udp        0      0 0.0.0.0:514                 0.0.0.0:*                               1398/rsyslogd       
udp        0      0 :::514                      :::*                                    1398/rsyslogd

客戶端:

修改配置文件:
#*.info;mail.none;authpriv.none;cron.none                /var/log/messages
*.info;mail.none;authpriv.none;cron.none                @192.168.0.20
重啟:
[root@stu ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
測試安裝zsh:
[root@stu ~]# yum -y install zsh
查看服務器日志:
[root@stu log]# tail -l /var/log/messages 
Mar 13 10:00:49 stu ntpd[1211]: 0.0.0.0 c016 06 restart
Mar 13 10:00:49 stu ntpd[1211]: 0.0.0.0 c012 02 freq_set kernel 11.318 PPM
Mar 13 10:00:50 stu ntpd[1211]: 0.0.0.0 c615 05 clock_sync
Mar 13 10:09:58 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:09:58 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1048" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar 13 10:09:58 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:09:58 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1398" x-info="http://www.rsyslog.com"] start
Mar 13 10:12:11 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:12:11 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1336" x-info="http://www.rsyslog.com"] start
Mar 13 10:13:45 stu yum[1344]: Installed: zsh-4.3.11-4.el6.centos.x86_64

例2:將日志放到mysql中

實現該功能需要用模塊來實現,用驅動連接

安裝mysql-server,rsyslog-mysql:
[root@stu log]# yum -y install mysql-server rsyslog-mysql
查看生成文件:
[root@stu log]# rpm -ql rsyslog-mysql
/lib64/rsyslog/ommysql.so   #模塊
/usr/share/doc/rsyslog-mysql-5.8.10   
/usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql   #模板
啟動mysql
[root@stu ~]# service mysqld start
編輯/etc/rsyslog.conf
模塊端添加:
#log event to mysql
$ModLoad ommysql
roles端添加:
*.info   :ommysql:127.0.0.1,Syslog,rsysloguser,rsyslogpass
導入文件(即創建數據庫):
[root@stu ~]# mysql < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
進入數據庫:
[root@stu ~]# mysql
查看數據庫:
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.05 sec)
使用Syslog:
mysql> USE Syslog;
查看表:
mysql> SHOW TABLES;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.01 sec)
創建用戶、密碼
mysql> GRANT ALL ON Syslog.* TO rsysloguser@127.0.0.1 IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.01 sec)

mysql> GRANT ALL ON Syslog.* TO rsysloguser@localhost IDENTIFIED BY 'rsyslogpass';
Query OK, 0 rows affected (0.00 sec)
刷新權限:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
重啟rsyslog:
[root@stu ~]# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

客戶端安裝tree:

[root@stu log]# yum -y install tree

查看客戶端日志:

[root@stu log]# tail -l /var/log/messages

查看服務器日志:

[root@stu ~]# tail -l /var/log/messages
Mar 13 10:24:15 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:24:15 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1398" x-info="http://www.rsyslog.com"] exiting on signal 15.
Mar 13 10:24:16 stu kernel: imklog 5.8.10, log source = /proc/kmsg started.
Mar 13 10:24:16 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1600" x-info="http://www.rsyslog.com"] start
Mar 13 10:25:54 stu yum[1621]: Updated: mysql-libs-5.1.73-5.el6_6.x86_64
Mar 13 10:25:54 stu yum[1621]: Installed: mysql-5.1.73-5.el6_6.x86_64
Mar 13 10:31:35 stu ntpd[1177]: 0.0.0.0 0617 07 panic_stop +3285 s; set clock manually within 1000 s.
Mar 13 10:32:18 stu ntpd[1211]: 0.0.0.0 0617 07 panic_stop +3285 s; set clock manually within 1000 s.
Mar 13 10:34:31 stu kernel: Kernel logging (proc) stopped.
Mar 13 10:34:31 stu rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="1600" x-info="http://www.rsyslog.com"] exiting on signal 15.

查看服務器mysql:

mysql> USE Syslog;
mysql> SELECT * FROM SystemEvents;
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| ID | CustomerID | ReceivedAt          | DeviceReportedTime  | Facility | Priority | FromHost | Message                                                                                                             | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryData | MaxAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag  | EventLogType | GenericFileName | SystemID |
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
|  1 |       NULL | 2016-03-13 11:46:42 | 2016-03-13 11:46:42 |        0 |        6 | stu      | Kernel logging (proc) stopped.                                                                                      |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | kernel:    | NULL         | NULL            |     NULL |
|  2 |       NULL | 2016-03-13 11:46:42 | 2016-03-13 11:46:42 |        5 |        6 | stu      |  [origin software="rsyslogd" swVersion="5.8.10" x-pid="1673" x-info="http://www.rsyslog.com"] exiting on signal 15. |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:  | NULL         | NULL            |     NULL |
|  3 |       NULL | 2016-03-13 11:46:43 | 2016-03-13 11:46:43 |        0 |        6 | stu      | imklog 5.8.10, log source = /proc/kmsg started.                                                                     |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | kernel:    | NULL         | NULL            |     NULL |
|  4 |       NULL | 2016-03-13 11:46:43 | 2016-03-13 11:46:43 |        5 |        6 | stu      |  [origin software="rsyslogd" swVersion="5.8.10" x-pid="2794" x-info="http://www.rsyslog.com"] start                 |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:  | NULL         | NULL            |     NULL |
|  5 |       NULL | 2016-03-13 11:47:02 | 2016-03-13 11:47:02 |        5 |        6 | stu      |  [origin software="rsyslogd" swVersion="5.8.10" x-pid="1336" x-info="http://www.rsyslog.com"] rsyslogd was HUPed    |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | rsyslogd:  | NULL         | NULL            |     NULL |
|  6 |       NULL | 2016-03-13 11:48:40 | 2016-03-13 11:48:40 |        1 |        6 | stu      |  Installed: tree-1.5.3-3.el6.x86_64                                                                                 |       NULL |       NULL | NULL        | NULL      |          NULL |    NULL | NULL            |         NULL |      NULL |     NULL |     NULL |          1 | yum[1620]: | NULL         | NULL            |     NULL |
+----+------------+---------------------+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
6 rows in set (0.00 sec)

例3:通過loganalyzer展示

此軟件依賴于lamp平臺

安裝lamp:

[root@stu ~]# yum –y install httpd php php-mysql php-gd   mysql-server

啟動httpd:

[root@stu ~]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.0.20 for ServerName
                                                           [  OK  ]

編輯測試頁:

vim /var/www/index.php
<?php
    phpinfo();
?>

訪問web:

blob.png

刪除測試頁

解壓loganalyzer:

[root@stu ~]# tar xf loganalyzer-3.6.5.tar.gz

創建log目錄

[root@stu ~]# mkdir /var/www/html/log

復制文件

[root@stu log]# cp /root/loganalyzer-3.6.5/src/* .
[root@stu log]# cp /root/loganalyzer-3.6.5/contrib/* .
[root@stu log]# chmod +x ./configure.sh 
[root@stu log]# chmod +x ./secure.sh
[root@stu log]# ./configure.sh 
[root@stu log]# ./secure.sh 
[root@stu log]# chmod 666 config.php 
[root@stu log]# chown -R apache.apache ./*

訪問:

blob.png

blob.png

blob.png

blob.png

blob.png

紅色框為之前填寫的數據庫名,表名,用戶名,密碼

blob.png

blob.png

blob.png

原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/12748

(0)
黑白子黑白子
上一篇 2016-03-20
下一篇 2016-03-20

相關推薦

  • 雖千萬人吾往矣

    哈佛有句名言 “當你覺得為時已晚的時候,恰恰是最早的時候”。這句話給了我雖千萬人吾往矣的勇氣。 之前那份工作懶散 安逸 。當我下定決心從那種環境中走出來的時候還是下了很大的決心。陌生的行業 陌生的環境 陌生的前途。我抱著對這份行業無限的憧憬來到了北京。   作為一個南方人的確有點不適合北方這黃沙漫漫的城市,剛來的一兩天不停的打噴嚏,可能這就是北京歡…

    Linux干貨 2018-03-26
  • N22-網絡班 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod -R go= /home/tuser1 2、編輯/etc/group文件,添加組hadoop?!?/p>

    Linux干貨 2016-09-19
  • 往死里苦練腳本啊啊啊啊啊啊啊~~~~~~~~~~~~~~~~

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #腳本內容 [root@centos script]# cat week9_title1.sh  #!/bin/bash #Author …

    Linux干貨 2017-02-16
  • 第六周

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s/^[[:space:]]\+/#&/ 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白字符; :%s/^[[:space:]]\…

    Linux干貨 2016-09-19
  • 第七周練習

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; 1.[root – gwx ~]#>fdisk /dev/sdb2.W…

    Linux干貨 2016-12-11
  • Nginx:

    來自為知筆記(Wiz)

    Linux干貨 2016-10-26

評論列表(1條)

  • stanley
    stanley 2016-03-20 12:00

    確實很認真,但少了很多層次感

欧美性久久久久