在我們的運維工作中,常常會對系統上的日志進行收集,手動管理少量的幾臺服務器的日志收集沒有太大難度,但是企業當中批量的管理成千上萬臺服務器的時候,這時候想一臺臺的收集日志未免太浪費時間了,這時候我們需要一個批量管理日志的系統來解決這一難題,今天我給大家帶來的使用
1、syslog介紹
日志服務在Centos5上位syslog,隨著系統版本的升級之后,日志服務改為rsyslog,rsyslog是syslog的升級版,提供了許多高級的特性。syslog由klogd和syslogd組成,klogd記錄的是kernel產生的日志信息,而syslogd是系統上的一些普通信息,rsyslog和syslog的整體框架相同,只不過是rsyslog有了一些高級的特性。
2、rsyslog的特性
Multi-threading 支持多線程工作模型
TCP, SSL, TLS, RELP 支持ssl加密
MySQL, PostgreSQL, Oracle and more 可以將日志放入到數據庫當中
Filter any part of syslog message 可以過濾日志信息的任何部分
Fully configurable output format 完全可配置的輸出模式
Suitable for enterprise-class relay chains 適用于企業級的中繼鏈
3、facility設施,從功能或程序上對日志進行分類,并有專門的工具負責記錄其日志
auth 認證信息
authpriv 授權信息
cron 計劃任務信息
daemon 守護進程信息
kern 內核信息
lpr 打印機信息
mail 郵件信息
mark 防火墻標記信息
news 新聞組信息
security (same as auth) 安全信息
syslog 系統日志
user 用戶相關信息
uucp unix間復制信息
local0 through local7: 8 customed facility 用戶自定義的日志類,分為7個級別
4、priority:級別
debug:調試級別,所有信息都會記錄
info: 普通信息,比debug級別高
notice :通知信息,比info級別高
warning,warn :警告信息
err,error:錯誤信息,某個功能出現問題,不影響使用
crit:某個功能出現問題,需及時處理
alert:系統出現嚴重問題,不立即處理會有嚴重后果
emerg:系統將要掛掉
注意:級別越低記錄的信息將會越詳細,占用的空間也將越大
4、target日志存放目標
文件 如/var/log/messages
用戶 *表示所有用戶,也可以發給指定的用戶
日志服務器 @10.1.0.1
管道 |command 交給特定的命令處理
facility.priority target
mail.info /var/log/maillog info及info以上的級別記錄
mail.=info 僅info級別記錄
mail.!=info 除了info級別以外的都記錄
mail.!info 除了info級別以下的記錄其他都記錄
*.info 所有設施的info級別記錄
mail,news,info 兩個設施的info
5、rsyslog的配置
rsyslog的配置文件在/etc/rsyslog.conf及/etc/rsysloge.d/*.conf
/etc/rsyslog.conf分為四個區域
MODULES syslog的模塊
GLOBAL 全局定義,記錄的格式等等
RULES 記錄日志相關
begin forwarding rule 一些轉發的記錄信息
我們主要關心的事RULES這個區域,要想使用rsyslog記錄特定類,級別的日志,就需要在RULES中定義
日志信息格式
時間 主機 進程(PID) 事件
Aug 30 10:14:16 server kernel: EXT4-fs (dm-7): mounted filesystem with ordered data mode. Opts:
通配機制
*:所有級別
,:列表如a,b,c表示三個級別
?。喝》?/p>
loganalyzer的介紹
loganalyzer是一塊web界面的日志分析工具,可以分析mysql中的日志信息,有php編寫,依賴于lamp平臺,要想將日志寫入到mysql中,需要安裝rsyslog-mysql工具,并啟用rsyslog的mmysql模塊
6、環境部署
操作系統:CentOS6.8
rsyslog:系統默認安裝
loganalyzer:logananlyzer-3.6.4
LAMP:httpd.2.4,mysql-5,1,php-5.3(我這里就直接二進制安裝)
6.1、關閉selinux和iptables,默認這兩項都是開啟的
setenforce 0
service iptables stop
如果不關閉iptables,寫下規則
iptables -A INPUT -p udp –dport 514 -j ACCEPT
iptables -P OUTPUT ACCEPT
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
iptables -P OUTPUT ACCEPT
6.2、安LAMP
yum -y install httpd php php-mysql mysql mysql-server
啟動服務
service httpd start
service mysqld start
6.3、配置rsyslog
#yum -y install rsyslog rsyslog-mysql
注:rsyslog-mysql為rsyslog將日志傳送到mysql數據庫的一個模塊,這里必須安裝
mysql< /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 導入數據庫就是在Syslog數據庫當中 創建兩張表
創建rsyslog用戶在mysql下的相關權限
mysql -uroot
mysql>GRANT ALL ON Syslog.* TO 'loguser'@'localhost' IDENTIFIED BY 'logpass';
mysql>GRANT ALL ON Syslog.* TO 'loguser'@'127.0.0.1' IDENTIFIED BY 'logpass';
mysql>FLUSH PRIVILEGES;
mysql>quit
配置服務支持rsyslog-mysql模塊,并開啟UDP服務端口獲取網內其他linux系統日志
vim /etc/rsyslog.conf
在#### MODULES ####下添加
$Modload ommysql
注意:模塊必須要寫在MODULES里不然最后結果一直出不來
#### RULES ####z在下面添加要記錄的日志
*.* :ommysql:127.0.0.1,Syslog,loguser,logpass
注:127.0.0.1本地回環地址,Syslog為數據庫名,loguser為數據庫用戶,logpass為數據庫用戶的密碼
開啟以下幾行
$ModLoad imudp
$UDPServerRun 514
重啟服務
service rsyslog restart
7、配置loganalyzer
7.1首先去官網下載安裝包
#wget http://download.adiscon.com/loganalyzer/loganalyzer-3.6.4.tar.gz
7.2解壓
#tar xf loganalyzer-3.6.4.tar.gz
#cd loganalyzer-3.6.4
#mkdir /var/www/html/loganalyzer
#mv src/* /var/www/html/loganalyzer/
#mv contrib/*.sh /var/www/html/loganalyzer/
#cd /var/www/html
#chmod u+x loganalyzer/*.sh
#touch config.php
#chmod 666 config.php
#chown -R apache.apache *
刪除那兩個腳本
注:兩個腳本的執行實際在改目錄下創建config.php文件
7.3初始化
在瀏覽器中輸入http://10.1.252.100/loganalyzer
1、提示沒有配置文件,點擊here利用向導生成
2、next
3、next
注:若點擊next報錯,后臺執行如下命令繼續
ln -s /var/lib/mysql/mysql.sock/tmp/mysql.sock
4、開始寫入數據庫,next
5、提示寫入成功,next
6、設置管理員賬戶,配置完畢next
7、設置監控日志保存到mysql數據庫中,按照如圖配置next
8、完成配置
9、進入登錄界面
10、進入主界面
到此處整個安裝配置的過程就完成了,在此過程中需要注意的是在圖形安裝界面授權當中的用戶名、數據庫名、表名和密碼一定要和數據庫中的數據一致,否則會導致失敗。
至此,整個配置就完成
原創文章,作者:fszxxxks,如若轉載,請注明出處:http://www.www58058.com/52733