将syslog ng日志写入MySQL(远程)数据库

Centos6.5

syslog-ng 3.25

mysql

1,yum install syslog-ng.x86_64

2,yum install mysql.x86_64    // 支持mysql 命令运行

3,mkfifo –m 777 /var/log/mysql.pipe    // 创建通道并赋予权限

4, logsys-ng.conf  // 修改配置文件

//源

source s_sys {

file ("/proc/kmsg" program_override("kernel: "));

unix-stream ("/dev/log");

internal();

# udp(ip(0.0.0.0) port(514));

};

//规则  用默认的,自己写也行

filter f_default    { level(info..emerg) and

not (facility(mail)

or facility(authpriv)

or facility(cron)); };

// 传输目标

destination mysql {

program("mysql -h10.10.10.10 -uxxxxx -pxxxxx table < /var/log/mysql.pipe");

pipe("/var/log/mysql.pipe"

template("INSERT INTO w_sys_logs (host, facility, priority, level, tag,

datetime, program, msg) VALUES ( ‘$HOST‘, ‘$FACILITY‘, ‘$PRIORITY‘,

‘$LEVEL‘, ‘$TAG‘, ‘$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC‘, ‘$PRORAM‘,

‘$MSG‘ );n") template-escape(yes) ); };

// table 为 数据库名

// 消息组合

log { source(s_sys); filter(f_default);destination(mysql); };

// 创建数据库

DROP TABLE IF EXISTS `w_sys_logs`;

CREATE TABLE `w_sys_logs` (

`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`host` varchar(32) DEFAULT NULL,

`facility` varchar(10) DEFAULT NULL,

`priority` varchar(10) DEFAULT NULL,

`level` varchar(10) DEFAULT NULL,

`tag` varchar(10) DEFAULT NULL,

`datetime` datetime DEFAULT NULL,

`program` varchar(15) DEFAULT NULL,

`msg` text,

PRIMARY KEY (`id`),

KEY `host` (`host`),

KEY `program` (`program`),

KEY `datetime` (`datetime`),

KEY `priority` (`priority`),

KEY `facility` (`facility`)

) ENGINE=InnoDB AUTO_INCREMENT=81 DEFAULT CHARSET=utf8;

转载请注明:http://8463390.blog.51cto.com/8453390/1911623

时间: 2024-08-28 07:31:55

将syslog ng日志写入MySQL(远程)数据库的相关文章

关于log4net日志写入mysql数据库记录

网上关于log4net日志写入mysql数据库的博客感觉比较少,所以这边搞定之后先过来记录一下. 首先新建个项目,我命名是log4netDemo,然后需要引入两个dll,一个是mysql.dll,一个是log4net.dll.可以通过NuGet安装这两个dll,如下图 我这边mysql和log4net的版本分别是6.10.8和2.0.8,当然mysql更高版本的也是可以的. 然后在项目中新建一个log4net.config的配置文件,配置全文如下: <?xml version="1.0&q

c#用log4Net将日志写入到Oracle数据库,并写入到文件中

原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_37913923/article/details/79072898 1.从官网下载log4net包,安装到项目中: 2.配置文件log4net.config/app.config <?xml version="1.0" encoding=&

mysql 远程数据库导入到本地数据库

mysqldump -h '114.212.111.123' -uROSE -pxxxooo --opt --compress ITSM --skip-lock-tables | mysql -h localhost -uroot -proot ITSMC 解释: 114.212.111.123 远程服务器名称 ROSE 远程数据库登录名 xxxooo 远程数据库登录密码 ITSM远程数据库名(即:复制的源) localhost 本地数据库名称(一般情况下都是这个) root 本地数据库登录名(

使用Log4net把日志写入到SqlServer数据库

1.官网URL: http://logging.apache.org/log4net/ 2.配置文件参照URL: http://logging.apache.org/log4net/release/config-examples.html 3.在Web.config中加入以下代码 3.1:在configSections中加入 <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionH

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy

将pandas的DataFrame数据写入MySQL数据库 + sqlalchemy [python] view plain copy print? import pandas as pd from sqlalchemy import create_engine ##将数据写入mysql的数据库,但需要先通过sqlalchemy.create_engine建立连接,且字符编码设置为utf8,否则有些latin字符不能处理 yconnect = create_engine('mysql+mysql

怎么解决mysql远程连接报10038的错误

最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示"2003- Can't connect MySQL Server on 'localhost'(10038)".于是拼命百度,终于找到解决办法. 方法/步骤 1 先看报错窗口. 通过百度,最终找到的原因是:远程3306端口未对外开放. 于是下面进行远程3306端口开放操作. 首先远程连接服务器,点击"开始"-"管理工具"-"高级安全Windows防火墙&

mysql 远程连接设置

1.MySQL创建远程登陆用户并授权: grant all PRIVILEGES on discuz.* to [email protected]'123.123.123.123' identified by '123456'; 下面逐一分析所有的参数: all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用","半角逗号分隔. discuz.

logback日志写入数据库(mysql)配置

如题  建议将日志级别设置为ERROR.这样可以避免存储过多的数据到数据中. 1  logback 配置文件(如下) <?xml version="1.0" encoding="UTF-8" ?> <configuration scan="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender&q

如何借助log4j把日志写入数据库中

log4j是一个优秀的开源日志记录项目,我们不仅可以对输出的日志的格式自定义,还可以自己定义日志输出的目的地,比如:屏幕,文本文件,数据 库,甚至能通过socket输出.本节使用MySQL数据库主要讲述如何将日志信息输入到数据库中. 用log4j将日志写入数据库主要用到是log4j包下的JDBCAppender类,它提供了将日志信息异步写入数据的功能,我们可以直接使用这个类将我 们的日志信息写入数据库:也可以扩展JDBCAppender类,就是将JDBCAppender类作为基类进行二次开发获得