rsyslog多线程远程日志记录介绍(lamp+rsyslog)

2023年 7月 15日 76.8k 0

 

rsyslog:

 

rsyslog:
多线程;
支持UDP, TCP, SSL, TLS, RELP远程日志记录
rsyslog支持将日志记录在MySQL, PGSQL, Oracle等多种关系数据库中
rsyslog支持强大的过滤器,可实现过滤系统信息中的任意部分
自定义输出格式
适用于企业级别日志记录需求

 

对于日志产生速率非常快的,保存在数据库中是不明智的,可能会使用nosql,分布式
elk组件: elasticsearch, logstash日志收集工具, kibana图形展示工具
elk:轻量,易用,展示,分析平台
elk:为独立的,大量的日志生成而工作

日志生成方:应用程序和内核
每个应用程序都可自行记录日志
内核也可记录日志

 

rsyslog核心概念:
facility: 设施,从功能或程序上对日志进行分类,并由专门的工具负责记录相应的日志信息;
auth;认证
authpriv:认证权限
cron:定期任务计划
daemon:守护
kern:内核
lpr:打印系统
mail:邮件
mark:防火墙
news:新的
security:安全
syslog:自己的日志
user:用户
uucp:uinxcp,uinx2
local0 - local7:自定义

 

priority:级别
debug:调试
info:除debug之外
notice:请关注
warn, warning:警告级别
err, error:发生错误
crit:蓝色警报
alert:红色警报
emerg, panic:橙色,红色

指定级别的方式:
*: 所有级别
none: 没有级别
priority: 比此级别高的(包含)所有级别的日志信息都会记录
=priority: 仅记录指定级别

文件记录日志文件的格式:
事件产生的时间          主机                  进程(PID):                      事件

有些日志记录二进制格式,例如,两个日志文件:
成功登录系统的日志:/var/log/wtmp
查看命令:last
失败的登录的尝试:/var/log/btmp
查看命令:lastb

lastlog命令:显示当前系统每个用户各自最近一次的登录信息

 

 

rsyslog的配置文件:/etc/rsyslog.conf

一,模块:
启用本机成为日志服务器:
vim  /etc/rsyslog.conf
UDP
$ModLoad imudp
$UDPServerRun 514       收集日志信息
开启UDP模块后便可以使用ss -unlp查看514端口是否开启了

TCP
$ModLoad imtcp
$InputTCPServerRun 514

 

二,rsyslog支持把日志存储于mysql中:
(1) 有可用的MySQL服务器;
简单安装:yum -y install mysql-server
(2) 安装rsyslog-mysql程序包;
yum -y install rsyslog-mysql
(3) 创建rsyslog依赖的数据库;
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-VERSION/createDB.sql
(rpm -ql rsyslog-mysql可以查看sql文件位置)

(4)进入mysql查看Syslog是否已经导入

#mysql -u root -p

password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Syslog |
| blog
MariaDB [(none)]> use Syslog
Database changed
MariaDB [Syslog]> show tables;
+------------------------+
| Tables_in_Syslog |
+------------------------+
| SystemEvents |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

MariaDB [Syslog]> desc SystemEventsProperties;
+---------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------+----------------+
| ID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| SystemEventID | int(11) | YES | | NULL | |
| ParamName | varchar(255) | YES | | NULL | |
| ParamValue | text | YES | | NULL | |
+---------------+------------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
(5) 配置rsyslog启用ommysql模块;
vim /etc/rysylog.conf
#### MODULES ####
$ModLoad ommysql
(6) 定义某facility把日志记录至指定的数据库的指定表中;
vim /etc/rysylog.conf
#### RULES ####
facility.priority :ommysql:SERVER_IP,DATABASE,USERNAME,PASSWORD
*.info;mail.none;authpriv.none;cron.none :ommysql:127.0.0.1,Syslog表,rsyslog用户,password密码

当我们保存后,/var/log/messages中的日志将会收集在mysql的Syslog中
创建用户
[root@www ~]# mysql -u root -p
MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'127.0.0.1' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.06 sec)

MariaDB [(none)]> GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.02 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

测试:
安装yum -y install zsh,而后进入数据库查看是否有安装日志!
MariaDB [(none)]> use Syslog
Database changed
MariaDB [Syslog]> SELECT * FROM SystemEvents;
+----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryDAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID |
+----+------------+---------------------+---------------------+----------+----------+----------+--------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------------+-----------+----------+----------+------------+------------+--------------+-----------------+----------+
| 1 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 0 | 6 | www | imklog 5.8.10, log source = /proc/kmsg star | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL |
| 2 | NULL | 2015-05-16 03:52:07 | 2015-05-16 03:52:07 | 5 | 6 | www | [origin software="rsyslogd" swVersion="5.8d="5972" x-info="http://www.rsyslog.com"] start | NULL | NULL | NULL | NULL | NULL | NULL | NULL NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL |
| 3 | NULL | 2015-05-16 03:54:01 | 2015-05-16 03:54:01 | 1 | 6 | www | Installed: zsh-4.3.10-7.el6.x86_64 | NULL | NULL | NULL | NULL | NULL | NULL

也可以这样查看:
MariaDB [Syslog]> SELECT * FROM SystemEventsG
DeviceReportedTime: 2015-05-16 03:54:01
Facility: 1
Priority: 6
FromHost: www
Message: Installed: zsh-4.3.10-7.el6.x86_64
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: yum[5989]:
EventLogType: NULL
GenericFileName: NULL
SystemID: NULL
3 rows in set (0.00 sec)

(7) 可选:使用loganalyzer (WebGUI)来展示日志信息;
依赖:lamp组件;
# yum install httpd php php-mysql php-gd -y
测试下php
vim /var/www/html/index.php
<?php
phpinfo();
?>
下载loganalyzer,并展开至/var/www/html;这里以loganalyzer-3.6.5为例
loganalyzer是一个Php程序
[root@www ~]# tar -xf loganalyzer-3.6.5.tar.gz -C /var/www/html/
[root@www ~]#cd  /var/www/html/

[root@www ~]#cp -r loganalyzer-3.6.5/src /var/www/html/loganalyzer
[root@www ~]# cp loganalyzer-3.6.5/contrib/* /var/www/html/loganalyzer
[root@www ~]# cd  /var/www/html/loganalyzer
[root@www loganalyzer ]# chmod +x configure.sh secure.sh
[root@www loganalyzer]# ./configure.sh
[root@www loganalyzer]# ./secure.sh
[root@www loganalyzer]# chmod 666 config.php
[root@wwwloganalyzer ]# chown -R apache.apache ./*
访问:http://SERVER_IP/loganalyzer/install.php

而后下一步,一直到step7 的时候选择mysql ,在下拉菜单中填写信息即可

rsyslog

 

 

 

 

 

 

 

 

 

2015-05-17_161626rsyslog

 

运行到这里如果出错!
1,将config.php内容删除(:1,$d ),保留config.php文件
2,再次执行
# chmod 666 config.php
# chown -R apache.apache ./*
3,重新安装
扩展主机node1!
打开vim /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none @172.16.249.117
yum install httpd -y
刷新浏览器!

2015-05-17_163907rsyslog2

 

 

相关文章

对接alertmanager创建钉钉卡片(1)
手把手教你搭建OpenFalcon监控系统
无需任何魔法即可使用 Ansible 的神奇变量“hostvars”
openobseve HA本地单集群模式
基于k8s上loggie/vector/openobserve日志收集
openobseve单节点和查询语法

发布评论