LoginSignup
2
3

More than 5 years have passed since last update.

sosreportのカスタマイズ

Last updated at Posted at 2018-09-01

前書き

sosreportをサーバのOS構築後の情報取得やカスタマーサポートで使ってらっしゃる方は多いと思います。
しかし、デフォルトでは収集してくれない情報もあります。例えば、/etc/passwd や /etc/group など。
おそらくセキュリティ的な理由であえて取得しないようになっていると思われますが、せっかくのOS情報収集ツールなのに少し不便です。そこでsosreportをカスタマイズして、追加の情報も取得できるようにしてみました。

カスタマイズ方法

sosreport自体の説明や使い方はこちらでは省略します。
sosreportはPythonで書かれているため、カスタマイズして追加の情報を取得するには、Pythoneでpluginを書くことになります。
pluginの書き方はこちらを参照しました。
How to Write a Plugin

環境

  • CentOS 7.5(仮想マシン)
  • VirtualBox on Mac

今回、sosreportで追加で取得する情報

  • /etc/passwdファイル
  • /etc/groupファイル
  • /etc/sudoersファイル
  • localectl statusのコマンド実行結果

単純にOSの設定ファイルをコピーするだけでなく、任意のコマンド結果も取得することができます。今回キーボードの設定をコマンドで取得することにしました。

sosreportの変更箇所

/usr/lib/python2.7/site-packages/sos/plugins/に下記のファイルを作成します。

/usr/lib/python2.7/site-packages/sos/plugins/my_plugin.py
from sos.plugins import Plugin, RedHatPlugin

class MyPlugin(Plugin, RedHatPlugin):
    """This plugin copies some stuff"""

    def setup(self):
        self.add_copy_spec([
            "/etc/passwd",
            "/etc/group",
            "/etc/sudoers",

        self.add_cmd_output("localectl status")
        ])

後は普通にsosreportを実行するだけです。

実行結果

取得したsosreportの結果ファイルを解凍すると以下のファイルが追加されています。
- etc/passwd
- etc/group
- etc/sudoers
- sos_commands/myplugin/localectl_status

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3