1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LinuCレベル1を取ったけど、実務でどう使うの?|Linuxサーバの日次点検を実機で試してみた

1
Last updated at Posted at 2026-09-28

はじめに

Linuxを勉強していると、

top
free
df
ps
systemctl
ss
ip
ping

など、サーバの状態を確認するためのさまざまなコマンドが出てきます。

それぞれのコマンドの役割は分かっても、

「実際にLinuxサーバを点検するとしたら、何をどの順番で確認すればいいのか?」

という疑問がありました。

そこで今回は、自宅のUbuntu Serverを使って、正常な状態の日次点検を実際に行ってみました。

今回確認した流れは次のとおりです。

操作対象
↓
稼働時間・Load Average
↓
CPU・プロセス
↓
メモリ
↓
ディスク
↓
nginxサービス
↓
nginxプロセス
↓
80番ポート
↓
HTTP応答
↓
アクセスログ
↓
IPアドレス
↓
疎通確認

一つのコマンドだけで「正常」と判断するのではなく、確認した結果を次の確認につなげていくことを意識しました。


検証環境

今回使用したのは、VirtualBox上に構築したUbuntu Serverです。

ホスト IPアドレス 用途
controller 192.168.56.10 操作用
tokyo 192.168.56.11 点検対象

controllerからtokyoへSSH接続し、tokyoの状態を確認します。

今回はAnsibleなどによる自動化は行いません。

まず手作業で、

「何を確認するために、そのコマンドを使うのか」

を理解することを目的にしています。


1. 操作しているサーバを確認する

最初にcontrollerからtokyoへSSH接続します。

ssh tokyo@192.168.56.11

接続したらホスト名を確認します。

hostname

結果:

tokyo

続いてIPアドレスも確認しました。

hostname -I

表示されたIPアドレスの中に、

192.168.56.11

が含まれていることを確認しました。

基本的な確認ですが、複数台のサーバを扱う場合、

「今どのサーバを操作しているのか」

を最初に確認しておくことは重要だと感じました。

別のサーバを誤って操作しないためにも、まず対象を確認してから点検を始めます。


2. uptimeで稼働時間とLoad Averageを確認する

まずサーバ全体の様子を見るため、uptimeを実行しました。

uptime

今回の結果は、

22:44:44 up 15 min, 1 user, load average: 0.04, 0.34, 0.70

でした。

ここから、

  • 起動してから15分
  • ログインユーザー1人
  • Load Average:0.04 / 0.34 / 0.70

であることが分かります。

ただし、Load Averageの数字だけを見ても判断しにくいため、CPU数も確認しました。

nproc

結果:

1

今回のtokyoにはCPUが1つ割り当てられています。

uptimeだけを見るのではなく、CPU数と組み合わせて状態を見るようにしました。


3. topでサーバ全体の状態を確認する

続いて、

top

を実行しました。

確認した時点では、次のような状態でした。

Tasks        : 115
zombie       : 0
CPU idle     : 99.2%
I/O wait     : 0.0%
Memory total : 961.6 MiB
available    : 582.6 MiB
Swap used    : 0.0 MiB

topには多くの情報が表示されます。

今回は、

Load Average
↓
プロセス数
↓
CPU
↓
メモリ
↓
Swap
↓
CPUやメモリを使用しているプロセス

という順番で確認しました。

CPUについては、

99.2 id

となっていました。

idはCPUがアイドル状態である割合なので、今回確認した時点ではCPUの大部分が使用されていない状態でした。

また、

zombie:0
I/O wait:0.0%

であることも確認しました。

topは情報量が多いですが、見る場所をある程度決めておくとサーバ全体の状態を確認しやすくなりました。


4. free -hでメモリを確認する

topでもメモリは確認できますが、もう少し見やすく確認するため、

free -h

を実行しました。

今回の結果は次のとおりです。

total      : 961Mi
used       : 378Mi
free       : 227Mi
buff/cache : 498Mi
available  : 582Mi
Swap used  : 0B

最初に、

free:227Mi

が目に入りました。

約1GBのメモリに対して227MiBしか空いていないように見えます。

しかし、Linuxでは空いているメモリをキャッシュなどにも利用します。

そこでavailableを見ると、

582Mi

となっていました。

そのため、freeだけを見て、

「空きメモリが少ない=すぐにメモリ不足」

とは判断せず、availableも確認する必要があることが分かりました。


5. df -hでディスク容量を確認する

次はディスクを確認します。

df -h

ルートファイルシステムは、

/dev/sda2  25G  5.7G  18G  25%  /

となっていました。

今回の環境には、ルートファイルシステム以外にも、

/lvmdata
/data

という領域があります。

ここで気づいたのが、

使用率だけではなく、どのファイルシステムなのかも確認する必要がある

ということです。

例えば同じ「ディスク使用率が高い」という状態でも、

/

なのか、

/data

なのかによって、その後確認する場所も変わります。

そのためdf -hでは、使用率とマウント先をセットで見るようにしました。


6. systemctlでnginxの状態を確認する

CPU・メモリ・ディスクを確認したら、次はサービスを確認します。

今回のtokyoではnginxを動かしています。

systemctl status nginx

確認した結果、

Loaded: loaded
enabled
Active: active (running)

となっていました。

ここで確認したのが、

enabled

と、

active (running)

の違いです。

enabledはOS起動時にnginxが自動起動する設定になっていることを示します。

一方、

active (running)は現在nginxが動作していることを示します。

似たように見えますが、確認している内容は異なります。


7. psでnginxのプロセスを確認する

systemctlではnginxが動作していました。

続いて、実際にnginxのプロセスが存在することも確認しました。

ps aux | grep nginx

結果には、

nginx: master process
nginx: worker process

