Reenvío remoto de Centos de registros de Rsyslog y almacenamiento de registros de Mysql

Centos: reenvío remoto de registros Rsyslog y almacenamiento de registros Mysql

entorno de laboratorio

  • Servidor de base de datos / registro remoto: Centos 7, ip estática: 192.168.6.128
  • Servidor de base de datos / registro local: Centos 6.9, ip estática: 192.168.6.146

Introducción a Rsyslog

1. Introducción

  • Nombre completo: sistema Rocket-Fast para registro

  • Características: El servicio de registro en sí admite múltiples subprocesos; admite muchos registros de protocolo de transmisión: UDP, TCP; puede almacenar registros en una base de datos como Mysql; admite protocolos de cifrado como SSL, TLS; tiene un filtro potente que puede filtrar el contenido del registro; Puede personalizar el formato de salida

  • Componentes:

    a. Programa principal: / usr / sbin / rsyslogd

    si. Centos 6 命令 : service rsyslog {iniciar | detener | reiniciar | estado}

    C. Centos 7 命令 : systemctl {iniciar | detener | reiniciar | estado} rsyslog.service

    d. Archivo de configuración: /etc/rsyslog.conf , / etc / rsyslog.d * .conf

    e. Archivo de biblioteca: /lib64/rsyslog/*.so

  • Estructura del archivo /etc/rsyslog.conf:

    Compuesto por módulo MÓDULOS , configuración global DIRECTIVAS GLOBALES , reglas REGLAS

  • Regla: consta de instalación, prioridad, destino y el formato de configuración en el archivo de configuración es el siguiente:

    Facility.Proirity[;Fcility.Priority...]			Target
    

2. Instalación

  • Referencia: man 3 syslog

  • Descripción: este parámetro se utiliza para especificar qué servicio (programa) está imprimiendo información de registro. Haga que el archivo de configuración aclare el origen del registro, para que el procesamiento correspondiente.

  • Tipo de instalación:

    instalaciones Descripción
    auth Registros PAM, registros de autenticación
    authpriv FTP, SSH y otros registros de autenticación de inicio de sesión
    correo Registro electrónico
    cron Tareas programadas (progreso del reloj)
    kern Registro de inicio del kernel
    FTP Información de registro de FTP
    USUARIO (predeterminado) Genere mensajes a nivel de usuario
    SYSLOG Información de registro del sistema
    ***** Todas las facilidades

3. Prioridad

  • Referencia: man 3 syslog

  • Descripción: especifique el nivel de importancia del registro (disminuyendo de arriba hacia abajo, disminuyendo de izquierda a derecha)

    nivel descripción nivel descripción
    Emerg Sistema no disponible aviso Acontecimientos ordinarios de importancia
    Alerta Tome medidas inmediatamente después de cerrar Info Evento útil
    Crit Evento clave Depurar Información de depuración
    Errar Evento de error ***** Todos los niveles
    Advertir Evento de advertencia NINGUNA No grabar

4. Objetivo

  • Nota: En el almacenamiento y los archivos de registro especificados, generalmente en / var / log, la ruta del archivo está delante de la escritura asincrónica; puede ser la siguiente:
  • Archivo: /var/log/xxx.log
  • Servidor de registro: @ip , el modo UDP envía el registro al servidor remoto designado para su grabación; @@ ip es el modo TCP
  • Pipeline: | COMMAND , reenviado a otro procesamiento de comandos

Reenvío de registros de Rsyslog

1. Confirmación de instalación del software

yum -y install rsyslog

2. Configuración de firewall y SElinux

  • Si no ha aprendido la configuración del firewall, simplemente apague el firewall para cumplir con el entorno del sistema requerido para el volcado de registros.

    #关闭防火墙
    iptables -F
    #centos7查看防火墙状态
    systemctl status firewalld
    #cento6查看防火墙状态
    service iptables status
    

3. Modificación del archivo de configuración del servidor

  • El servidor de registros almacenará registros en diferentes archivos de acuerdo con la configuración del archivo y la instalación / nivel de rsyslog.conf. Configuramos la función de información de registro de usuario (Facilidad) como: usuario, correspondiente a un nivel de configuración común importante: aviso, y enviamos el archivo que cumple con esta situación al servidor de registro remoto /var/log/user.log; En otros casos, los registros generados por otras instalaciones enviadas también se almacenarán en otros archivos designados.

  • Servidor local

    [root@lin ~]# vim /etc/rsyslog.conf 
    # remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
    #*.* @@remote-host:514
    #远程转发日志 (ip地址填写远程日志服务器的ip地址)
    #注意:使用@代表走UDP协议,使用@@代表走TCP协议。
    
    user.notice                         @192.168.6.128514
    
    #本地存储日志
    user.notice                         /var/log/user.log
    
    #重启服务
    [root@lin ~]# service rsyslog restart
    Shutting down system logger:                   [  OK  ]
    Starting system logger:                        [  OK  ]
    
  • Servidor de registro de registro remoto

    [root@ ~ 11:24:30]#vim /etc/rsyslog.conf
    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514
    
    user.notice                          /var/log/user.log
    
    #重启
    [root@ ~ 11:39:25]#systemctl restart   rsyslog
    #检查UDP514端口是否在提供服务
    [root@ ~ 11:40:15]#netstat -tulnp|grep 514
    udp        0      0 0.0.0.0:514             0.0.0.0:*                           1217/rsyslogd       
    udp6       0      0 :::514                  :::*                                1217/rsyslogd   
    

4. Prueba de registrador

  • logger: una interfaz de comandos de shell que conduce al sistema de registro syslog
  • mensaje del registrador: escriba el registro, lea desde la entrada estándar sin agregar ninguna opción
#客户端
[root@lin ~]# logger luelueluepinginglab
[root@lin ~]# cat /var/log/user.log 
Aug  8 20:01:32 lin root: luelueluepinginglab

#服务器端
[root@ ~ 11:40:17]#tailf /var/log/user.log
tailf: stat failed /var/log/user.log: No such file or directory
[root@ ~ 11:40:57]#touch /var/log/user.log
[root@ ~ 11:41:41]#tailf /var/log/user.log   #先执行此命令,再去客户端打印日志
Aug  8 20:01:32 lin root: luelueluepinginglab

Resumen: Mediante la modificación de los archivos de configuración del servidor de registro local y del servidor de registro remoto, el registro local se puede almacenar en el servidor de registro remoto de forma remota.

Los registros de Rsyslog se reenvían a un archivo en un formato específico

1. Configuración del servidor de registro remoto /etc/rsyslog.conf

#要求:使不同IP发来的日志单独放到不同的日志文件中
#日志文件名格式:IP-年-月-日.log
#模板设置:rsyslog.conf文件最底部加入如下模板
vim /etc/rsyslog.conf

#定义模板:用来指定接收的日志文件的存放路径,%...%之间定义的是参数
$template DynamicIpLog,"/log/%fromhost-ip%-%$YEAR%-%$MONTH%-%$DAY%.log"

#接收日志:将传来的用户普通消息存到指定位置(?用来标识动态模板)
user.notice                              ?DynamicIpLog

#:x!保存修改

2. Prueba

#重启远程服务器端
[root@ ~ 04:53:48]#systemctl restart rsyslog.service
[root@ ~ 04:54:08]#netstat -tulnp |grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*                           1517/rsyslogd       
udp6       0      0 :::514                  :::*                                1517/rsyslogd      
[root@ ~ 04:54:20]#ls /log   		 #一开始目录还没创建
ls: cannot access /log: No such file or directory
#日志发送端开始发送日志
[root@lin ~]# logger xixihahaxixihaha

#再次查看远程服务器端
[root@ ~ 04:55:05]#cat /log/192.168.6.146-2020-09-12.log    		 #已经将日志存到模板创建的目录中的文件当中
Aug  9 01:01:56 lin root: xixihahaxixihaha   #内容属实
[root@ ~ 04:55:20]#vim /etc/rsyslog.conf  

Los registros de Rsyslog se almacenan en MySQL local

1. Instalación

  • centos6: servidor mysql
  • centos7: servidor mariadb
#安装mysql的yum源
wget https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
#安装用来配置mysql的yum源的rpm包
rpm -Uvh mysql57-community-release-el6-9.noarch.rpm 
#安装mysql
yum install mysql-community-server
#开启mysql服务
[root@lin ~]# service mysqld start
Starting mysqld:                                 				  [  OK  ]

2. Inicie sesión para cambiar la contraseña

#初次安装,root用户的登陆密码是回车键即没有密码
[root@lin ~]# mysql -u root -p  
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
#登陆进去之后,再修改密码
mysql> use mysql;
mysql> UPDATE user SET Password= password('854633') where User='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 3  Changed: 2  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3. Instale el controlador Mysql adecuado para el servicio de registro Rsyslog

[root@lin ~]# yum install rsyslog-mysql
[root@lin ~]# ll /usr/share/doc/rsyslog-mysql-5.8.10/    #查看是否有sql文件
total 4
-rw-r--r--. 1 root root 1046 Apr 18  2011 createDB.sql   #将指定的sql文件导入到数据库中
[root@lin ~]# mysql -u root -p </usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql 
Enter password:
[root@lin ~]# mysql -u root -p                           #登陆mysql
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| Syslog             |									#Syslog日志数据库已经导入
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

4. Configuración de permisos de la base de datos de Syslog

#授予Syslog所有表的所有使用权限 给localhost(如果是外网主机这里就是对应ip地址),
#localhost通过账号为sysloguser密码为syspass使用Syslog数据库
mysql> grant all on Syslog.* to 'sysloguser'@'localhost' identified by 'syspass';
mysql> flush privileges; #刷新权限

5. Modificar el archivo de configuración de Rsyslog

vim /etc/rsyslog.conf
#如果要接收其他主机的日志,需要开启相应的模块,以此打开对应监听端口
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
$ModLoad ommysql

#追加模块 
$ModLoad ommysql
#追加规则::模块名:+ip地址,+数据库名,++登陆名,+登陆密码
user.notice                                     :ommysql:127.0.0.1,Syslog,s
ysloguser,syspass
#服务重启
[root@lin ~]# service restart rsyslog
#查看状态
[root@lin ~]# service rsyslog status
rsyslogd (pid  3700) is running...

6. Prueba

#如果是将日志服务器的内容通过网络存储到远程数据库服务器中,那么在测试过程当中
#需要进行防火墙配置
#发送日志
[root@lin ~]# logger this is a log to mysql
#登陆mysql后,使用数据库
mysql> use Syslog;
#查看表格
mysql> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)
#查表
mysql> select * from SystemEvents\G;
*************************** 1. row ***************************
                ID: 1
        CustomerID: NULL
        ReceivedAt: 2020-08-09 04:12:50
DeviceReportedTime: 2020-08-09 04:12:50
          Facility: 1
          Priority: 5
          FromHost: lin
           Message:  this is a log to mysql   #确实是之前发送的日志内容,测试成功
        NTSeverity: NULL
        Importance: NULL
       EventSource: NULL
         EventUser: NULL
     EventCategory: NULL
           EventID: NULL
   EventBinaryData: NULL
      MaxAvailable: NULL
         CurrUsage: NULL
          MinUsage: NULL
          MaxUsage: NULL
        InfoUnitID: 1
         SysLogTag: root:
      EventLogType: NULL
   GenericFileName: NULL
          SystemID: NULL

Supongo que te gusta

Origin blog.csdn.net/weixin_31789689/article/details/108556277
Recomendado
Clasificación