CentOS 7にGraylogサーバーをインストールする方法
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
Linuxでは、オブジェクトが実際にファイル、デバイス、ディレクトリ、またはソケットであるかどうかに関係なく、多くのオブジェクトはファイルと見なされます。ファイルのリストは簡単ls
です。そのための組み込みシェルがあります。しかし、ユーザーがWebサーバープロセスによって現在開かれているファイルを確認したい場合はどうでしょうか。または、そのユーザーが特定のディレクトリで開かれているファイルを確認したい場合はどうなりますか?それがlsof
出番です。「オープンファイル」が追加さlsof
れたls
と想像してください。
BSDにはこのジョブ用の別のユーティリティがありfstat
ますが、Unixの他のいくつかのフレーバー(Solarisなど)にもがあることに注意してくださいlsof
。他のプラットフォームではオプションとフラグが異なり、出力の外観も異なりますが、通常、この記事の知識はそれらにも適用できるはずです。
まず、lsof
出力の形式とそれがどのように読み取られるかを見てみましょう。lsof
パラメータなしの通常の出力は次のようになります。これは読みやすくするために省略されています。
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 254,1 4096 2 /
init 1 root rtd DIR 254,1 4096 2 /
init 1 root txt REG 254,1 36992 7077928 /sbin/init
init 1 root mem REG 254,1 14768 7340043 /lib/x86_64-linux-gnu/libdl-2.13.so
init 1 root mem REG 254,1 1603600 7340040 /lib/x86_64-linux-gnu/libc-2.13.so
init 1 root mem REG 254,1 126232 7340078 /lib/x86_64-linux-gnu/libselinux.so.1
init 1 root mem REG 254,1 261184 7340083 /lib/x86_64-linux-gnu/libsepol.so.1
init 1 root mem REG 254,1 136936 7340037 /lib/x86_64-linux-gnu/ld-2.13.so
init 1 root 10u FIFO 0,14 0t0 4781 /run/initctl
これらの列の意味は次のとおりです。
init
。この例では、すべてがに関連しています。init
、それはほとんど常にroot
です。cwd
-現在の作業ディレクトリ(現在の作業ディレクトリpwd
を出力するコマンドとの類似性に気付くかもしれません)。rtd
-プロセスのルートディレクトリ。txt
-A text file
、これは、プロセスに関連する構成ファイル、またはプロセスに関連する(またはプロセスに属する)「ソースコード」を意味します。mem
-いわゆる「メモリマップファイル」。ファイルに割り当てられている仮想メモリ(読み取り:RAM)のセグメントを意味します。r
- 読んだ。w
- 書く。u
- 読み書き。REG
-通常のファイル。DIR
-ディレクトリ。FIFO
- 先入先出。これは今のところ少し圧倒されるかもしれませんが、lsof
数回作業すると、すぐに脳に沈みます。
上���のとおり、lsof
ここではの出力が短縮されています。引数やフィルターがないと、lsof
何百行もの出力が生成され、混乱するだけです。
その問題を解決するには、2つの基本的なアプローチがあります。
lsof
コマンドラインオプションを使用して、結果を絞り込みます。grep
。後者のオプションは、lsof
コマンドラインオプションを覚える必要がないので、より快適に聞こえるかもしれませんが、一般にそれほど柔軟で効率的ではないため、最初のオプションに固執します。
お気に入りのテキストエディターでファイルを開き、別のプログラムが既にアクセスしているため、テキストエディターはファイルを読み取り専用モードでのみ開くことができると通知するとします。lsof
加害者が誰であるかを見つけるのに役立ちます:
lsof /path/to/your/file
これにより、次のような出力が生成されます。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vim 2679 root 5w REG 254,1 121525 6035622 /root/lsof.txt
どうやら、古いセッションを閉じるのを忘れました!NFS共有をマウント解除しようとumount
すると、マウントされたフォルダーにまだアクセスしているためにマウントできないという非常に類似した問題が発生します。繰り返しlsof
ますが、原因を特定するのに役立ちます。
lsof +D /path/to/your/directory/
末尾のスラッシュに注意してください。これは重要です。それ以外の場合lsof
は、通常のファイルを意味すると見なされます。+
フラグの前にあると混同しないでください。一般的なlsof
オプション+
に加えて、必要なコマンドラインオプションが多数あります-
。出力は次のようになります。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mocp 5637 music 4r REG 0,19 10147719 102367344 /home/Music/RMS_GNU_SONG.ogg
これは、ユーザーに属するプロセスmocp
がPIDを5637
使用しmusic
て、というファイルを開いたことを意味しますRMS_GNU_SONG.ogg
。ただし、そのプロセスを閉じた後でも、まだ問題があります-NFSボリュームをアンマウントできません。
lsof
-c
任意のプロセス名で開かれたファイルを表示するフラグがあります。
lsof -c mocp
これにより、次のような出力が生成されます。
mocp 9383 music 4r REG 0,19 10147719 102367344 /home/Music/ANOTHER_RMS_GNU_SONG.ogg
この例では、mocp
runningの別のインスタンスがあり、共有をアンマウントできません。そのプロセスをシャットダウンした後、ユーザーmusic
が他の潜在的に問題のあるファイルを開いていないことを確認する必要があります。特定のユーザーが開いたファイルを表示するためlsof
の-u
フラグがあります。ファイルがハードディスク上の通常のファイルであるとは限らないことに注意してください。
lsof -u music
複数のユーザーをカンマで区切って渡すこともできます。
lsof -u music,moremusic
のデフォルトの動作に関する重要な注意lsof
:結果はORベースです。music
つまり、ユーザーまたはユーザーが所有するプロセスによって開かれたファイル結果が表示されますmoremusic
。両方のユーザーが所有するプロセスと一致する結果を表示する場合は、フラグを渡す必要があります-a
。
lsof -au music, moremusic
両方のユーザーがグループに属しているため、グループmusicusers
に基づいてファイルを一覧表示することもできます。
lsof -g musicusers
コマンドラインフラグを組み合わせることもできます。
lsof -u music,moremusic -c mocp
or
lsof -u ^music +D /home/Music
最後の行で^
、論理NOTを表す別の特別なフラグ-を追加しました。そのコマンドの実行後に出力が空の場合、アンマウントはおそらく成功します。
前の例では、主に通常のファイルを調べました。ソケットとネットワーク接続はどうですか?
現在のネットワーク接続をすべてリストするにlsof
は、次の-i
フラグがあります。
lsof -i
出力はこれまでに見たものに似ています...
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
owncloud 3509 myuser 25u IPv4 44946 0t0 TCP strix.local:34217->myserver.vultr.com:https (ESTABLISHED)
firefox 3612 myuser 82u IPv4 49663 0t0 TCP strix.local:43897->we-in-f100.1e100.net:https (ESTABLISHED)
ssh 3784 myuser 3u IPv4 10437 0t0 TCP strix.local:51416->someserver.in:ssh (ESTABLISHED)
wget 4140 myuser 3w IPv4 45586 0t0 TCP strix.local:54460->media.ccc.de:http (CLOSE_WAIT)
... 1つの違いを除いて:ファイル名やディレクトリの代わりに、列にNAME
接続情報が表示されるようになりました。各接��は、次の部分で構成されています。
他の多くのツールと同様に、DNS名とポート(-n
および-P
、それぞれ)の解決をオプトアウトできます。フラグ-i
は追加のパラメーターを取ります。あなたは、表示するかどうかを指定することができtcp
、udp
またはicmp
接続または特定のポートを:
lsof -i :25
or
lsof -i :smtp
この場合も、パラメータを組み合わせることができます。次の例...
lsof -i tcp:80
...ポート80を使用したTCP接続のみが表示されます。「クラシック」ファイルからすでに知っているオプションと組み合わせることもできます。
lsof -a -u httpd -i tcp
これにより、ユーザーが開いているすべてのTCP接続が表示されますhttpd
。-a
フラグに注意してください(これは、lsof
前述のように)のデフォルトの動作を変更します。ほとんどのコマンドラインツールと同様に、非常に深く理解できます。以下は、状態が「確立」であるTCP接続のみを示します。
lsof -i -s TCP:ESTABLISHED
この時点で、lsof
いくつかの一般的な使用例とともに、動作の基本について理解しているはずです。詳細についてlsof
は、システムののマンページを参照してください。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。