が表示されました。

さらに確認すると、systemctl status nginxで表示されたMain PIDと、psで確認できたPIDも一致していました。

つまり、

systemctl
→ サービスとしての状態

ps
→ 実際のプロセス

という異なる角度からnginxを確認できました。


8. ssで80番ポートを確認する

プロセスが存在していても、

実際にWebサーバとして接続を受け付けているか

はまだ確認できていません。

そこで、

sudo ss -lntp | grep ':80'

を実行しました。

結果には、

0.0.0.0:80
[::]:80

が表示され、どちらもLISTENとなっていました。

これでnginxがTCPの80番ポートで接続を待ち受けていることを確認できました。


9. curlで実際にHTTPリクエストを送る

ここまでで、

サービスが動作している
↓
プロセスが存在している
↓
80番ポートでLISTENしている

ことは確認できました。

ただし、

実際にHTTPリクエストへ正常に応答できるか

はまだ分かりません。

そこで、

curl -I http://localhost

を実行しました。

結果:

HTTP/1.1 200 OK

これで、実際のHTTPリクエストにも正常に応答できていることを確認できました。


10. nginxのアクセスログを確認する

最後に、先ほどのHTTPリクエストがログにも記録されているか確認しました。

sudo tail -n 20 /var/log/nginx/access.log

ログには、

::1 - - [27/Sep/2026:23:04:00 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/8.5.0"

という記録がありました。

直前に実行した、

curl -I http://localhost

の記録です。

-Iを付けているため、

HEAD / HTTP/1.1

と記録されています。

ステータスコードも、

200

でした。

ここまで確認すると、nginxについては、

systemctl
↓
サービス状態

ps
↓
プロセス

ss
↓
80番ポート

curl
↓
HTTP応答

access.log
↓
実際のアクセス記録

という流れで確認できました。

個人的には、今回の日次点検で一番勉強になった部分です。

それぞれ別々に覚えていたLinuxコマンドが、一つの確認作業としてつながりました。


11. ip addrでネットワーク設定を確認する

nginxだけではなく、ネットワークについても正常状態を確認します。

ip addr

今回の環境ではenp0s8に、

192.168.56.11/24

が設定されていることを確認しました。


12. pingで実際の通信も確認する

IPアドレスが設定されているだけでは、相手と通信できるとは限りません。

そこでtokyoからcontrollerへ、

ping -c 4 192.168.56.10

を実行しました。

結果:

4 packets transmitted, 4 received, 0% packet loss

正常に通信できることを確認できました。

この確認は、nginxで行った、

サービスが動いている
↓
実際にHTTPリクエストを送る

という確認と似ていると感じました。

ネットワークでも、

IPアドレスが設定されている
↓
実際に通信できる

まで確認することで、より実際の状態を確認できます。


日次点検で使ったコマンドを整理する

今回使用したコマンドをまとめると次のようになります。

確認内容 コマンド
ホスト名 hostname
IPアドレス hostname -I / ip addr
稼働時間・Load Average uptime
CPU数 nproc
CPU・プロセス・メモリ top
メモリ free -h
ディスク df -h
nginxサービス systemctl status nginx
nginxプロセス ps aux | grep nginx
80番ポート sudo ss -lntp | grep ':80'
HTTP応答 curl -I http://localhost
nginxアクセスログ sudo tail -n 20 /var/log/nginx/access.log
疎通確認 ping -c 4 192.168.56.10

今回重要だと感じたのは、コマンドの数そのものではありません。

一つの確認結果を、次の確認につなげること

です。

例えばnginxなら、

systemctl
↓
ps
↓
ss
↓
curl
↓
access.log

と確認しました。

ネットワークなら、

ip addr
↓
ping

です。

単にコマンドを覚えるだけではなく、

「この結果が正常なら、次に何を確認するのか」

まで考えることで、それぞれのコマンドの役割がつながって見えるようになりました。


まとめ

今回は、自宅のUbuntu Serverで正常状態の日次点検を行いました。

確認したのは、

操作対象
↓
稼働時間・負荷
↓
CPU・プロセス
↓
メモリ
↓
ディスク
↓
サービス
↓
プロセス
↓
ポート
↓
HTTP応答
↓
ログ
↓
ネットワーク
↓
疎通

です。

今回の目的は、

「この数値なら絶対に正常」

という基準を作ることではありません。

まず正常な状態で実際のコマンド結果を確認し、今後障害を再現したときに、

「正常時と何が変わったのか」

を比較できる状態にすることです。

次は、この正常状態をあえて崩し、

症状を確認
↓
コマンドで切り分け
↓
原因を調査
↓
修正
↓
正常状態へ復旧

という流れを実機で試していきます。


この検証の続きを読みたい方へ

この記事では、Linuxサーバの日次点検で使用したコマンドと、実際にどの順番で確認したかに絞ってまとめました。

今回の検証は、

「LinuCレベル1で勉強したLinuxの知識を、実際のLinuxサーバで使ってみる」

という実機検証シリーズの一部です。

実機検証の流れを最初から読みたい

noteでは、なぜこの検証を始めたのかというところから、実際のコマンド結果や、確認しながら気づいたことまで含めて記録しています。

今後は正常状態の確認だけでなく、実際に障害を再現し、

障害発生
↓
症状確認
↓
切り分け
↓
原因調査
↓
修正
↓
復旧確認

まで試していく予定です。

note

今後の検証を追いたい

Xでは、Linux・Ansible・Python・Excelなどの実機検証について、記事になる前の途中経過や、実際に試して気づいたことも投稿しています。

「次はどんな障害を起こして、どう切り分けるのか」

など、今後の検証も追ってみたい方はこちらからどうぞ。

X

1
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?