linux基础之rsyslog
作者:互联网
系统日志服务:
CentOS5:
syslog:
syslogd: system klogd: kernel
CentOS6及7:
rsyslog: syslogd klogd
rsyslog特性:
多线程 UDP,TCP,SSL,TLS,RELP Mysql,PGSQL,Oracle实现日志存储 强大的过滤器,可实现过滤日志信息中任何部分 自定义输出格式
一般中大型公司用的比较多的分布式日志存储分析系统:elk
分布式日志存储和搜索系统:elasticsearch 日志收集器:logstash 前端展示工具: kibana
日志收集方:
从功能或程序上对日志进行分类:
facility:
auth,aurhpriv,cron,daemon,kern,lpr,mail,mark,news,security,user,uucp,local0-local7,syslog
日志级别:
priority: debug,info,notice,warn(warning),err(error),crit(critical),alert,emerg(panic)
日志收集定义:
facility.priority /var/log/messages
指定级别:
*: 所有级别 none: 没有级别 priority: 此级别及更高级别的日志信息 =priority: 此级别
rsyslog相关程序文件:
主程序:rsyslogd 配置文件:/etc/rsyslog.conf 服务脚本:/etc/rc.d/init.d/rsyslog
举例: # vim /etc/ssh/sshd_config 自定义日志分类:SyslogFacility local2 # vim /etc/rsyslog.conf 指明local2分类的日志所有级别下:local2.* /var/log/sshd.log
# service sshd restart
# service rsyslog restart
重新登录ssh后可以在/var/log/sshd.log看到登录日志
rsyslog.conf配置文件:
RULES: facility.priority target target: 文件路径: 记录于指定日志文件中,通常应该在/var/log目录下,文件路径前的"-"表示异步写入 用户: 将日志通知给指定用户 *: 所有用户 日志服务器:@host host: 必须监听在tcp或udp协议514端口上提供服务 管道: |COMMAND
文件记录的日志的格式 事件产生的日期时间 主机 进程pid:事件内容
有些日志记录二进制格式:/var/log/wtmp,/var/log/btmp
/var/log/wtmp:当前系统上成功登陆的日志:
查看日志: last
/var/log/btmp:当前系统上失败的登录尝试
查看日志: lastb
lastlog命令: 显示当前系统上每一个用户最近一次的登录时间
rsyslog服务器:
日志信息存储目标指向TARGET为一台主机:
1. MODULES中启用模块:udp和tcp都可以,这里都启动好了
# vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp $InputTCPServerRun 514
# netstat -tunl //514在监听
2. 另一台电脑以本机作为日志服务器
# vim /etc/rsyslog.conf
比如就指定这个吧
*.info;mail.none;authpriv.none;cron.none @192.168.2.104 //指向日志服务器
将日志记录于mysql数据库中
1. rsyslog服务器安装驱动:rsyslog-mysql
# yum install rsyslog-mysql
2. mysql服务器授权就可以了
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'syslog'@'192.168.2.%' IDENTIFIED BY 'syslogpass';
MariaDB [(none)]> FLUSH PRIVILEGES;
顺便查看一下mysql的配置文件有没有跳过名称解析,没有的话加上下面两行
# vim /etc/my.cnf skip_name_resolve = on innodb_file_per_table = on
# service mysqld restart
3. rsyslog服务器以重定向方式导入Syslog数据库及表,当然也可以自己去手动创建
# mysql -usyslog -h192.168.2.105 -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
4. 修改rsyslog服务器配置文件:
1.Modules这一个条目下面添加: $ModLoad ommysql //加载连接mysql模块 2. RULES下面添加: *.info;mail.none;authpriv.none;cron.none :ommysql:192.168.2.105,Syslog,syslog,syslogpass//将日志发往ommysql输出过滤器,服务器地址,数据库,连接数据库的用户名,密码
5.测试
现在在rsyslog服务器/var/log/messages下已经看不到日志了,在数据库中可以查看
连接数据库后: USE Syslog; SELECT * FROM SyslogEvents\G
6. 使用日志分析前端工具:loganalyzer
安装服务器环境
# yum install httpd php php-mysql
下载loganalyzer:http://download.adiscon.com/loganalyzer/loganalyzer-4.1.5.tar.gz
安装analyzer
# tar xf loganalyzer-4.1.5.tar.gz
# mv
拷贝src和contrib下的脚本到loganalyzer下
# tar xf loganalyzer-4.1.5.tar.gz -C /var/www/html/
# mv loganalyzer-4.1.5/ log
# mv log/src loganalyzer
# cp log/contrib/* loganalyzer/
# cd loganalyzer/
执行下脚本,没问题的话修改配置文件权限
# chmod +x *.sh
# ./configure.sh
# ./secure.sh
# chmod 666 config.php //没有的话会自动创建一个
按步骤设置好loganalyzer第一次登陆设置
安装php-gd显示mysql数据图形
# yum install php-gd
# service httpd reload
<style></style>
<style></style> <style></style> <style></style> <style></style> <style></style> <style></style> <style></style> <style></style> <style></style>
标签:log,mysql,基础,rsyslog,linux,var,日志,loganalyzer 来源: https://www.cnblogs.com/ckh2014/p/10827332.html