loganalyzer下载地址:https://loganalyzer.adiscon.com/download/
loganalyzer日志分析工具
LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows 事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案。
LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的日志并保存到服务端该目录下,一种是读取后保存到日志服务器数据库中,推荐使用后者。LogAnalyzer采用php开发,所以日志服务器需要php的运行环境,这里采用LAMP。
1)安装配置好mysql数据库服务并初始化
# yum -y install mariadb-server # mysql_secure_installtion
2)安装rsyslog-mysql包
# yum -y install rsyslog-mysql
3)sql文件路径在 /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
cat /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql | mysql -uroot -p
2、安装Apache及PHP
# yum -y install httpd # yum -y install php php-gd php-xml php-mysql # systemctl start httpd.service # systemctl enable httpd.service
配置服务端支持rsyslog-mysql 模块,并开启UDP和TCP服务端口获取网内其他LINUX系统日志
# vim /etc/rsyslog.conf 添加或修改如下配置
#### MODULES ####
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad immark # provides --MARK-- message capability
$Modload ommysql
*.* :ommysql:localhost,Syslog,rsyslog,wangjunkai
#Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template Remote,"/tmp/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
$ActionFileDefaultTemplate Remote
重启rsyslog服务
#systemctl restart rsyslog.service
# tar -zxvf loganalyzer-4.1.7.tar.gz
# mv loganalyzer /var/www/html/
# chmod 755 /var/www/html/loganalyzer/contrib/configure.sh /var/www/html/loganalyzer/contrib/secure.sh
# bash /var/www/html/loganalyzer/contrib/configure.sh
# bash /var/www/html/loganalyzer/contrib/secure.sh
# chmod 666 /var/www/html/loganalyzer/contrib/config.php
# mv /var/www/html/loganalyzer/contrib/config.php /var/www/html/loganalyzer/src/
打开浏览器访问 服务器ip地址/loganalyzer/src
#客户端配置
#### MODULES ####
#加载socket的日志
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
#加载kernel日志
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad immark # provides --MARK-- message capability
$ModLoad imfile
#### GLOBAL DIRECTIVES ####
# Use default timestamp format
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$template myFormat,"%timestamp% %fromhost-ip% %msg%\n"
$ActionFileDefaultTemplate myFormat
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# 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
#加载imfile 模块,并5秒刷新一次
module(load="imfile" PollingInterval="5")
#要监控的日志文件路径
$InputFileName /var/log/zabbix/zabbix_server.log
#定义记录偏移量数据文件名 不要添加特殊符号
$InputFileStateFile stat_zabbix
#定义文件标签 ,注意最后是冒号:
$InputFileTag zabbix-info:
#激活读取,可以设置多组日志读取,每组结束时设置本参数
$InputRunFileMonitor
日志輸出模板 通過模板可以更具需要來控制日志輸出的樣式。格式如下: $template <TEMPLATE_NAME>,"text %<PROPERTY>% more text", [<options>] $template 爲模板指令。<TEMPLATE_NAME> 爲模板名。"" 之間的文本爲模板格式。 被 % 包含的文本對應相關的屬性。<options> 指定修改 模板功能的一些選項,例如 sql 或者 stdsql 會格式化文本爲 SQL 查詢。 動態文件輸出 通過日志和/或系統屬性決定輸出文件名。 $template DynamicFile,"/var/log/test_logs/%timegenerated%-test.log" *.* ?DynamicFile 使用 timegenerated 生成文件名,使用該模板則在前面加上 ?。 其他例子如下: $template DailyPerHostLogs,"/var/log/syslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/messages.log" 根據屬性控制日志輸出格式 使用下面的格式可以對模板之中的屬性做各種修改操作從而定制日志的格式: %<propname>[:<fromChar>:<toChar>:<options>]% <propname> 屬性名,可用的屬性名參考上文。 <fromChar> 和 <toChar> 表示對屬性值字符串的操作範圍。 設置 <fromChar> 爲 R,<toChar> 爲正則表達式即可以通過正則 表達式定義範圍。 <options> 則表示屬性選項。完整的列表可以參考 這裏的 Property Options 節。 一些示例如下: %msg% # 日志的完整消息文本 %msg:1:2% # 日志消息文本的最開始兩個字符 %msg:::drop-last-lf% # 日志的完整消息文本,移出最後的換行符 %timegenerated:1:10:date-rfc3339% # 時間戳的頭10個字符並按 RFC3999 標准格式化 下面是一些模板例子。 輸出日志的級別,類別,收到日志時的時間錯,主機名,消息標簽,消息正文, 加上換行符: $template verbose,"%syslogseverity%,%syslogfacility%,%timegenerated%,%HOSTNAME%,%syslogtag%,%msg%\n" 輸出日志來源,時間以及日志標簽,正文,同時還有蜂鳴聲(\7): $template wallmsg,"\r\n\7Message from syslogd@%HOSTNAME% at %timegenerated% ...\r\n %syslogtag% %msg%\n\r" 格式化日志以便于直接進行 SQL 操作: $template dbFormat,"insert into SystemEvents (Message, Facility,FromHost, Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%, '%HOSTNAME%',%syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",sql 以 json 格式輸出,方便程序解析: $template jsonFormat,"{\"message\":\"%msg:::json%\",\"fromhost\":\"%HOSTNAME:::json%\",\"facility\":\"%syslogfacility-text%\",\"priority\":\"%syslogpriority-text%\",\"timereported\":\"%timereported:::date-rfc3339%\",\"timegenerated\":\"%timegenerated:::date-rfc3339%\"}\n" 注意,message 的內容會在最前面多一個空格,其解釋請參考這裏。 rsyslog 也提供了一些預定義的模板(以 RSYSLOG_ 爲前綴),參考 這裏 的 Reserved Template Names 節,其定義如下: RSYSLOG_FileFormat "%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\" RSYSLOG_TraditionalFileFormat "%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n\" RSYSLOG_ForwardFormat "<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\" RSYSLOG_TraditionalForwardFormat "<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\" 使用這些模板,則在動作後附加 “;template_name” 即可,例如: :programname,startswith,"cron" -/var/log/cron;RSYSLOG_TraditionalFileFormat