AnyRobot-数据采集 rsyslog 脚本采集日志最佳实践
简介:AnyRobot-数据采集 rsyslog 脚本采集日志最佳实践
关键字
Rsyslog、采集日志
适用产品
·AnyRobot 3.0.12
目的
· 要对多个日志文件进行监控,rsyslog 要求用户一个一个地写配置文件,过程繁琐,用户期望可以用一条命令来实现对多个日志文件的监控上传;
· 用户日志文件夹中可能新增或删除日志文件,要对其进行监控,rsyslog 要求用户手动写配置文件;
· 用户期望可以对文件夹进行监控,若新增日志文件,则自动对其监控,若删除日志文件,则自动停止对其监控。
解决方案
基本思路
· 使用 crontab + shell 脚本的方法来实现对文件夹的监控上传;
· shell 脚本 manage_rsyslog_conf.sh 用来创建、删除对应监控文件的 syslog 的配置文件,以实现 rsyslog 对文件状态的监控和文件内容的上传;
· shell 脚本 manage_monitor_task.sh 用来创建对文件夹监控的任务,通过对在 crontab 中添加和删除文件夹监控任务,实现对文件夹动态的监控的开始和停止;
· 用户通过调用 manage_monitor_task.sh,并输入监控的文件夹的路径( Path , 支持匹配符),例如:./manage_monitor_task.sh -a -h IP地址 -p 端口 --filepath "/root/xxx.log",实现对指定文件夹中文件内容的监控上传。
步骤一,查看监控
1. 进入 rsyslog 监控脚本目录,执行命令如下:
cd /anyrobot/tools/rsyslog_upload_directory
步骤二,新建监控任务
1. 使用 admin 用户登录 AnyRobot;
2. 点击数据源 > 数据输入 ,进入数据输入页面。
3. 点击新建按钮,进入新建数据输入页面,填写协议类型:TCP,日志类型:rsyslog,日志标签:rsyslog,接收端口:20088,编码格式:UTF-8。
4. 点击保存按钮,数据输入配置完成,返回任务列表页,新建任务出现在列表中。
5. 执行脚本监控日志文件
情景一,监控一个日志文件夹下的一个日志文件:
(1) 进入 rsyslog 监控脚本目录,在 /anyrobot/tools/rsyslog_upload_directory 目录下执行以下命令:
./manage_monitor_task.sh -a -h IP地址 -p 端口 --filepath "/root/xxx.log"
(2) 监控成功后,在 /etc/rsyslog.d 文件夹里生成配置文件:xxx.conf。
情景二,监控一个日志文件夹下的多个同类型的日志文件
(3) 进入 ryslog 监控脚本目录,执行以下命令。监控 root 目录下的多个文件成功,在 /etc/rsyslog.d 目录下生成配置文件 xxx.conf。
./manager_monitor_task.sh -a -h IP地址 -p 端口 --filepath "/root/*.log
情景三,监控不同文件夹下面的多个同类型的日志文件
(1) 执行以下命令,监控不同文件夹下的多个文件 "/*/*.txt",在 /etc/rsyslog.d 目录下生成配置文件 xxx.conf。
./manager_monitor_task.sh -a -h IP地址 -p 端口 --filepath "/*/*.txt
6. 待 /etc/rsyslog.d 文件里的日志上传成功,在搜索界面可搜索到监控成功的日志信息;登陆 AnyRobot,点击搜索,进入搜索界面,在元数据字段下正选 type=rsyslog,可筛选出对应的监控日志。
步骤三,查看监控任务
1. 进入 ryslog 监控脚本目录,执行以下命令,查询所有的监控任务:
./manage_monitor_task.sh -l
2. 根据上一个步骤中查询的监控任务可获得任务 id:0、1、2、3、4、5;使用以下命令查询指定监控任务 id=1,获得该任务的信息。
./manager_monitor_task.sh -l 1
步骤四,删除监控任务
1. 进入 ryslog 监控脚本目录,执行以下命令,删除监控任务 id=1 及相关配置文件。
./manage_monitor_task.sh -d 1