精华内容
下载资源
问答
  • 而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志ES做下详细解读。 1、目的: 将本地磁盘存储的日志文件同步(全量同步、实时增量同步)ES中。 2、源文件: [root@5b9dbaaa148a test_log...
  •  操作系统:Red Hat Enterprise Linux ...发现备库(单实例)与主库同步,检查发现日志中断了好长时间,由于之前主库出现过归档空间不足的情况,手动清除了归档,导致缺少日志同步不过去,一直显示等待6392号归档:
  • Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。 文章目录同步日志混合同步和异步日志异步日志(性能最好,推荐使用) 同步日志 所谓同步...

    Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。

    同步日志

    所谓同步日志,即当输出日志时,必须等待日志输出语句执行完毕后,才能执行后面的业务逻辑语句。

    下面给出小编在开发中的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration>
    
        <Properties>
            <!-- 日志输出级别 -->
            <Property name="LOG_INFO_LEVEL" value="info"/>
            <!-- error级别日志 -->
            <Property name="LOG_ERROR_LEVEL" value="error"/>
            <!-- 在当前目录下创建名为log目录做日志存放的目录 -->
            <Property name="LOG_HOME" value="./log"/>
            <!-- 档案日志存放目录 -->
            <Property name="LOG_ARCHIVE" value="./log/archive"/>
            <!-- 模块名称, 影响日志配置名,日志文件名,根据自己项目进行配置 -->
            <Property name="LOG_MODULE_NAME" value="spring-boot"/>
            <!-- 日志文件大小,超过这个大小将被压缩 -->
            <Property name="LOG_MAX_SIZE" value="100 MB"/>
            <!-- 保留多少天以内的日志 -->
            <Property name="LOG_DAYS" value="15"/>
            <!--输出日志的格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度, %msg:日志消息,%n是换行符 -->
            <Property name="LOG_PATTERN" value="%d [%t] %-5level %logger{0} - %msg%n"/>
            <!--interval属性用来指定多久滚动一次-->
            <Property name="TIME_BASED_INTERVAL" value="1"/>
        </Properties>
    
        <Appenders>
            <!-- 控制台输出 -->
            <Console name="STDOUT" target="SYSTEM_OUT">
                <!--输出日志的格式-->
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
            </Console>
    
            <!-- 这个会打印出所有的info级别以上,error级别一下的日志,每次大小超过size或者满足TimeBasedTriggeringPolicy,则日志会自动存入按年月日建立的文件夹下面并进行压缩,作为存档-->
            <RollingRandomAccessFile name="RollingRandomAccessFileInfo"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-infoLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-infoLog-%d{yyyy-MM-dd}-%i.log.gz">
                <Filters>
                    <!--如果是error级别拒绝,设置 onMismatch="NEUTRAL" 可以让日志经过后续的过滤器-->
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="DENY" onMismatch="NEUTRAL"/>
                    <!--如果是info\warn输出-->
                    <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <!--interval属性用来指定多久滚动一次,根据当前filePattern设置是1天滚动一次-->
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认同一文件夹下最多保存7个文件-->
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
            <!--只记录error级别以上的日志,与info级别的日志分不同的文件保存-->
            <RollingRandomAccessFile name="RollingRandomAccessFileError"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-errorLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-errorLog-%d{yyyy-MM-dd}-%i.log.gz">
                <Filters>
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
        </Appenders>
    
        <Loggers>
            <!-- 开发环境使用 -->
            <!--<Root level="${LOG_INFO_LEVEL}">
                <AppenderRef ref="STDOUT"/>
            </Root>-->
    
            <!-- 测试,生产环境使用 -->
            <Root level="${LOG_INFO_LEVEL}">
                <AppenderRef ref="RollingRandomAccessFileInfo"/>
                <AppenderRef ref="RollingRandomAccessFileError"/>
            </Root>
        </Loggers>
    
    </Configuration>
    

    混合同步和异步日志

    Log4j-2.9及更高版本在类路径上需要disruptor-3.3.4.jar或更高版本。在Log4j-2.9之前,需要disruptor-3.0.0.jar或更高版本。无需将系统属性“Log4jContextSelector”设置为任何值。

    可以在配置中组合同步和异步记录器。这为您提供了更大的灵活性,但代价是性能略有下降(与使所有记录器异步相比)。使用<asyncRoot><asyncLogger> 配置元素指定需要异步的记录器。配置只能包含一个根记录器(<root><asyncRoot>元素),但是可以组合异步和非异步记录器。例如,包含<asyncLogger>元素的配置文件也可以包含<root>和同步记录器的元素。

    默认情况下,异步记录器不会将位置传递给I / O线程。如果您的某个布局或自定义过滤器需要位置信息,则需要在所有相关记录器的配置中设置“includeLocation = true”,包括根记录器。

    首先引入disruptor依赖

    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.4.2</version>
    </dependency>
    

    混合异步记录器的配置可能如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration>
    
        <Properties>
            <!-- 日志输出级别 -->
            <Property name="LOG_INFO_LEVEL" value="info"/>
            <!-- error级别日志 -->
            <Property name="LOG_ERROR_LEVEL" value="error"/>
            <!-- 在当前目录下创建名为log目录做日志存放的目录 -->
            <Property name="LOG_HOME" value="./log"/>
            <!-- 档案日志存放目录 -->
            <Property name="LOG_ARCHIVE" value="./log/archive"/>
            <!-- 模块名称, 影响日志配置名,日志文件名,根据自己项目进行配置 -->
            <Property name="LOG_MODULE_NAME" value="spring-boot"/>
            <!-- 日志文件大小,超过这个大小将被压缩 -->
            <Property name="LOG_MAX_SIZE" value="100 MB"/>
            <!-- 保留多少天以内的日志 -->
            <Property name="LOG_DAYS" value="15"/>
            <!--输出日志的格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度, %msg:日志消息,%n是换行符 -->
            <Property name="LOG_PATTERN" value="%d [%t] %-5level %logger{0} - %msg%n"/>
            <!--interval属性用来指定多久滚动一次-->
            <Property name="TIME_BASED_INTERVAL" value="1"/>
        </Properties>
    
        <Appenders>
            <!-- 控制台输出 -->
            <Console name="STDOUT" target="SYSTEM_OUT">
                <!--输出日志的格式-->
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
            </Console>
    
            <!-- 这个会打印出所有的info级别以上,error级别一下的日志,每次大小超过size或者满足TimeBasedTriggeringPolicy,则日志会自动存入按年月日建立的文件夹下面并进行压缩,作为存档-->
            <!--异步日志会自动批量刷新,所以将immediateFlush属性设置为false-->
            <RollingRandomAccessFile name="RollingRandomAccessFileInfo"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-infoLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-infoLog-%d{yyyy-MM-dd}-%i.log.gz"
                                     immediateFlush="false">
                <Filters>
                    <!--如果是error级别拒绝,设置 onMismatch="NEUTRAL" 可以让日志经过后续的过滤器-->
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="DENY" onMismatch="NEUTRAL"/>
                    <!--如果是info\warn输出-->
                    <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <!--interval属性用来指定多久滚动一次,根据当前filePattern设置是1天滚动一次-->
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认同一文件夹下最多保存7个文件-->
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
            <!--只记录error级别以上的日志,与info级别的日志分不同的文件保存-->
            <RollingRandomAccessFile name="RollingRandomAccessFileError"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-errorLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-errorLog-%d{yyyy-MM-dd}-%i.log.gz"
                                     immediateFlush="false">
                <Filters>
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
        </Appenders>
    
        <Loggers>
            <!-- 开发环境使用 -->
            <!--<Root level="${LOG_INFO_LEVEL}">
                <AppenderRef ref="STDOUT"/>
            </Root>-->
    
            <!-- 测试,生产环境使用 -->
            <!-- 当使用<asyncLogger> or <asyncRoot>时,无需设置系统属性"Log4jContextSelector" -->
            <AsyncLogger name="com.jourwon" level="${LOG_INFO_LEVEL}" additivity="false">
                <AppenderRef ref="RollingRandomAccessFileInfo"/>
                <AppenderRef ref="RollingRandomAccessFileError"/>
            </AsyncLogger>
    
            <Root level="${LOG_INFO_LEVEL}">
                <AppenderRef ref="RollingRandomAccessFileInfo"/>
                <AppenderRef ref="RollingRandomAccessFileError"/>
            </Root>
        </Loggers>
    
    </Configuration>
    

    异步日志(性能最好,推荐使用)

    Log4j-2.9及更高版本在类路径上需要disruptor-3.3.4.jar或更高版本。在Log4j-2.9之前,需要disruptor-3.0.0.jar或更高版本。

    这是最简单的配置,并提供最佳性能。要使所有记录器异步,请将disruptor jar添加到类路径,并将系统属性log4j2.contextSelector设置 为org.apache.logging.log4j.core.async.AsyncLoggerContextSelector

    默认情况下,异步记录器不会将位置传递给I / O线程。如果您的某个布局或自定义过滤器需要位置信息,则需要在所有相关记录器的配置中设置“includeLocation = true”,包括根记录器。

    首先引入disruptor依赖

    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.4.2</version>
    </dependency>
    

    然后在src/java/resources目录添加log4j2.component.properties配置文件

    # 设置异步日志系统属性
    log4j2.contextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
    

    配置如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration>
    
        <Properties>
            <!-- 日志输出级别 -->
            <Property name="LOG_INFO_LEVEL" value="info"/>
            <!-- error级别日志 -->
            <Property name="LOG_ERROR_LEVEL" value="error"/>
            <!-- 在当前目录下创建名为log目录做日志存放的目录 -->
            <Property name="LOG_HOME" value="./log"/>
            <!-- 档案日志存放目录 -->
            <Property name="LOG_ARCHIVE" value="./log/archive"/>
            <!-- 模块名称, 影响日志配置名,日志文件名,根据自己项目进行配置 -->
            <Property name="LOG_MODULE_NAME" value="spring-boot"/>
            <!-- 日志文件大小,超过这个大小将被压缩 -->
            <Property name="LOG_MAX_SIZE" value="100 MB"/>
            <!-- 保留多少天以内的日志 -->
            <Property name="LOG_DAYS" value="15"/>
            <!--输出日志的格式:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度, %msg:日志消息,%n是换行符 -->
            <Property name="LOG_PATTERN" value="%d [%t] %-5level %logger{0} - %msg%n"/>
            <!--interval属性用来指定多久滚动一次-->
            <Property name="TIME_BASED_INTERVAL" value="1"/>
        </Properties>
    
        <Appenders>
            <!-- 控制台输出 -->
            <Console name="STDOUT" target="SYSTEM_OUT">
                <!--输出日志的格式-->
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
            </Console>
    
            <!-- 这个会打印出所有的info级别以上,error级别一下的日志,每次大小超过size或者满足TimeBasedTriggeringPolicy,则日志会自动存入按年月日建立的文件夹下面并进行压缩,作为存档-->
            <!--异步日志会自动批量刷新,所以将immediateFlush属性设置为false-->
            <RollingRandomAccessFile name="RollingRandomAccessFileInfo"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-infoLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-infoLog-%d{yyyy-MM-dd}-%i.log.gz"
                                     immediateFlush="false">
                <Filters>
                    <!--如果是error级别拒绝,设置 onMismatch="NEUTRAL" 可以让日志经过后续的过滤器-->
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="DENY" onMismatch="NEUTRAL"/>
                    <!--如果是info\warn输出-->
                    <ThresholdFilter level="${LOG_INFO_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <!--interval属性用来指定多久滚动一次,根据当前filePattern设置是1天滚动一次-->
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <!-- DefaultRolloverStrategy属性如不设置,则默认同一文件夹下最多保存7个文件-->
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
            <!--只记录error级别以上的日志,与info级别的日志分不同的文件保存-->
            <RollingRandomAccessFile name="RollingRandomAccessFileError"
                                     fileName="${LOG_HOME}/${LOG_MODULE_NAME}-errorLog.log"
                                     filePattern="${LOG_ARCHIVE}/${LOG_MODULE_NAME}-errorLog-%d{yyyy-MM-dd}-%i.log.gz"
                                     immediateFlush="false">
                <Filters>
                    <ThresholdFilter level="${LOG_ERROR_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/>
                </Filters>
                <PatternLayout pattern="${LOG_PATTERN}"/>
                <Policies>
                    <TimeBasedTriggeringPolicy interval="${TIME_BASED_INTERVAL}"/>
                    <SizeBasedTriggeringPolicy size="${LOG_MAX_SIZE}"/>
                </Policies>
                <DefaultRolloverStrategy max="${LOG_DAYS}"/>
            </RollingRandomAccessFile>
    
        </Appenders>
    
        <Loggers>
            <!-- 开发环境使用 -->
            <!--<Root level="${LOG_INFO_LEVEL}">
                <AppenderRef ref="STDOUT"/>
            </Root>-->
    
            <!-- 测试,生产环境使用 -->
            <Root level="${LOG_INFO_LEVEL}" includeLocation="false">
                <AppenderRef ref="RollingRandomAccessFileInfo"/>
                <AppenderRef ref="RollingRandomAccessFileError"/>
            </Root>
        </Loggers>
    
    </Configuration>
    

    当配置AsyncLoggerContextSelector作为异步日志时,请确保在配置中使用普通的 <root><logger>元素。AsyncLoggerContextSelector将确保所有记录器都是异步的,使用的机制与配置<asyncRoot><asyncLogger>时的机制不同。

    通过log.info(“是否为异步日志:{}”, AsyncLoggerContextSelector.isSelected());可以查看是否为异步日志。

    日志输出方式
    sync同步打印日志,日志输出与业务逻辑在同一线程内,当日志输出完毕,才能进行后续业务逻辑操作
    Async Appender异步打印日志,内部采用ArrayBlockingQueue,对每个AsyncAppender创建一个线程用于处理日志输出。
    Async Logger异步打印日志,采用了高性能并发框架Disruptor,创建一个线程用于处理日志输出。
    展开全文
  • LINUX日志采集及远程日志同步

    千次阅读 2018-10-13 22:29:07
    进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和问题的故障排除 , 一般这些日志永久存储 /var/log 目录中 1.日志类型 auth ###pam产生的日志 authpriv ###ssh、ftp等登陆信息的验证...

    一、系统日志
    进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和问题的故障排除 , 一般这些日志永久存储 /var/log 目录中
    1.日志类型
    auth            ###pam产生的日志
    authpriv        ###ssh、ftp等登陆信息的验证信息
    cron            ###时间任务相关
    kern            ###内核
    lpr            ###打印
    mail            ###邮件
    mark(syslog)-rsyslog    ###服务内部消息,时间标识
    news            ###新闻组
    user            ###用户程序产生相关信息
    uucp            ###unix to unix copy(unix主机之间相关通信)
    local 1~7        ###自定义日志设备
    2.日志级别
    debug            ###有调式信息的,日志信息最多
    info            ###一般信息的日志,最常用
    notice            ###最具有重要性的普通条件的信息
    warning            ###警告级别
    err            ###错误级别,阻止某功能或模块不能正常工作的信息
    crit            ###严重级别,阻止整个系统或整个软件不能正常工作的信息
    alert            ###需要立刻修改的信息
    emerg            ###内核崩溃等严重信息
    none            ###什么都不记录
    注:
    3.日志存储文件
    日志永久存储于 /var/log 目录中。各系统文件记录信息如下:
    var/log/messages    ###大多数系统日志信息记录在此处
    /var/log/secure        ###安全和身份认证相关的消息和错误的日志文件(系统登陆)
    /var/log/maillog    ###与邮件服务器相关的日志文件
    /var/log/cron         ###与定时任务相关的日志文件
    /var/log/boot.log     ###与系统启动有关的日志文件

    二、日志采集
    1.系统日志采集服务rsyslog

         此服务是用来采集服务的,他不产生日志,只是采集
    2.日志采集规则

    1)指定日志采集路径

    rsyslog 服务的主配置文件为/etc/rsyslog.conf 。在此文件中指定日志采集路径的格式为:
         日志类型 . 日志级别           /var/log/file(日志存放文件)

    测试步骤:

    vim   /etc/rsyslog.conf          ##查看并修改采集日志文件配置,为了让我们把日志采用到指定位置

            *.*       /var/log/westos     #将所有日志的所有调试信息放到/var/log/westos(这个文件会自动生成)
    systemctl  restart  rsyslog.service     #重启rsyslog系统

     >    /var/log/westos            ###清空日志

    logger  test   

    cat   /var/log/westos           ###查看日志

    2)指定日志采集格式

    vim      /etc/rsyslog.conf

          $template 格式名称 , “日志采集格式”

           日志类型 . 日志级别                /etc/log/file(日志保存文件);格式名称

    %timegenerated%  #日志生成时间
    %FROMHOST-IP%    #日志来源主机的IP
    %syslogtag%             #日志生成程序(记录目标)
    %msg%                    #日志内容
    \n                             #换行

    测试步骤:

    vim    /etc/rsyslog.conf
          $template STUDENT,"%FROMHOST-IP% %syslogtag% %msg%\n"          ###不采集时间
          *.*                                                     /var/log/westos;STUDENT

    systemctl  restart  rsyslog.service 

     >    /var/log/westos            ###清空日志

    logger  student 

    cat   /var/log/westos           ###查看日志

    三、日志的远程同步及采集格式设定

    1.远程日志同步

    1)在日志发送方

    vim   /etc/rsyslog.conf

    *.*    @接受IP *.*         ##‘@’表示udp协议发送,‘@@’表示tcp协议发送   ##将所有日志的所有调试信息发送到接收方地址

    systemctl  restart  rsyslog.service          ###重启rsyslog服务器

    2)在日志接收方
    vim /etc/rsyslog.conf
    15    $ModLoad imudp            ###日志接收模块
    16    #$UDPServerRun 514          ###打开接收端口

    systemctl restart rsyslog 
    systemctl stop firewalld            ###关闭防火墙 

    systemctl disable firewalld   #关闭防火墙对接收的屏蔽

    测试步骤:

    发送方server(172.25.254.248):

    vim   /etc/rsyslog.conf

    systemctl restart rsyslog.service

    接收方desktop(172.25.254.168):

    vim   /etc/rsyslog.conf

    systemctl restart rsyslog

    systemctl stop firewalld   

    在发送方:

    在接收方:

    注意排错:防火墙关闭;网络畅通;服务开启;接口开启

    四、时间同步

    1.时间同步服务名称  chronyd

    在服务器端共享时间:
    vim /etc/chrony.conf

       22      allow  IP/24                ##允许那些客户端来访问本机共享的时间

       29      local stratum 10                 ##本机不同步任何时间,本机作为时间源

       systemctl restart chronyd.server    ##重启chronyd服务

    在客户端:

    vim /etc/chrony.conf

    server  主机IP    iburst      ##本机立即同步ip主机的时间

    systemctl restart chronyd    ##重启chronyd

    chronyc sources -v

    改为

    出现“^* ”就说明试验成功,已经和172.25.254.248的时间同步

    ^                   ##172.25.254.248的服务器

    *                   ##current synced已完成同步

    2.修改时间

    1)timedatectl 命令

    timedatectl                  ##查看时间

    timedatectl  list-timezones  ##查找所有时区时间
    timedatectl  set-timezone Asia/Shanghai    ##修改时间为上海时间

    timedatectl status            ##显示当前时间信息

    timedatectl set-time "2018-10-13  22:15:00"    ##更改当前时间

    2)设置硬件时间

    timedatectl set-local-rtc 0   ##使用UTC(伦敦)时间

    timedatectl set-local-rtc 1    ##使用当地时间

    vim  /etc/adjtime              ###查看硬件时间配置文件

    五、日志查看

    1.     journalctl                  ##日志查看工具,直接查看内存中的日志(暂时)

       
            journalctl  -n  3        ##查看最近日志的前三行

       
            journalctl  -p  err     ##查看日志中的错误

       
            journalctl  --since  时间点   --until  时间点

      
            journalctl -o verbose             ##查看日志详细参数  

     

             journalctl _COMM=sshd _PID=10171

    测试:systemctl status sshd   ##查看pid

                systemctl restart sshd       ##重开启一个sshd,每重启一次PID就会不一样

        

    2.如何使用systemd-journald永久保存日志

    默认此程序只负责对日志进行查看而不对日志进行保存和采集,那么关机后再开机,对日志进行查看,只能查看到开机后的日志

    系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到

    让systemd-journald保存日志到硬盘:
    mkdir     /var/log/journal
    chown    root.systemd-journal     /var/log/journal     ##更改文件所有人及所有组
    chmod   g+s    /var/log/journal                                  ##在目录中创建的文件都自动归属到目录所在组
    killall    -1    systemd-journald                                   ##信号1,重新加载配置而不重启

    法二:

    测试:

    journalctl   -n  3         ##查看日志前三行内容
    reboot                 ##退出系统
    重新登陆

    cd   /mnt         ###随便执行一条命令

    journalctl          ##查看日志

     

     

     

    展开全文
  • 而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志ES做下详细解读。1、目的:将本地磁盘存储的日志文件同步(全量同步、实时增量同步)ES中。 2、源文件:[root@5b9dbaaa148a test_log]# ll -...

    引言:

    之前博文介绍过了mysql/oracle与ES之间的同步机制。而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志到ES做下详细解读。

    1、目的:

    将本地磁盘存储的日志文件同步(全量同步、实时增量同步)到ES中。 
    这里写图片描述

    2、源文件:

    [root@5b9dbaaa148a test_log]# ll
    -rwxrwxrwx 1 root root 170 Jul 5 08:02 logmachine.sh
    -rw-r--r-- 1 root root 66 Jul 5 08:25 MProbe01.log
    -rw-r--r-- 1 root root 74 Jul 5 08:28 MProbe02.log
    • 1
    • 2
    • 3
    • 4

    3、增量实时同步脚本:

    [root@5b9dbaaa148a test_log]# cat logmachine.sh
    #!/bin/bash
    icnt=0;
    while (true)
    do
      echo "[debug][20160703-15:00]"$icnt >> MProbe01.log
      echo "[ERROR][20160704-17:00]"$icnt >> MProbe02.log
      icnt=$((icnt+1));
    done
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4、logstash配置文件:

    [root@5b9dbaaa148a logstash_jdbc_test]# cat log_test.conf
    input {
      file {
      path=> [ "/usr/local/logstash/bin/test_log/MProbe01.log",
    "/usr/local/logstash/bin/test_log/MProbe02.log" ]
      #codec=>multiline {
      # pattern => "^\s"
      # what=>"previous"
      #}
      type=>"probe_log"  #类型名称
      # tags=>["XX.XX.XX.XX"]
      }
    }
    
    ###过滤
    #filter{
    # grok {
    # match => ["message","mailmonitor"]
    # add_tag => [mailmonitor]
    # }
    
    # grok {
    # match => [ "message", "smsmonitor" ]
    # add_tag => [smsmonitor]
    # }
    # ....
    #}
    
    ###output to es
    output {
      elasticsearch {
      hosts => "10.8.5.101:9200"
      index => "mprobe_index"     #索引名称
      #template_name => "mprobelog"
      #document_id => "%{id}"
      }
      stdout { codec => json_lines }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    5、同步测试:

    [root@5b9dbaaa148a bin]# ./logstash -f ./logstash_jdbc_test/log_test.conf
    Settings: Default pipeline workers: 24
    Pipeline main started
    {"message":"[DEbug][20160305-15:35]testing02","@version":"1","@timestamp":"2016-07-05T07:26:08.043Z","path":"/usr/local/logstash/bin/test_log/MProbe01.log","host":"5b9dbaaa148a"
    • 1
    • 2
    • 3
    • 4

    6、结果验证 
    (1)日志记录:

    [root@5b9dbaaa148a test_log]# tail -f MProbe01.log
    [DEbug][20160305-15:35]testing02
    [DEbug][20160305-15:35]testing01
    ^C
    [root@5b9dbaaa148a test_log]# tail -f MProbe02.log
    [DEbug][20160305-15:35]testing02_001
    [DEbug][20160305-15:35]testing02_003
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    (2)ES记录 
    这里写图片描述

    展开全文
  • Logstash 同步log日志文件Elasticsearch

    千次阅读 2020-01-05 11:24:12
    1.Elasticsearch安装和Logstash安装环境参照...3.在logstash准备同步的log和conf文件 根据图示创建文件夹和文件 3.1 myfile.conf (根据实际情况修改path的路径和es的服...

    1.Elasticsearch安装和Logstash安装环境参照https://blog.csdn.net/qq_33371766/article/details/103322707

    2.启动elasticsearch和kibana

    3.在logstash准备同步的log和conf文件

    根据图示创建文件夹和文件

    3.1 myfile.conf (根据实际情况修改path的路径和es的服务地址)

    input {
      file {
          path =>"D:\workTool\logstash-6.3.2\myfileconfig\log_info.log"
          type=>"info_log"  #类型名称
      }
    }
    
    output {
      elasticsearch {
          hosts => ["192.168.75.1:9200"]
          index => "info_index"     #索引名称
        }
      stdout { codec => json_lines }
    }
    
    


    3.2 info_log.log (这里添加了3条数据,是一条一条添加的,logstash会实时的同步到es中)

    ===2019-12-16 19:25:13.361 INFO  com.zaxxer.hikari.HikariDataSource Line:110 - HikariPool-1 - Starting...
    ===2019-12-16 19:33:18.582 ERROR  com.zaxxer.hikari.HikariDataSource Line:123 - HikariPool-1 - Start completed.
    ===2019-10-02 22:40:15.010 WARN  org.springframework.boot.devtools.autoconfigure.OptionalLiveReloadServer Line:61  - Unable to start LiveReload server

    4.验证es中的数据

    数据同步成功!

    es的查询语句可以参考https://blog.csdn.net/tuntun1120/article/details/80322801

    展开全文
  • logstash7.5.1同步nginx日志到elasticsearch

    千次阅读 多人点赞 2020-01-31 17:54:34
    测试环境:centos 前言:本文在已经安装...上面的架构是还没有进行日志过滤的,只是简单的将nginx日志通过logstash传输es中,过滤环节是很耗时间和资源的。所以一般都会加上一个消息中间件比如kafka或redis这种...
  • 系统日志及时间同步

    千次阅读 2018-04-18 17:05:41
    hostnamectl set-hostname...rsyslog采集日志,关闭后开启会采集没有采集的日志,采集规则配置文件 cat /var/log/messages > /var/log/messages #清空 vim /etc/rsyslog.conf auth.* *.* /var/log/l...
  • logstash kafka 同步日志

    千次阅读 2021-02-25 12:49:37
    微服务情况下,通常会有一台日志服务器,专门存放日志,我们在查看日志的时候,通过指定的目录加上项目名称为路径,就可以找到我们想找的目录。 环境 centos7 kafak logstash demo项目 步骤 安装及配置logstash ...
  • rsyslog日志管理: /var/log/messages 服务信息日志 /var/log/secure 系统登陆日志 /var/log/cron 定时任务日志 /var/log/maillog 邮件日志 /var/log/boot.log 系统启动日志 日志类型: auth ##pam产生的...
  • 内核及系统日志 用户日志 程序日志 查看日志的工具:tail 、 more 、 less 、 cat 、 who 、 w 、 users 、last 、ac 1、日志备份和归档 2、延长日志保存期限 3、控制日志访问权限 4、集中管理日志 runlevel...
  • logstash实现日志文件同步到elasticsearch深入详解

    万次阅读 热门讨论 2016-07-06 22:09:48
    而logstash最初始的日志同步功能还没有介绍。本文就logstash同步日志ES做下详细解读。1、目的:将本地磁盘存储的日志文件同步(全量同步、实时增量同步)ES中。 2、源文件:[root@5b9dbaaa148a test_log]# ll -...
  • Python 将后台日志实时同步到前端

    千次阅读 2018-08-05 20:17:00
    Python 将后台日志实时同步到前端 针对这个需求,网上有说后台生成文件,前端用 ajax 来 fetch ,不过我没有试过。我是尝试 websocket 来实现,参考了http://www.cnblogs.com/hhh5460/p/7397006.html/ 一次失败的...
  • mysql主从复制的原理图 MySQL5.6开始主从复制有两种方式:基于日志(binlog)、基于GTID(全局事务标示符)。 binlog文件格式简介 根据《High-Level Binary Log Structure and Contents》所述,不同版本的 Binlog...
  • 同步日志代码

    2008-07-22 11:53:46
    java写同步写文件日志
  • 1、Master看到slave在连接,show processlist也看到在dump binlog mysql&gt; show slave hosts; +-----------+------+------+-----------+--------------------------------------+ | Server_id | Host | ...
  • 报错:kibana查询不到日志信息

    千次阅读 2020-03-25 23:50:37
    报错:elk集群中kibana查询不到日志信息 在搭建好elk之后发现kibana查询不到...两台主机之间时间不同步,并不是什么大问题,由于时间不同步导致日志搜寻不到。 解决: 使用ntpdate命令进行时间同步,问题很快就解决...
  • Linux系统日志以及日志同步设置

    千次阅读 2017-07-21 23:45:02
    Linux系统日志 Linux日志同步设置 Linux日志管理
  • CentOS7 利用rsyslog建立日志备份(同步)服务前言0x01 服务端配置0x02 客户端配置0x03 测试0x04 总结 前言 日志是查看系统运行情况的一个重要部分,在应急响应中,服务器的日志文件就扮演了一个特别重要的作用,...
  • MYSQL 日志同步数据同步

    千次阅读 2011-12-12 11:12:43
    最近在做MYSQL主从备份时,发现,日志已经同步,但是数据不同步的问题. 后来,我就重新把做了一次主从设置,发现,竟然又同步了,一开始我还以为是我的存储过程中使用了Insert into .... select 所致呢.   重新做的方案...
  • Linux系统远程日志同步(rsyslog)

    千次阅读 2019-09-20 20:44:32
    Linux系统远程日志同步方便管理服务器 一、Linux系统日志服务安装 二、日志服务器通过UDP接收日志 三、日志服务器通过TCP接收日志 四、logger命令
  • 在本文中主要介绍Linux系统中如何实现服务器和客户端的时间同步和日志同步,以及如何更改相应的配置文件,希望对你有所帮助。
  • 手机浏览器日志如何同步到电脑?电脑上如何查看手机浏览器的日志? 本文主要讲述iphone手机浏览器的console.log日志如果同步到MAC电脑上。 Web Inspector是Web开发人员用来在Mac和iOS设备上修改,调试和优化网站的...
  • rsyslog日志同步架构(一主一从) 前期准备 centos7 (IP:192.168.91.134)---------->主日志接收端 centos7 (IP:192.168.91.135)---------->从日志发送端 配置过程 从日志发送端192.168.91.135 ...
  • Raft 实现日志复制同步

    千次阅读 2017-02-04 22:08:24
    Raft 实现日志复制同步 本篇文章以 John Ousterhout(斯坦福大学教授) 和 Diego Ongaro(斯坦福大学获得博士学位,Raft算法发明人) 在 Youtube 上的讲解视频及 ppt 为蓝本,深入分析 Raft 的内部机制,并以日志...
  • 【深入浅出etcd系列】3. 日志同步

    千次阅读 2019-06-20 10:54:06
    复制状态机正确运行的核心的同步日志日志是保证各节点状态同步的关键,日志中保存了一系列状态机命令,共识算法的核心是保证这些不同节点上的日志以相同的顺序保存相同的命令,由于状态机是确定的,所以相同的命令...
  • 日志同步与时间同步

    2017-07-29 11:19:34
    日志同步,时间同步,时区设定
  • springboot使用logback将日志同步到mysql

    千次阅读 2018-04-04 10:16:42
    <root level="INFO"> </root><!--输出mysql数据库的appender配置 --> <connectionSource class="c
  • log 1.日志类型 auth #用户登陆日志(pam产生日志) authpriv #服务认证日志(sshd认证) kern #内核日志 cron #定时任务日志 lpr #打印机日志 mail ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 398,530
精华内容 159,412
关键字:

发日志能不能不同步到动态