-
rsyslog日志服务器搭建
2020-08-03 17:06:14一、rsyslog服务说明: 1、rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息 ... 3.2 日志实时传送到一个更加安全的远端服务器上 #1、安装rsyslog yum install rsyslog -y #2、确...一、rsyslog服务说明:
1、rsyslog是一个C/S架构的服务,可监听于某套接字,帮其它主机记录日志信息
二、rsyslog特点
1、直接将日志写入到数据库
2、日志队列
3、灵活的模板机制,可以得到多种输出格式
4、插件式结构,多种多样的输入、输出模块
备注:rsyslog日志服务器优势:
3.1 日志统一,集中式管理
3.2 日志实时传送到一个更加安全的远端服务器上#1、安装rsyslog yum install rsyslog -y #2、确认是否安装成功 rpm -qa |grep rsyslog [root@localhost log]# rpm -qa |grep rsyslog rsyslog-8.24.0-52.el7_8.2.x86_64 rsyslog-mysql-8.24.0-52.el7_8.2.x86_64 #3、安装rsyslog连接至mysql-server的驱动模块 yum install rsyslog-mysql -y #4、查看rsyslog模块提供的启动mysql的模块还有createDB.sql,导入到mysql中 [root@localhost log]# rpm -ql rsyslog-mysql /usr/lib64/rsyslog/ommysql.so /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #5、修改rsyslog配置 vim /etc/rsyslog.conf #6、开启udp协议传输 # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 #7、重启rsyslog systemctl restart rsyslog #8、查看端口 netstat -tunpl |grep 514 Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 3581/rsyslogd #9、mysql server准备rsyslog用户账号 grant all on Syslog.* to "rsyslog"@'localhost' identified by "123456"; #10、刷新权限 MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) #11、导入模块中的数据,生成数据库和表 [root@localhost log]# mysql -ursyslog -p123456 -hlocalhost </usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql #12、查看是否导入成功,用rsyslog用户进入mysql,并查询库 MariaDB [(none)]> use Syslog; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [Syslog]> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.00 sec) # 13、配置rsyslog加载ommysql模块 #new mysql-rsyslog module by lxm $ModLoad ommysql #配置RULES:格式:facility.priority TARGET *.*:ommysql:127.0.0.1,Syslog,rsyslog,123456 #14、重启数据库和rsyslog服务 systemctl restart mariadb && systemctl restart rsyslog #15、验证 ,进入数据库,查询表格 select * from SystemEvents\G; *************************** 8. row *************************** ID: 8 CustomerID: NULL ReceivedAt: 2020-08-03 16:57:41 DeviceReportedTime: 2020-08-03 16:57:41 Facility: 10 Priority: 5 FromHost: localhost Message: Registered Authentication Agent for unix-process:5086:983869 (system bus name :1.173 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) #日志信息已经进入数据库
-
MongoDB log4j 日志整合,统一管理
2015-03-21 20:16:57在分布式系统当中,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志分析系统去管理。而这个储存日志...在分布式系统当中,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志分析系统去管理。而这个储存日志的数据库目前最适合的还是mongodb,一是因为它轻便、简单,与log4j整合方便,对系统的侵入性低。二是因为它与大型的关系型数据库相比有不少优势,比如查询快速、储存结构(json)利于扩展、免费等
官方文档:http://log4mongo.org/display/PUB/Log4mongo+for+Java
一、log4j与mongodb整合
1.配置log4j.properties文件,使之整合mongodb:
2.在应用程序中使用log4j添加日志log4j.rootLogger=DEBUG, Console, MongoDB log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c{1}:%L] - %m%n log4j.appender.MongoDB=org.log4mongo.MongoDbAppender log4j.appender.MongoDB.hostname=192.168.100.205 log4j.appender.MongoDB.port=27016 log4j.appender.MongoDB.databaseName=logs_data log4j.appender.MongoDB.collectionName=sys_log
3.可以通过mongodb客户端查看日志
日志成功写入mongdb数据库,可以看到在数据库中日志的结构相当清晰。> log=db.log.findOne(); { "_id": ObjectId("54f3fd5fe4b04604c6369938"), "timestamp": NumberLong("1425276255357"), "level": "DEBUG", "thread": "http-nio-8080-exec-1970", "message": "nativeLoginSuccess ", "loggerName": "test.User", "fileName": "LmisAuthenticationFilter.java", "method": "nativeLoginSuccess", "lineNumber": "17", "ip": "192.168.100.194", "process": "19555@localhost" }
二、使用日志系统管理mongodb的日志
可以开发一个日志系统连接mongodb数据库,进行日志数据的管理和分析。你也可以使用mongodb目前有的一些Web客户端来管理,下面介绍两个mongodb常用的Web客户端:1.mongovision:使用extjs作为前端,体验较好,但需要java7。
2.rock_mongo:基于php的MongoDB管理工具。
https://github.com/iwind/rockmongo -
Zookeeper的日志统一管理
2017-12-30 15:07:40分析问题 (1)zookeeper在预装的时候并没有给我们很好的处理日志的问题,系统会默认在你...(2)从上面我们知道zookeeper的日志输出路径没有一个统一的模式,这样子日志文件不好控制,对于我们去维护没有一个精准,所分析问题
(1)zookeeper在预装的时候并没有给我们很好的处理日志的问题,系统会默认在你启动的地方吧日志打印到当前的路径下面,比如我现在当前目录下面启动zk服务器并通过ll密令就发现在当前路径下面多出来了一个 zookeeper.out的文件
设计思想
(2)从上面我们知道zookeeper的日志输出路径没有一个统一的模式,这样子日志文件不好控制,对于我们去维护没有一个精准,所以我们要给日志文件统一处理。
统一处理
a. 修改Zookeeper的home目录下面的bin目录的zkEnv.sh脚本(1)ZOO_LOG_DIR把这个属性的值改成你要指定要输出日志的路径就可以了,比如这里是/app/zookeeper-3.4.5/logs。测试
(1)首先我们在主目录下面启动服务器,然后查看zookeeper.out这个文件是否还在这个路径下面,如果不存在,那么我们就去我们制定的输出路径下面看看该文件已经存在,那么久可以证明我们的修改成功的!(2)使用命令pwd来验证我们在修改的路径就是现在这个路径,我们会发现zookeeper.out这个文件已经被统一放在这个路径下面了如果是集群环境的话,修改一个,然后scp到其他服务器就可以了。zookeeper服务在打印日志也是一种性能消耗和内存积累,但是日志文件很重要,通过日志我们可以分析出我们想要的信息,这个根绝业务需求,系统默认是INFO及以上级别的日志,INFO信息都是些启动服务器时候打印的信息,也可以修改成WARN级别以上的,这样子可以减少很多日志上面的性能消耗!修改日志级别
修改日志级别需要修改两个地方:(1)zookeeper全局变量的脚本:zkEnv.sh的ZOO_LOG4J_PROP属性值, 也就是上面蓝色的地方,把INFO改成WARN就可以。(2)conf目录下面的log4j.properties文件的zookeeper.root.logger属性(3)测试日志级别打印a.测试启动看看有没有启动日志
从上面我们可以看到当前的zookeeper.out这个文件大小为0,所以里面是没有任何东西的。[hadoop@hadoop07 logs]$ zkServer.sh restart JMX enabled by default Using config: /app/zookeeper-3.4.5/bin/../conf/zoo.cfg JMX enabled by default Using config: /app/zookeeper-3.4.5/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED JMX enabled by default Using config: /app/zookeeper-3.4.5/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [hadoop@hadoop07 logs]$ ll total 0 -rw-rw-r-- 1 hadoop hadoop 0 Dec 30 15:00 zookeeper.out
b.我们把改服务器的myid里面的值改变一下,然后重启,系统肯定报错,然后再查看日志是否会打印!
从上面我们不难看出,我们修改了myid的值以后,报错日志级别在WARN以上,所以会在zookeeper.out写入错误信息,说明我们的修改成功![hadoop@hadoop07 logs]$ cat zookeeper.out 2017-12-30 15:02:32,981 [myid:5] - ERROR [main:QuorumPeer@171] - Setting LearnerType to PARTICIPANT but 5 not in QuorumPeers. 2017-12-30 15:02:32,990 [myid:5] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally java.lang.RuntimeException: My id 5 not in the peer list at org.apache.zookeeper.server.quorum.QuorumPeer.startLeaderElection(QuorumPeer.java:479) at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:411) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:151) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) [hadoop@hadoop07 logs]$
完! -
Linux环境下搭建Rsyslog日志服务器
2019-04-05 13:54:531. Rsyslog日志服务简介 (1)Rsyslog简介 rsyslog( rocket-fast system for log),它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的... 使用一台统一的日志服务器,将登录认证,系统日...1. Rsyslog日志服务简介
(1)Rsyslog简介
rsyslog( rocket-fast system for log),它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。
(2)为什么要是有Rsyslog
-
web服务器多的时候检查日志是一件痛苦的事情;
-
使用一台统一的日志服务器,将登录认证,系统日志等全部发送到这台日志服务器上;
-
可以做监控分析,也能随时获取最新日志;
(3)Rsyslog的特性
-
多线程的服务,并发性能好;
-
可以使用udp,tcp,ssl,tls,relp等协议完成信息收集;
-
将日志可以存储在mysql,pgsql,oracle等数据库管理系统中;
-
强大的自定义过滤器,实现过滤日志信息中任何部分内容;
-
自定义输出格式;
(4)使用Rsyslog进行日志集中管理
C/S架构:客户端将其日志上传到服务器端,通过对服务器端日志的查询,来实现对其他客户端的日志进行集中管理;下面实现就是通过两套机器来实现,(server:202.100.10.2)——(client:202.100.10.3),将client上的日志传输到server上;
(5)安装Rsyslog服务
-
安装(一般系统会默认安装):yum install Rsyslog -y
-
查看服务状态:service Rsyslog status
-
启动服务:service Rsyslog start
2. Rsyslog的三种传输协议
编辑配置文件:vim /etc/rsyslog.conf;
注:日志的传输方式主要有三种:UDP,TCP,RELP
(1) UDP 传输协议
- 基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议;
- 可靠性比较低,但性能损耗最少, 在网络情况比较差,或者接收服务器压力比较高情况下,可能存在丢日志情况。在对日志完整性要求不是很高,在可靠的局域网环境下可以使用。
(2)TCP 传输协议
- 基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高;
- 但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。
- 这种协议相比于UDP在可靠性方面已经好很多,并且rsyslog原生支持,配置简单,同时针对可能丢日志情况,可以进行额外配置提高可靠性,因此使用比较广。
(3)RELP 传输协议
- RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议;
- 是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。
- 需要多安装一个包rsyslog-relp以支持该协议。
3. Rsyslog日志服务搭建
(1)前期配置
1.1> 配置Rsyslog服务器的IP地址(202.100.10.2);
1.2> 将Rsyslog服务器清除防火墙规则和临时禁用selinux;
1.3> 配置Rsyslog客户端的IP地址(202.100.10.3),使其与服务器在同一个网段;
1.4> 将Rsyslog客户端清除防火墙规则和临时禁用selinux;
1.5> 测试服务器与客户端是否可以ping通;
(2)可以采用三种传输方式:
- 启用UDP传输方式;
- 启用TCP传输方式;
- 启用RELP传输方式;(注:如果采用RELP传输方式,在服务器端和客户端都需要安装rsyslog-relp)
(3)方式一:启用UDP传输方式;
配置Rsyslog服务器
3.1> 编辑配置文件 vim /etc/rsyslog.conf;
3.2> 开启传输端口监听vim /etc/sysconfig/rsyslog;
3.3> 重启服务;
3.4> 查看服务器端运行的端口;
配置Rsyslog客户端
3.5> 指定日志传输的方式 vim /etc/rsyslog.conf;
若采用的传输方式是UDP传输,则在配置文件中添加如下一行;
3.6> 重启服务;
3.7> 进行测试,在客户端上执行;
3.8> 在服务器端进行查看;可以看到,测试成功;
(4)方式二:启用TCP传输方式;
配置Rsyslog服务器
4.1> 编辑配置文件 vim /etc/rsyslog.conf
4.2> 开启传输端口监听vim /etc/sysconfig/rsyslog;
4.3> 重启服务;
4.4> 查看服务器端运行的端口;
配置Rsyslog客户端
4.5> 指定日志传输的方式 vim /etc/rsyslog.conf;
若采用的传输方式是TCP传输,则在配置文件中添加如下一行;
4.6> 重启服务;
4.7> 进行测试,在客户端上执行;
4.8> 在服务器端进行查看;可以看到,测试成功;
(5)方式三:启用RELP传输方式;
配置Rsyslog服务器
5.1> 安装rsyslog-relp;
5.2> 查看服务的状态和重新启动服务
5.3> 编辑配置文件 vim /etc/rsyslog.conf;
新增以下2行
5.4> 开启传输端口监听vim /etc/sysconfig/rsyslog;
5.5> 重启服务;
5.6> 查看服务器端运行的端口;
配置Rsyslog客户端
5.7> 安装rsyslog-relp;
5.8> 查看服务的状态和重新启动服务;
5.9> 指定日志传输的方式 vim /etc/rsyslog.conf;
若采用的传输方式是RELP传输,则在配置文件中添加如下一行;
5.10> 重启服务;
5.11> 进行测试,在客户端上执行;
5.12> 在服务器端进行查看;可以看到,测试成功;
-
-
Log4j创建日志服务器 解决集群日志问题及话单文件
2011-10-07 11:48:46需要查看日志,但不清楚应该去哪台机子上看日志,针对此种情况,可以考虑把日志统一到专门的日志服务器上,这样只需要在日志服务器上进行查看,以下代码是作为一个例子,还不能看出日志的输出为哪台机子,以后发现再... -
log4j 日志服务器配置开发部署
2011-11-21 10:03:01因此决定在平台中采用日志服务器来做到集中日志管理,平台中所有子系统通过socket方式将日志信息传到日志服务器,再由日志服务器统一记录。这样既避免了一个应用日志不同实例分别打印,也可以将所有子系统日志集中... -
利用log4j+mongodb实现分布式系统中日志统一管理
2015-11-02 23:03:25在分布式系统当中,我们有各种各样的WebService,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中... -
玩转mongodb(九):通过log4jmongo来实现分布式系统的日志统一管理
2017-05-07 22:16:00在分布式系统中,我们有多个web app,这些web app可能分别部署在不同的物理服务器上,并且有各自的日志输出。当生产问题来临时,很多时候都需要去各个日志文件中查找可能的异常,相当耗费人力。日志存储多以文本... -
Logback 整合 RabbitMQ 实现统一日志输出
2019-08-22 16:40:33一、前言 公司项目做了集群实现请求分流,由于线上或多或少会出现请求失败或... 默认的,应用服务日志信息会保存在本地服务器的目录中,为了方便查看日志我们应该把多台服务器日志统一输出到一个日志文件中。 ... -
使用微信支付的时候,一定要商户服务器先调用【统一下单API】生成预付单吗?
2015-11-26 09:21:50//日志输出 NSLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.... -
Linux-centos-日志系统
2017-07-11 00:23:53Rsyslog是比syslog功能更强大的日志记录系统,可以将日志输出到文件,数据库和其它程序.可以使用rsyslog替换系统自带的syslog。 日志服务器,可以方便统一查看服务器上的日志,并且写入数据库,进行web显示,方便查看;... -
分布式系统日志收集ELK
2020-09-18 10:13:52LogsTash是轻量级,开源的日志处理框架,可以把分散的日志收集起来然后进行统一的处理或者输出到指定的位置,比如日志处理服务器获得文件 logsTash主要三个功能如下: input:数据收集 filter:数据加工 output:... -
logback自定义目录及输出格式
2019-10-25 14:05:23由于日志管理需要整合到统一的日志管理平台,所以集群部署的多台服务器日志会冲突,老板要求在日志路径及日志文件中加上服务器IP加以区分,此为前要。 首先说一下为什么不用MDC赋值来操作:MDC赋值其实也可以达到... -
利用log4j+mongodb实现分布式系统中日志统
2016-04-15 10:43:27在分布式系统当中,我们有各种各样的WebService,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志... -
利用logstash+filebeat采集logj4j日志
2018-06-08 16:14:16对于分布式系统,如果只是把日志存储在本地,或者直接输出到控制台,以后调试和差错将会非常麻烦,需要查看若干个服务器。 因此,我采用logstash+filebeat的方法统一处理日志(完整应该使用elk+filebeat处理日志)... -
利用log4mongo-java+mongodb复制集搭建java日志系统
2015-03-27 09:09:36在分布式系统当中,我们有各种各样的WebService,这些服务可能分别部署在不同的服务器上,并且有各自的日志输出。为了方便对这些日志进行统一管理和分析。我们可以将日志统一输出到指定的数据库系统中,而再由日志... -
Docker手动搭建sentry错误日志系统
2018-08-18 21:27:00Sentry介绍 在开发过程中,我们通过...输出日志方式无法把门,无法统一管理 为什么要使用sentry: 多项目管理、多用户 可以配置异常规则 支持主流语言接口 Sentry部署 安装Docker 下载rpm包 su... -
ELK(实时日志分析平台)搭建必备基础知识-------logstash
2018-12-22 18:05:32它可以统一过滤来自不同源的数据,并按照开发者的制定的规范输出到目的地。 顾名思义,Logstash 收集数据对象就是日志文件。由于日志文件来源多(如:系统日志、服务器 日志等),且内容杂乱,不便于人类进行观察。... -
jar包在linux服务器上部署
2019-09-18 11:32:38一般上来说,我们在服务器上启动一个jar,最简单的方式就是java -jar xx.jar,虽然这种方式简单但有时候我们的场景需要更多,例如常驻后台运行,在命令行窗口关闭的时候不中断项目,指定端口,并且输出日志到文件... -
Springboot整合Zipkin+kafka+ELK,实现链路追踪和日志收集
2020-12-02 12:00:15所以领导要求把项目的链路追踪和日志给统一输出到elk中,可以实现在elk查询。 Zipkin+Sleuth链路追踪 先来实现zipkin+sleuth链路追踪功能,至于zipkin+sleuth是什么不多累赘,自己网上查询。本人使用的自己搭建的... -
e语言-E2EE互联网服务器套件1.8.5.2
2019-08-23 12:05:21加入了 输出执行SQL 和 执行时间 到日志的功能。对应的方法“是否输出SQL”和“置是否输出SQL”。可随时开启和关闭(线程安全)。 [网站服务器] 加入了 等待结束 方法。等待服务器运行直到停止或者结束... -
Comparison method violates its general contract!
2014-12-18 23:08:4216号为了统一线上服务器运行环境,将两台服务器的Tomcat6+JDK6升级到Tomcat7+JDK7,本以为很简单的事情,升级后自己验证也没问题,没想到却悲剧了。升级后,过了半小时运营就找过来反馈问题,部分角色无法登陆系统,... -
TCP/IP网络互联技术(卷3):客户-服务器编程与应用(Windows套接字版)--详细书签版
2013-06-27 07:31:356.14 将TCP套接字连接到服务器 61 6.15 使用TCP和服务器通信 61 6.16 从TCP连接上读取响应 62 6.17 关闭TCP连接 63 6.17.1 需要部分关闭 63 6.17.2 部分关闭的操作 63 6.18 UDP客户端的编程 64 6.19 面向... -
activeMQ使用
2018-05-03 13:19:11接触activemq初衷是准备用它来处理服务器日志,因为服务器比较多,每个服务器都有一份日志,不方便做统一管理,便想着将日志输出到消息队列,然后统一输出到指定的日志服务器,用于汇总记录。但是综合考虑后,怕影响... -
用TCP/IP进行网际互联 第三卷:客户-服务器编程与应用(Linux/POSIX套接字版)--详细书签版
2012-10-12 14:44:576.14 将TCP套接字连接到某个服务器 49 6.15 使用TCP与服务器通信 50 6.16 从TCP连接中读取响应 50 6.17 关闭TCP连接 51 6.17.1 对部分关闭的需要 51 6.17.2 部分关闭的操作 51 6.18 UDP客户的编程 51 6.19 ... -
服务网关,对外暴露统一规范的接口和包装响应结果,包括各个子系统的交互接口、对外开放接口、开发加密接口、接口文档等服务,可在该模块支持验签、鉴权、路由、限流、监控、容错、日志等功能。示例图: zheng-cms...
-
物联网基础篇:快速玩转MQTT
-
如何通过以太网共享串口
-
idea相关资料整理
-
零信任实战白皮书.pdf
-
使用Python的项目-源码
-
元素周期表-three.js实战详解
-
LVS + Keepalived 实现 MySQL 负载均衡与高可用
-
strade:strade是一个开源的股票扫描仪和筛选器-源码
-
在线课程-源码
-
asd
-
3-元素定位练习
-
access应用的3个开发实例
-
libFuzzer视频教程
-
磺酸水杨酸二钠晶体的非线性光学性质
-
响应式编程入门与实战(Reactor、WebFlux、R2DBC)
-
2021-02-25
-
基于python的dango框架购物商城毕业设计毕设源代码使用教程
-
Table ‘ghh.drug‘ doesn‘t exist
-
Unity ILRuntime框架设计
-
PPTP_NNN 服务生产环境实战教程