SSH操作ログを記録したい。Amazon Linux 2で。ちょっとハマったのでメモ。
https://github.com/a2o/snoopy
Amazon Linux 1
1なら簡単に入ります。バージョンはだいぶ古いものの、EPELにRPMがありますので。
sudo yum install -y snoopy-logger --enablerepo=epel
Amazon Linux 2
EPELにパッケージが存在してません。 https://bugzilla.redhat.com/show_bug.cgi?id=1154859 として挙がったものの、進捗は無いようです。
docker run -it library/amazonlinux:2 /bin/bash
yum list | grep snoopy
yum list --enablerepo=epel | grep snoopy
Amazon Linux 2 で成功する手順
git-master 指定でなら成功。snoopy-installがリコメンドしてきた gcc などの他に、Dockerコンテナ版Amazon Linux 2 は which のインストールも必要でした。
docker run -it library/amazonlinux:2 /bin/bash
yum install -y gcc gzip make socat tar wget autoconf git libtool m4
yum install -y which
rm -f snoopy-install.sh
wget -O snoopy-install.sh https://github.com/a2o/snoopy/raw/install/doc/install/bin/snoopy-install.sh
chmod 755 snoopy-install.sh
./snoopy-install.sh git-master
成功してこのようなメッセージが出ます。
bash-4.2# ./snoopy-install.sh git-master
SNOOPY INSTALL: Required programs already present: gcc gzip make socat tar wget autoconf git libtool m4
SNOOPY INSTALL: Starting installation, log file: //snoopy-install.log
SNOOPY INSTALL: Installation mode: git-REFERENCE
SNOOPY INSTALL: Cloning git repository: https://github.com/a2o/snoopy.git
SNOOPY INSTALL: Checking out git ref: master
SNOOPY INSTALL: Git submodules: initilizing...
SNOOPY INSTALL: Git submodules: updating...
SNOOPY INSTALL: Bootstraping build environment... done.
SNOOPY INSTALL: Configuring... done.
SNOOPY INSTALL: Building... done.
SNOOPY INSTALL: Installing... done.
SNOOPY INSTALL: Enabling... done.
SNOOPY LOGGER is now installed and enabled.
TIP #1: If Snoopy is to be enabled for all processes, you need
to restart your system, or at least all services on it.
TIP #2: If you ever need to disable Snoopy, you should use provided
'snoopy-disable' script. Use 'snoopy-enable' to reenable it.
TIP #3: Snoopy output can usually be found somewhere in /var/log/*
Check your syslog configuration for details.
TIP #4: Configuration file location: /etc/snoopy.ini
See included comments for additional configuration options.
Snoopy wishes you a happy logging experience:)
bash-4.2#
メッセージにあるとおり、SSHログアウトや、EC2インスタンスの再起動などしてください。
Amazon Linux 2 で失敗する手順 (stable
stable と バージョン指定の場合、 http://source.a2o.si というサーバーから持ってこようとしているのですが、 https://github.com/a2o/snoopy/issues/146 によりダメなようです。サーバーが落ちてる理由はちょっとわからないです。まあ、そのうち復活するんじゃないでしょうか。わからんけど。
bash-4.2# ./snoopy-install.sh stable
SNOOPY INSTALL: Required programs already present: gcc gzip make socat tar wget
SNOOPY INSTALL: Starting installation, log file: //snoopy-install.log
SNOOPY INSTALL: Installation mode: package-latest-stable
SNOOPY INSTALL: Getting latest Snoopy version... ^Z
(ここで control + z。一時停止させる
[1]+ Stopped ./snoopy-install.sh stable
bash-4.2# bg %1
[1]+ ./snoopy-install.sh stable &
(バックグラウンドで実行を継続させる
bash-4.2# ps -auxfww
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 11748 3056 pts/0 Ss 05:49 0:00 /bin/bash
root 5385 0.0 0.1 11616 2660 pts/0 S 05:53 0:00 /bin/bash ./snoopy-install.sh stable
root 5389 0.0 0.0 11616 1776 pts/0 S 05:53 0:00 \_ /bin/bash ./snoopy-install.sh stable
root 5398 0.0 0.2 47116 4692 pts/0 S 05:53 0:00 \_ wget -q -O - http://source.a2o.si/download/snoopy/snoopy-latest-version.txt
root 5404 0.0 0.1 51924 3524 pts/0 R+ 05:54 0:00 ps -auxfww
bash-4.2#
(するとwgetで止まってる。URLをウェブブラウザで見に行ってみると、何も反応がないことがわかる。
Amazon Linux 2 で失敗する手順 (バージョン指定
https://github.com/a2o/snoopy/issues/146 のとおりgithubのソースでバージョン指定でやってみるものの、Buildの途中で突然死します。何か出てきても使うのは怖いですね。
bash-4.2# ./snoopy-install.sh git-snoopy-2.4.6
SNOOPY INSTALL: Required programs already present: gcc gzip make socat tar wget autoconf git libtool m4
SNOOPY INSTALL: Starting installation, log file: //snoopy-install.log
SNOOPY INSTALL: Installation mode: git-REFERENCE
SNOOPY INSTALL: Cloning git repository: https://github.com/a2o/snoopy.git
SNOOPY INSTALL: Checking out git ref: snoopy-2.4.6
SNOOPY INSTALL: Git submodules: initilizing...
SNOOPY INSTALL: Git submodules: updating...
SNOOPY INSTALL: Bootstraping build environment... done.
SNOOPY INSTALL: Configuring... done.
SNOOPY INSTALL: Building... bash-4.2#
bash-4.2#