syslog和rsyslog的区别:
syslog:
1.支持单机模式
2.支持C/S架构,可通过UDP或TCP协议提供给日志记录服务。
rsyslog:
1、多线程
2、UDP,TCP,SSL
3、存储日志信息与MYSQL、PGSQL等数据库管理系统。
4、强大的过滤器,实现过滤日志信息中任何部分的内容。
5、自定义输出格式
介绍:rsyslog记录日志的服务 端口:514
支持:
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle实现日志存储 强大的过滤器,可实现过滤记录日志信息中任意部分 自定义输出格式
- 配置文件在:/etc/rsyslog.conf
接受服务器需修改配置文件:
配置rsyslog成为日志服务器
###MODULES###
#Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
#Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
把前面的#号去掉
文件大小:log太长
/etc/rsyslog.conf文件 接收rsyslog需要新增一个这个 :$MaxMessageSize 32k
查询存的服务器日志数据(路径)也可以设置路径:
1.打开/etc/rsyslog.conf文件,在GLOBAL DIRECTIVES内容块的前面追加如下模板
$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~
默认在:var/log/下
实现代码分为三步:
第一步: socket_create 创建一个实例;
第二步: socket_sendto(“第一个参数创建一个实例”,“第二个参数发送的数据”,“第三个参数(字符串长度strlen用函数统计)”,“第四个参数发送的ip“,“第五个参数端口号”);
第三步: socket_close 关闭这个实例