linux 多线程 写日志,rsyslog多线程远程日志记录介绍(lamp+rsyslog)
rsyslog多線程遠程日志記錄介紹(lamp+rsyslog)
rsyslog:
rsyslog:
多線程;
支持UDP, TCP, SSL, TLS, RELP遠程日志記錄
rsyslog支持將日志記錄在MySQL, PGSQL, Oracle等多種關系數據庫中
rsyslog支持強大的過濾器,可實現過濾系統信息中的任意部分
自定義輸出格式
適用于企業級別日志記錄需求
對于日志產生速率非常快的,保存在數據庫中是不明智的,可能會使用nosql,分布式
elk組件: elasticsearch, logstash日志收集工具, kibana圖形展示工具
elk:輕量,易用,展示,分析平臺
elk:為獨立的,大量的日志生成而工作
日志生成方:應用程序和內核
每個應用程序都可自行記錄日志
內核也可記錄日志
rsyslog核心概念:
facility: 設施,從功能或程序上對日志進行分類,并由專門的工具負責記錄相應的日志信息;
auth;認證
authpriv:認證權限
cron:定期任務計劃
daemon:守護
kern:內核
lpr:打印系統
mail:郵件
mark:防火墻
news:新的
security:安全
syslog:自己的日志
user:用戶
uucp:uinxcp,uinx2
local0 - local7:自定義
priority:級別
debug:調試
info:除debug之外
notice:請關注
warn, warning:警告級別
err, error:發生錯誤
crit:藍色警報
alert:紅色警報
emerg, panic:橙色,紅色
指定級別的方式:
*: 所有級別
none: 沒有級別
priority: 比此級別高的(包含)所有級別的日志信息都會記錄
=priority: 僅記錄指定級別
文件記錄日志文件的格式:
事件產生的時間 ? ? ? ? ?主機 ? ? ? ? ? ? ? ? ?進程(PID): ? ? ? ? ? ? ? ? ? ? ?事件
有些日志記錄二進制格式,例如,兩個日志文件:
成功登錄系統的日志:/var/log/wtmp
查看命令:last
失敗的登錄的嘗試:/var/log/btmp
查看命令:lastb
lastlog命令:顯示當前系統每個用戶各自最近一次的登錄信息
rsyslog的配置文件:/etc/rsyslog.conf
一,模塊:
啟用本機成為日志服務器:
vim? /etc/rsyslog.conf
UDP
$ModLoad imudp
$UDPServerRun 514 ? ? ? 收集日志信息
開啟UDP模塊后便可以使用ss -unlp查看514端口是否開啟了
TCP
$ModLoad imtcp
$InputTCPServerRun 514
二,rsyslog支持把日志存儲于mysql中:
(1) 有可用的MySQL服務器;
簡單安裝:yum -y install mysql-server
(2) 安裝rsyslog-mysql程序包;
yum -y install rsyslog-mysql
(3) 創建rsyslog依賴的數據庫;
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(rpm -ql rsyslog-mysql可以查看sql文件位置)
(4)進入mysql查看Syslog是否已經導入
#mysql -u root -p
password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| blog
MariaDB [(none)]> use Syslog
Database changed
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
MariaDB [Syslog]> desc SystemEventsProperties;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| ID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| SystemEventID | int(11) | YES | | NULL | |
| ParamName | varchar(255) | YES | | NULL | |
| ParamValue | text | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
(5) 配置rsyslog啟用ommysql模塊;
vim /etc/rysylog.conf
#### MODULES ####
$ModLoad ommysql
(6) 定義某facility把日志記錄至指定的數據庫的指定表中;
vim /etc/rysylog.conf
#### RULES ####
facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog表,rsyslog用戶,password密碼
當我們保存后,/var/log/messages中的日志將會收集在mysql的Syslog中
創建用戶
[root@www ~]# mysql -u root -p
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.06 sec)
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.02 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
測試:
安裝yum -y install zsh,而后進入數據庫查看是否有安裝日志!
MariaDB [(none)]> use Syslog
Database changed
MariaDB [Syslog]> SELECT * FROM SystemEvents;
+----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryDAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID |
+----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| 1 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 0 | 6 | www | imklog 5.8.10, log source = /proc/kmsg star | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL |
| 2 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 5 | 6 | www | [origin software="rsyslogd" swVersion="5.8d="5972" x-info="http://www.rsyslog.com"] start | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL |
| 3 | NULL | 2015-05-16 03:54:01 | 2015-05-16 03:54:01 | 1 | 6 | www | Installed: zsh-4.3.10-7.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL
也可以這樣查看:
MariaDB [Syslog]> SELECT * FROM SystemEvents\G
DeviceReportedTime: 2015-05-16 03:54:01
Facility: 1
Priority: 6
FromHost: www
Message: Installed: zsh-4.3.10-7.el6.x86_64
NTSeverity: NULL
Importance: NULL
EventSource: NULL
EventUser: NULL
EventCategory: NULL
EventID: NULL
EventBinaryData: NULL
MaxAvailable: NULL
CurrUsage: NULL
MinUsage: NULL
MaxUsage: NULL
InfoUnitID: 1
SysLogTag: yum[5989]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
3 rows in set (0.00 sec)
(7) 可選:使用loganalyzer (WebGUI)來展示日志信息;
依賴:lamp組件;
# yum install httpd php php-mysql php-gd -y
測試下php
vim /var/www/html/index.php
phpinfo();
?>
下載loganalyzer,并展開至/var/www/html;這里以loganalyzer-3.6.5為例
loganalyzer是一個Php程序
[root@www ~]# tar -xf loganalyzer-3.6.5.tar.gz -C /var/www/html/
[root@www ~]#cd? /var/www/html/
[root@www ~]#cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
[root@www ~]# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer
[root@www ~]# cd ?/var/www/html/loganalyzer
[root@www?loganalyzer ]# chmod +x configure.sh secure.sh
[root@www loganalyzer]# ./configure.sh
[root@www loganalyzer]# ./secure.sh
[root@www loganalyzer]# chmod 666 config.php
[root@wwwloganalyzer ]# chown -R apache.apache ./*
訪問:http://SERVER_IP/loganalyzer/install.php
而后下一步,一直到step7 的時候選擇mysql ,在下拉菜單中填寫信息即可
運行到這里如果出錯!
1,將config.php內容刪除(:1,$d ),保留config.php文件
2,再次執行
# chmod 666 config.php
# chown -R apache.apache ./*
3,重新安裝
擴展主機node1!
打開vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none @172.16.249.117
yum install httpd -y
刷新瀏覽器!
除非另有說明,否則本站上的內容根據以下許可進行許可: CC署名-非商業性使用-相同方式共享4.0國際許可協議4.0進行許可
本文作者:www.linuxea.com for Mark
文章鏈接:http://www.linuxea.com/rsyslog-lamprsyslog.html (轉載請注明本文出處和本章鏈接)
您可以選擇一種方式贊助本站
支付寶掃碼贊助
日期: 2015-05-17
總結
以上是生活随笔為你收集整理的linux 多线程 写日志,rsyslog多线程远程日志记录介绍(lamp+rsyslog)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gcc g++安装
- 下一篇: linux安装spec编译器,RPM包制