rsyslog日志记录服务器
部分思路总结摘自网络http://xuding.blog.51cto.com/4890434/1737947
一、syslog系统
1.syslog:系统日志服务,统一日志管理
支持C/S架构:可通过UDP或TCP协议提供日志记录服务;实现集中收集日志功能
(1)日志、事件
历史事件日志,保存系统上过去一段时间的发生的事件 事件:系统引导启动、应用程序启动、应用程序尤其是服务类应用程序运行过程中的一些事件;
(2)syslog种类
syslogd:system系统日志 klogd:kernel内核日志
2.syslog格式
事件产生的日期时间 主机 进程[pid] :事件内容 syslog系统仅能记录较为简单的事件格式,并非所有应用程序都会使用syslog记录,如httd
二、rsyslog日志系统
(1)facility:设施,从功能或程序上对日志收集进行分类;
auth:各应用程序认证功能相关 authpriv:各应用与授权相关 cron:与计划性任务相关 daemon: 和守护进程相关 kern:和内核相关 lpr:和打印系统相关 mail:和邮件系统相关 mark:和防火墙标记相关 news:和新闻组相关 security:和安全相关 user:和用户相关 uucp:unix to unix copy,unix系统间复制协议相关 local0-local7:8个可自定义使用分类模式 syslog:其他,不便于归类的全都记录在此处
(2)priority:优先级,日志级别
从低到高:debug, info, notice, warn(warning), err(error), crit(critical),alert, emerg(panic) 指定级别格式: *:所有级别; none:没有级别,不记录日志; priority:此级别(含)及其以上的所有级别; =priorty:仅指定的级别;
三、rsyslogd日志系统服务器
rsyslog程序环境:
配置文件:/etc/rsyslog.conf, /etc/rsyslog.d/ 主程序:/usr/sbin/rsyslogd 模块路径:/usr/lib64/rsyslog/ Unit File:/usr/lib/systemd/system/rsyslog.service
配置文件格式:
有三部分组成:严格按照配置段位置添加配置 MODULES :指明加载模块,$ModLoad指令进行模块装载 GLOBAL DIRECTIVES :全局配置指令 RULES :日志记录规则;格式:facilty.priority target RULES: facility.priority target facility: *:所有的facility; f1,f2,f3,...:列表中给定的所有facility; auth,authpriv,security.info f1.p1;f2,p2;f3.p3;...:列表中给定的所有facility; auth.info;authpriv.notic;security,warn; priority: *:所有级别 none:没有级别,不记录日志; PRIORITY:此级别(含)及其以上的所有级别; =PRIORITY:仅指定的级别; target: 文件:将日志信息记录到指定的文件中;文件路径之前的“-”表示异步写入之意; 用户:将日志事件通知给指定的用户;一般指登录到当前系统上的所有用户的终端; 日志服务器:@rsyslog_server,把日志信息发往指定的日志服务器; 管道:|COMMAND
其它几个日志文件:
/var/log/wtmp:当前系统成功登录系统的日志;需要使用last命令查看 /var/log/btmp:当前系统尝试登录系统失败相关的日志;需要使用lastb命令查看 lastlog:显示当前系统上的所有用户最近一次登录系统的时间; /var/log/dmesg:系统引导过程中的日志信息;也可以使用dmesg命令进行查看;
命令行客户端程序:
logger - a shell command interface to the syslog(3) system log module logger [options] [message]
配置rsyslog服务器的配置项:
(1)客户端:配置文件@HOST指明,输出到的服务器端,重启服务
(2)在/etc/rsyslog.conf文件MODULES段开启模块服务,使其监听在默认端口514,并重启服务器即可
#### modules #### ………… # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
配置基于Mysql存储日志信息
前提:准备好msql server或mariadb server;
(1) 安装rsyslog连接至mysql server的驱动模块;
# yum install rsyslog-mysql
(2) 在mysql server准备rsyslog专用的用户账号;
GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass'; GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass'; flush privileges;
(3) 生成所需要的数据库和表;通过导入createDB.sql脚本创建
mysql -ursyslog -h127.0.0.1 -prsyslogpass < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql 创建完之后进入mysql进行验证 ]# mysql MariaDB [(none)]> show databases; MariaDB [(none)]> use Syslog; MariaDB [Syslog]> show tables; MariaDB [Syslog]> desc SystemEvents;
(4) 配置rsyslog使用ommysql模块
# vim /etc/rsyslog.conf #### MODULES #### ...... $ModLoad ommysql
(5) 配置RULES,将所期望的日志信息记录于mysql中;
facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS
(6) 重启rsyslog服务;
]# systemctl restart rsyslog.service ]# systemctl status rsyslog.service 查看服务状态是否OK ]#mysql MariaDB [(none)]> use Syslog; MariaDB [(none)]> select * from SystemEvents; 如果有数据,则表示成功。
(7) loganalyzer
WebGUI, 运行amp环境中; (a) 准备amp环境 # yum install httpd php php-mysql php-gd # systemctl start httpd.service (b) 安装loganalyzer # tar xf loganalyzer-VERSION.tar.gz # cd loganalyzer-VERSION # cp -a src /var/www/html/loganalyzer-VERSION # cd /var/www/html # ln -sv loganalyzer-VERSION log # cd /root/loganalyzer-3.6.5/ # cp contrib/* /var/www/html/log # cd /var/www/html/log # chmod +x *.sh # ./configure.sh 通过URL访问http://HOST/log进行安装
出现报错如下,需要修改config.php配置文件中localhost为127.0.0.1
# vim config.php
# ./secure.sh
原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58152