osquery
osquery是一个由FaceBook开源用于对系统进行查询、监控以及分析的一款软件,其最意思的地方是使用sql来查询系统的一些信息
安装
macos
brew install --cask osquery
ubuntu
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt-get update
sudo apt-get install osquery
centos
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm-repo
sudo yum install osquer
使用
osquery存在两种运行模式,分别是osqueryi(交互式模式类似sqllite)、osqueryd(后台进程模式)。
osqueryi
# 进入交互模式
osqueryi
查看所有的表
.table
查看dns这个图表的所有内容
.all dns_resolvers
select * from dns_resolvers
查看dns这个图表的所有内容
dns_resolvers
查看表结构
.schema dns_resolvers
设置显示模式
.mod csv
查看帮助
.help
常用sql
# 负载
select period,average from load_average;
# 内存
select memory_total,memory_free,swap_cached,active from memory_info;
# 磁盘
select path,type,blocks,blocks_free from mounts where blocks!=0;
# 查询监听0.0.0.0的进程的名字,端口和pid
SELECT DISTINCT processes.name, listening_ports.port, processes.pid
FROM listening_ports JOIN processes USING (pid)
WHERE listening_ports.address = '0.0.0.0';