ヘッドレスCentOS6サーバーでハードウェア関連のデータを監視したいと思います。より具体的には、電圧、ファン速度、熱データなど。
サーバーはヘッドレスであるため、これを行うための最良の方法は、ipmitool
からの結果を適切な方法でフォーマットするphpスクリプトを使用することです。
もちろん、Webサーバーのユーザーはrootではないので、それは悪いことです。残念ながら、root以外のユーザーには/dev/ipmi*
にアクセスする権限がないようです。これも理にかなっています。
ipmitool -U "someUser" -P "somePassword" sdr
を実行すると、rootとして期待される読み取り値が得られますが、
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Get Device ID command failed
Unable to open SDR for reading
webサーバーとしてログインしているとき。
あちこちで少し検索してdevfs.rules
に興味がありましたが、CentOS6には存在しないようで、/dev
関連のものをマウントすることに慣れていません。
誰かが私を正しい方向に向けることができますか?
/dev/ipmi*
は通常、あなたが見つけたルートのみに制限されています。 root以外のユーザーとしてipmitool
を実行するためのオプションは、(私の個人的な好みの大まかな順序で)次のとおりです。
Sudo
を使用します(一般的に無制限のSudoアクセスも許可したくない場合は、ipmitoolのみの実行を許可する必要があるユーザー専用にsudoersにエントリを作成できます)
udev
ルールを変更して、別のユーザー/グループがデバイスにアクセスできるようにします(udevルールがCentOS 6のどこに保持されているかはわかりませんが、/ etcの下で適切なものを探してください)。これは、devfs.rules
を編集するのと同じアプローチです-CentOSのドキュメントは正しい方向に導き、 このページ (またはいくつかの創造的なグーグル)はudev構文を支援します。 (私はあなたにポインタを与えるでしょうが、私はそれについてほとんど精通していません:x)
ネットワーク経由でIPMIインターフェースに接続します(IPMIインターフェースがこれをサポートしている場合)。
これには、ネットワークインターフェイスとクロスケーブルの書き込み、またはIPMIカードのネットワークへの接続が必要になる場合があります。そのため、リストの下位にあります。
ipmitool
setuid-rootを作成します。
(ええ。そうしないでください。それは一般的に悪い考えであり、ひどいアドバイスです。私が言及しなかったふりをしてください。)