本帖最后由 新手733603 于 2021-1-22 17:11 编辑
文章来源我个人于一次对于Nxlog的使用需求,搜索未找到相应教程,在摸索中学会了nxlog的数据采集,特分享出来,希望能帮助初次接触并想要理解LAS日志采集的或者有采集日志需求的小伙伴。第一次发帖,对于行文和技术的不足之处,欢迎大家指教
----------------------------------正文分割线-----------------------------------
1.环境背景
按照等保要求,服务器的日志需要统一保存并审计,这里就得推荐下我们的LAS日志审计设备了;回到正文,一般对于linux下的日志采集使用的是rsyslog采集数据,但是rsyslog不方便采集中间件apache、tomcat等日志,而且对于数据库的日志也无法采集。这里就引出了我们的主角,日志采集神器:Nxlog
ps:本文环境皆是centos7
2.软件安装
这里用的是社区版,因为免费;下载centos7_64位安装包并上传到服务器中,或者在服务器可联网环境直接使用wget命令下载,如果提示命令不可用,请yum install wget安装wget
- wget https://nxlog.co/system/files/products/files/348/nxlog-ce-2.10.2150-1_rhel7.x86_64.rpm
复制代码安装:
- rpm -ivh nxlog-ce-2.10.2150-1_rhel7.x86_64.rpm
复制代码部分centos是最小化安装的,发现安装过程报错,缺少依赖包:
#rpm -ivh nxlog-ce-2.10.2150-1_rhel7.x86_64.rpm Error:Failed dependencies: apr >= 1.2 isneeded by nxlog-ce-2.10.2150-1.x86_64 libapr-1.so.0()(64bit)is needed by nxlog-ce-2.10.2150-1.x86_64 libdbi >= 0.8.1is needed by nxlog-ce-2.10.2150-1.x86_64 libdbi.so.0()(64bit)is needed by nxlog-ce-2.10.2150-1.x86_64 这里使用yum命令安装下即可: - yum install apr libdbi -y
复制代码安装完成继续运行rpm -ivh 安装nxlog。 到这基本软件安装完成,接下来则是配置软件,使他符合我们抓取日志的要求
3.nxlog配置文件
默认配置文件位置:/etc/nxlog.conf 默认日志文件位置:/var/log/nxlog/nxlog.log 首先备份配置文件,养成良好习惯避免乱改后不知道原来是怎么样的
- cp nxlog.conf nxlog.conf.back
复制代码接着编辑文档
vi nxlog.conf
先不急,咱从上往下熟悉;首先是用户名用户组这一块建议删除,因为中间件日志默认只有root用户有读取权限,如果以nxlog用户去读取是无权限的,当然你也可以通过chmod命令改变文件权限,这里就不推荐了
编辑支持的扩展格式
- <Extension _json>
- Module xm_json
- </Extension>
- <Extension _syslog>
- Module xm_syslog
- </Extension>
复制代码 配置输入(也就是采集模块)和输出模块,以及路径 <Input 名称></input> <out 名称></out> <route 名称></route> 因为我需要采集系统日志和中间件tomcat日志,所以配置如下;前面三个Input模块是采集系统日志,配置从内核、Systemd日志和/dev/log收集日志。后面两个是tomcat日志;日志文件路径支持通配符*;- <pre style=""># Convert the syslog
- <Input kernel>
- Module im_kernel
- Exec parse_syslog_bsd();
- </Input>
- <Input journal>
- Module im_uds
- UDS /run/systemd/journal/syslog
- Exec parse_syslog_bsd();
- </Input>
- <Input devlog>
- Module im_uds
- UDS /dev/log
- FlowControl FALSE
- Exec $raw_event =~ s/\s+$//; parse_syslog_bsd();
- </Input>
- # Convert the Tomcat access logs
- <Input Tomcat_Logs>
- Module im_file
- File "/home/tomcat-8-party/logs/localhost_access_log.*"
- SavePos TRUE
- </Input>
- # Convert the jeesite logs
- <Input Jeesite_Logs>
- Module im_file
- File "/home/tomcat-8-party/logs/jeesite.log*"
- SavePos TRUE
- </Input>
- <Output out1>
- Module om_udp
- Host 10.251.251.1
- Port 514
- </Output>
- <Output out2>
- Module om_udp
- Host 10.251.251.1
- Port 514
- Exec $Message = to_json(); to_syslog_bsd();
- </Output>
- ########################################
- # Routes #
- ########################################
- <Route 1>
- Path Tomcat_Logs, Jeesite_Logs => out1
复制代码 配置完成保存退出。这里使用systemd/journal采集日志,还需要配置下journal文件编辑 vi /etc/systemd/journald.conf 将ForwardTosyslog的注释#去掉,并改为yes 禁用 rsyslog: 完成上述配置后重启各项服务 4.测试
到这里就没问题了。通过一个小软件在日志接收主机上监听514端口验证日志接收
web还没部署好,先手动修改下 /home/tomcat-8-party/logs/localhost_access_log日志内容测试下 成功收到我编辑的测试文本。配置完成
--------------------------正文分割线------------------------------
数据库的日志采集还没测试,过几天测试下。
|