• rsyslog实现将日志存储到mysql中


    ​ 前提:准备好msql server或mariadb server;

    ​ 1、安装rsyslog连接至mysql server的驱动模块;

    1. [13:24 root@centos6.8~]# yum install -y rsyslog-mysql
    2. [13:24 root@centos6.8~]# rpm -ql rsyslog-mysql
    3. /lib64/rsyslog/ommysql.so
    4. /usr/share/doc/rsyslog-mysql-5.8.10
    5. /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

    可以看到其实rsyslog模块提供的启动mysql的模块还有createDB.sql,它的作用就是定义了日志的记录表格式,可以直接导入该sql语句到mysql即可

    新建rsyslog的mysql用户

    CREATE USER 'rsyslog'@'localhost' IDENTIFIED BY 'password';
    

    授权数据库

    GRANT ALL PRIVILEGES ON Syslog.* TO 'rsyslog'@'localhost';
    

    刷新权限:运行以下命令以使权限更改立即生效:

    FLUSH PRIVILEGES;
    

    ​ 2、在mysql server准备rsyslog专用的用户账号;

    1. mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'rsyslogpass';
    2. mysql>GRANT ALL ON Syslog.* TO 'rsyslog'@'local' IDENTIFIED BY 'rsyslogpass';
    3. mysql> FLUSH PRIVILEGES;

    ​ 3、导入该sql语句到mysql即可,生成所需要的数据库和表;

    1. [13:24 root@centos6.8~]# mysql -ursyslog -h127.0.0.1 -p123456 < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
    2. mysql> USE Syslog
    3. Reading table information for completion of table and column names
    4. You can turn off this feature to get a quicker startup with -A
    5. Database changed
    6. mysql> SHOW TABLES;
    7. +------------------------+
    8. | Tables_in_Syslog |
    9. +------------------------+
    10. | SystemEvents |
    11. | SystemEventsProperties |
    12. +------------------------+
    13. 2 rows in set (0.00 sec)
    14. mysql> DESC SystemEvents
    15. -> ;
    16. +--------------------+------------------+------+-----+---------+----------------+
    17. | Field | Type | Null | Key | Default | Extra |
    18. +--------------------+------------------+------+-----+---------+----------------+
    19. | ID | int(10) unsigned | NO | PRI | NULL | auto_increment |
    20. | CustomerID | bigint(20) | YES | | NULL | |
    21. | ReceivedAt | datetime | YES | | NULL | |
    22. | DeviceReportedTime | datetime | YES | | NULL | |
    23. | Facility | smallint(6) | YES | | NULL | |
    24. | Priority | smallint(6) | YES | | NULL | |
    25. | FromHost | varchar(60) | YES | | NULL | |
    26. | Message | text | YES | | NULL | |
    27. | NTSeverity | int(11) | YES | | NULL | |
    28. | Importance | int(11) | YES | | NULL | |
    29. | EventSource | varchar(60) | YES | | NULL | |
    30. | EventUser | varchar(60) | YES | | NULL | |
    31. | EventCategory | int(11) | YES | | NULL | |
    32. | EventID | int(11) | YES | | NULL | |
    33. | EventBinaryData | text | YES | | NULL | |
    34. | MaxAvailable | int(11) | YES | | NULL | |
    35. | CurrUsage | int(11) | YES | | NULL | |
    36. | MinUsage | int(11) | YES | | NULL | |
    37. | MaxUsage | int(11) | YES | | NULL | |
    38. | InfoUnitID | int(11) | YES | | NULL | |
    39. | SysLogTag | varchar(60) | YES | | NULL | |
    40. | EventLogType | varchar(60) | YES | | NULL | |
    41. | GenericFileName | varchar(60) | YES | | NULL | |
    42. | SystemID | int(11) | YES | | NULL | |
    43. +--------------------+------------------+------+-----+---------+----------------+
    44. 24 rows in set (0.00 sec)

    ​ 4、配置rsyslog加载ommysql模块

    1. #### MODULES ####
    2. ......
    3. $ModLoad ommysql
    1. ​ 5、配置RULES,将所期望的日志信息记录于mysql中;
    2. ​ 其格式为:
    3. ​ facility.priority :ommysql:DBHOST,DB,DBUSER,DBUSERPASS

    检查数据库连接信息:确保数据库连接信息正确。在你的配置中,你正在将日志发送到MySQL服务器的127.0.0.1,数据库名为Syslog,用户名为rsyslog,密码为123456。请确保这些信息与你的实际MySQL配置匹配。

    配置规则:在*.*:ommysql这部分,*.*表示将所有日志消息都发送到MySQL。你可以根据需要更改这部分以匹配特定的日志规则。

    ​ 所以添加以下信息:

    1. *.*
    2. :ommysql:127.0.0.1,Syslog,rsyslog,123456

    ​ 6、启动mysql服务,并重启rsyslog服务,mysql已经记录日志,到此为止,日志信息已经成功的存储于数据库中;

    systemctl restart mariadb && systemctl restart rsyslog
    
    1. mysql>USE Syslog
    2. Reading table information for completion of table and column names
    3. You can turn off this feature to get a quicker startup with -A
    4. Database changed
    5. mysql> SELECT * FROM SystemEvents\G
    6. *************************** 1. row ***************************
    7. ID: 1
    8. CustomerID: NULL
    9. ReceivedAt: 2016-10-16 13:35:46
    10. DeviceReportedTime: 2016-10-16 13:35:46
    11. Facility: 0
    12. Priority: 6
    13. FromHost: centos6
    14. Message: imklog 5.8.10, log source = /proc/kmsg started.
    15. NTSeverity: NULL
    16. Importance: NULL
    17. EventSource: NULL
    18. EventUser: NULL
    19. EventCategory: NULL
    20. EventID: NULL
    21. EventBinaryData: NULL
    22. MaxAvailable: NULL
    23. CurrUsage: NULL
    24. MinUsage: NULL
    25. MaxUsage: NULL
    26. InfoUnitID: 1
    27. SysLogTag: kernel:
    28. EventLogType: NULL
    29. GenericFileName: NULL
    30. SystemID: NULL
    31. *************************** 2. row ***************************
    32. ID: 2
    33. CustomerID: NULL
    34. ReceivedAt: 2016-10-16 13:35:46
    35. DeviceReportedTime: 2016-10-16 13:35:46
    36. Facility: 5
    37. Priority: 6
    38. FromHost: centos6
    39. Message: [origin software="rsyslogd" swVersion="5.8.10" x-pid="3081" x-info="http://www.rsyslog.com"] start
    40. NTSeverity: NULL
    41. Importance: NULL
    42. EventSource: NULL
    43. EventUser: NULL
    44. EventCategory: NULL
    45. EventID: NULL
    46. EventBinaryData: NULL
    47. MaxAvailable: NULL
    48. CurrUsage: NULL
    49. MinUsage: NULL
    50. MaxUsage: NULL
    51. InfoUnitID: 1
    52. SysLogTag: rsyslogd:
    53. EventLogType: NULL
    54. GenericFileName: NULL
    55. SystemID: NULL
    56. *************************** 3. row ***************************
    57. ID: 3
    58. CustomerID: NULL
    59. ReceivedAt: 2016-10-16 13:35:50
    60. DeviceReportedTime: 2016-10-18 10:48:37
    61. Facility: 18
    62. Priority: 6
    63. FromHost: localhost
    64. Message: nidhai
    65. NTSeverity: NULL
    66. Importance: NULL
    67. EventSource: NULL
    68. EventUser: NULL
    69. EventCategory: NULL
    70. EventID: NULL
    71. EventBinaryData: NULL
    72. MaxAvailable: NULL
    73. CurrUsage: NULL
    74. MinUsage: NULL
    75. MaxUsage: NULL
    76. InfoUnitID: 1
    77. SysLogTag: root:
    78. EventLogType: NULL
    79. GenericFileName: NULL
    80. SystemID: NULL
    81. *************************** 4. row ***************************
    82. ID: 4
    83. CustomerID: NULL
    84. ReceivedAt: 2016-10-16 13:35:52
    85. DeviceReportedTime: 2016-10-18 10:48:39
    86. Facility: 18
    87. Priority: 6
    88. FromHost: localhost
    89. Message: D
    90. NTSeverity: NULL
    91. Importance: NULL
    92. EventSource: NULL
    93. EventUser: NULL
    94. EventCategory: NULL
    95. EventID: NULL
    96. EventBinaryData: NULL
    97. MaxAvailable: NULL
    98. CurrUsage: NULL
    99. MinUsage: NULL
    100. MaxUsage: NULL
    101. InfoUnitID: 1
    102. SysLogTag: root:
    103. EventLogType: NULL
    104. GenericFileName: NULL
    105. SystemID: NULL
    106. 4 rows in set (0.00 sec)

  • 相关阅读:
    mac配置环境变量总结
    【Spring--SSM框架详解】主流Java后端开发,Mybatis+Spring+SpringMVC整合(更新Spring中)
    JavaScript 数组(数组的增删和数组排序)
    ARM/X86工业级数据采集 (DAQ) 与控制产品解决方案
    并发编程之并发关键字篇--volatile
    飞天使-k8s知识点21-kubernetes实操6-daemonset
    电子元器件企业面临缺货涨价,SRM协同系统助力企业采购数字化智慧升级
    开源日报 0826 | Caddy:易用性与安全性的完美结合
    mysql学习之mysql集群
    【Leetcode】【字符串相乘】
  • 原文地址:https://blog.csdn.net/cjj2006/article/details/133846358