在Python程序中用UDP向IBM Qradar发送log
2020-07-14 06:27
846 查看
目录
Python中利用UDP向IBM Qradar发送log
不仅适用于Qradar,任何远程服务器接收方都适用。。。(监听514端口)
系统环境
- IBM Qradar
- Centos 7
- Python 2.7.5
常见方法
- import syslog
Example:
import syslog log = syslog.openlog(" --自定义-- ", syslog.LOG_PID) #LOG_PID 指代系统进程号 syslog.syslog('Test')
-运行结果 用 tail /var/log/messages 查看
- 利用syslog UDP/TCP forwarding
编辑 rsyslog.conf
vi /etc/rsyslog.conf
去掉UDP forwarding 的注释
#Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
在rsyslog.conf最后新增加一行,用来将所有的日志信息转发给Qradar
# remote host is : name/ip:port (port optional) *.* @Qradar-IPAddress:514
Esc 退出编辑
:wq 保存并关闭文件
最后不要忘记重启服务
[root@ServerHostname ~]# /etc/init.d/rsyslog restart
本文使用方法
因为不想将centos的整个syslog转发给Qradar,而且项目原因不宜将敏感data留在Centos中,所以寻找了python自带的socket来实现UDP通信。
本文UDP用法参考了PyDrarren的 Python网络通信(udp、tcp)
Qradar通用的syslog 格式
Example:
Mar 25 2020 17:55:11 HOSTNAME [FUNCTION NAME]: log message
因为博主很懒,所以用的最直接的方式来合成以上格式。。。
如果有更合理及简便的方式,欢迎大神指导
直接上代码:
from socket import * import time #获得本地时间 t = time.strftime('%b %d %Y %H:%M:%S', time.localtime()) #初始Socket udp_socket = socket(AF_INET, SOCK_DGRAM) #设置目标服务器的IP 和 Port dest_addr = (Qradar-ip, 514) #获取本地服务器的Hostname hostname = ' ' + gethostname() + ' ' #设置function name f_name = '[funct_name]' #合成syslog message = t + hostname + f_name + 'log message' #发送至Qradar udp_socket.sendto(message, dest_addr) #Close Socket udp_socket.close()
运行结果
可在Qradar端用 tcpdump 查看是否有数据传输
后话
小弟第一次写blog,欢迎各位大神指正
相关文章推荐
- 【Python】udp网络程序-发送、接受数据
- python实现udp网络程序-发送、接收数据
- python学习——邮件发送程序
- Python的udp简单聊天室程序
- UDP发送和接收程序
- python3实现邮件发送程序
- Python 发送 RMAN 备份 Log 脚本
- Python网络编程笔记之UDP发送消息示例(三)
- Linux Linux程序练习十一(网络编程大文件发送UDP版)
- c语言实现模拟发送报文改进版(添加程序自动打log)
- python 写的udp服务器和客户端变身的程序。
- linux下基于udp的简单的接收与发送程序,开发板与本机接收与发送信息
- python文件传输程序,socket发送文件,可直接下载运行
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- 笔试题13:采用UDP协议,编写一个简单发送字符串的程序(源码)
- 使用Python Tkinter编写的简易发送邮件程序
- 基于python的图形化邮件发送程序(支持添加附件)
- [Python] socket发送UDP广播实现聊天室功能
- python 将字符串转化成16进制进行UDP的发送
- Python 发送 RMAN 备份 Log 脚本