調べものしてたところ、OSの状態をSQLで取得できる『osquery』というFacebookの作ったツールを見かけた。 LinuxのほかMac、Windowsにも対応しているようだ。 さすがにFacebookが作ってるだけあってか、ドキュメントも充実している様子。
今回は、CentOS 7でこのツールをインストールしてみる。
1. インストール
osqueryをCentOSにインストールする場合(他のプラットフォームも同様だが)、こちらの情報を参考に進めるといいだろう。 以下のコマンドでリポジトリを追加してyumからインストールを行う。
sudo rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
sudo yum -y install osquery
これでインストールは完了。
2. 実際に使ってみる
さて、インストールが終わったら実際に使用してみよう。 osqueryのコンソールを開いてそこで操作する方法とコマンドからSQLを実行する方法、2パターンの手法があるようだ。
osqueryi # コンソールを開く
osqueryi 'SQL' # SQLを実行する
[root@BS-PUB-CENT7-02 ~]# osqueryi 'SELECT uid, name FROM listening_ports l, processes p WHERE l.pid=p.pid;'
+-----+----------------+
| uid | name |
+-----+----------------+
| 0 | rserver |
| 0 | sshd |
| 0 | master |
| 0 | sshd |
| 0 | master |
| 0 | NetworkManager |
| 0 | master |
+-----+----------------+
[root@BS-PUB-CENT7-02 ~]# osqueryi 'SELECT address, mac, id.interface FROM interface_details AS id, interface_addresses AS ia WHERE id.interface = ia.interface;'
+-----------------+-------------------+-----------+
| address | mac | interface |
+-----------------+-------------------+-----------+
| 127.0.0.1 | 00:00:00:00:00:00 | lo |
| 172.XXX.XXX.XXX | 32:64:35:36:37:38 | eth0 |
| 172.XXX.XXX.XXX | 66:36:65:39:61:37 | eth1 |
+-----------------+-------------------+-----------+
OSの設定とかを取得するのに便利そうだ。