如何获取AWS RDS数据库连接的详细信息(如来源IP等)?
查询AWS RDS连接详情(来源IP等)的方法
1. 直接查询数据库内置视图/表
不同数据库引擎的查询语句不同,直接用对应语句获取连接明细:
- MySQL/MariaDB:执行语句获取来源IP、用户、数据库等信息
其中SELECT host, user, db, command, time FROM information_schema.processlist WHERE db IS NOT NULL;host字段即为连接来源(远程连接显示IP:端口,本地连接显示localhost) - PostgreSQL:通过系统视图查询
SELECT client_addr, usename, datname, state, query_start FROM pg_stat_activity WHERE datname IS NOT NULL;client_addr字段对应来源IP - SQL Server:关联系统视图获取连接信息
SELECT c.client_net_address, s.login_name, s.database_name, s.status FROM sys.dm_exec_connections c JOIN sys.dm_exec_sessions s ON c.session_id = s.session_id WHERE s.is_user_process = 1;client_net_address为连接来源IP
2. 借助AWS CloudWatch日志
若已开启RDS数据库日志导出到CloudWatch,可从日志中提取连接信息:
- MySQL/MariaDB:临时开启通用查询日志或慢查询日志(注意通用日志会占用较多存储),日志中会记录连接来源、用户等细节
- PostgreSQL:导出
postgresql.log,日志中会包含connection received from xxx.xxx.xxx.xxx:xxxx这类连接记录 - 在CloudWatch控制台通过关键词(如
connection)筛选日志,定位连接相关条目
3. 使用RDS Performance Insights
开启Performance Insights功能后,可在控制台查看连接的细分维度:
- 进入RDS实例的Performance Insights页面,找到连接相关指标,能筛选不同来源、用户、数据库的连接分布
- 可查看连接的实时趋势,以及具体的连接源信息
4. 启用VPC Flow Logs
若RDS部署在VPC中,开启对应子网的VPC Flow Logs:
- Flow Logs会记录进出RDS实例的网络流量,包含来源IP、端口、流量方向等数据
- 在CloudWatch Logs或S3中分析Flow Logs,筛选目标端口为数据库端口(如3306、5432)的入站流量,即可获取连接来源IP
内容的提问来源于stack exchange,提问作者Libin Biji
相关产品推荐
相关产品推荐

