Kotlinによるシステム監視スクリプト入門!CLIツールでCPUメモリディスク情報を取得してログ保存する方法
生徒
「サーバーやパソコンの状態を自動でチェックするプログラムって作れるんですか?」
先生
「もちろん作れます。Kotlinを使えば、CPU使用率やメモリ使用量、ディスク容量などのリソース情報を取得するシステム監視スクリプトを作れます。」
生徒
「システム監視って難しそうですが、初心者でも理解できますか?」
先生
「基本から順番に理解すれば大丈夫です。Kotlinはシンプルなプログラミング言語なので、CLIツールや自動化スクリプトを書くのにも向いています。」
生徒
「ログ保存もできますか?」
先生
「できます。取得したシステム情報をログファイルに保存すれば、あとからトラブルの原因を調べることもできます。それではKotlinによるシステム監視スクリプトを学んでいきましょう。」
1. Kotlinでシステム監視スクリプトを作るとは
KotlinはJavaと同じJVMという仕組みの上で動くプログラミング言語で、サーバー開発、Androidアプリ、CLIツール開発など幅広く使われています。特にCLIツールとは、コマンドラインで動作するプログラムのことです。黒い画面でコマンドを入力して実行するタイプのツールを指します。
システム監視スクリプトとは、パソコンやサーバーの状態を定期的に確認するプログラムのことです。例えば次のような情報を取得します。
- CPU使用率
- メモリ使用量
- ディスク容量
- システムの稼働時間
これらの情報を定期的に記録することで、サーバートラブルの原因を調査したり、システムのパフォーマンスを分析することができます。Kotlinを使えば、シンプルなコードでこのような監視ツールを作ることができます。
2. Kotlinでシステム情報を取得する基本
まずはKotlinでパソコンの基本情報を取得してみましょう。Javaと同じ仕組みを利用するため、Systemクラスを使うことで環境情報を取得できます。
クラスとは、プログラムの機能をまとめた設計図のようなものです。例えば車の設計図のように、機能がまとめられているイメージです。
次のプログラムは、OS情報やユーザー名などの基本情報を表示するシンプルなKotlin CLIツールです。
fun main() {
val osName = System.getProperty("os.name")
val osVersion = System.getProperty("os.version")
val user = System.getProperty("user.name")
println("OS: $osName")
println("OS Version: $osVersion")
println("User: $user")
}
このプログラムを実行すると、現在使っているOSの種類やユーザー情報が表示されます。サーバー監視ツールでは、このような基本情報もログに残すことがあります。
OS: Windows 11
OS Version: 10.0
User: admin
3. CPUコア数を取得するKotlinプログラム
CPUはパソコンの頭脳のような部品です。プログラムを実行したり計算を行う役割を持っています。CPUの中にはコアと呼ばれる処理ユニットがあり、コア数が多いほど同時に処理できる作業が増えます。
Kotlinでは、CPUのコア数を簡単に取得することができます。これはシステム監視やパフォーマンス分析でよく使われる情報です。
fun main() {
val cpuCores = Runtime.getRuntime().availableProcessors()
println("CPUコア数: $cpuCores")
}
このコードではRuntimeというクラスを使っています。Runtimeとは、プログラムが実行されている環境の情報を取得するための機能です。
CPUコア数: 8
サーバー監視では、このようなハードウェア情報をログに保存しておくと、システム構成の確認にも役立ちます。
4. メモリ使用量を取得する方法
メモリとは、プログラムを実行するときに一時的にデータを保存する場所です。作業机の広さのようなもので、メモリが不足するとプログラムの動作が遅くなったりエラーが発生することがあります。
Kotlinでは、現在のメモリ使用量や最大メモリ容量を取得することも可能です。これもサーバー監視では非常に重要な情報です。
fun main() {
val runtime = Runtime.getRuntime()
val totalMemory = runtime.totalMemory()
val freeMemory = runtime.freeMemory()
println("使用可能メモリ: $totalMemory")
println("空きメモリ: $freeMemory")
}
このプログラムでは、現在使用できるメモリと空きメモリを取得しています。メモリ監視はシステムトラブルの原因調査でよく使われます。
5. ディスク容量を取得するKotlinプログラム
ディスクとは、データを保存する場所です。パソコンではSSDやHDDなどがディスクにあたります。ディスク容量がいっぱいになると、ログが保存できなくなったり、システムが停止することがあります。
そのため、ディスク容量を監視するスクリプトはシステム運用ではとても重要です。
import java.io.File
fun main() {
val root = File("/")
val total = root.totalSpace
val free = root.freeSpace
println("ディスク総容量: $total")
println("ディスク空き容量: $free")
}
このプログラムではFileクラスを使ってディスク容量を取得しています。Fileクラスとは、ファイルやディレクトリの情報を扱うための機能です。
6. システム監視ログをファイルに保存する
システム監視ツールでは、取得した情報をログファイルに保存することが重要です。ログとは、システムの動作履歴を記録したデータのことです。
ログを保存しておくことで、サーバーが遅くなった原因や、トラブルが発生した時間を調べることができます。
import java.io.File
import java.time.LocalDateTime
fun main() {
val logFile = File("system_log.txt")
val now = LocalDateTime.now()
val cpu = Runtime.getRuntime().availableProcessors()
val log = "time=$now cpu=$cpu"
logFile.appendText(log + "\n")
println("ログ保存完了")
}
ログ保存完了
このコードではappendTextという機能を使ってログファイルにデータを書き込んでいます。appendとは追加するという意味で、既存のファイルの末尾にデータを書き足します。
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
まとめ
Kotlinで作るシステム監視スクリプトの重要ポイント
ここまでKotlinを使ったシステム監視スクリプトの基本について学びました。Kotlinはシンプルで読みやすい文法を持つプログラミング言語でありながら、JVM上で動作するためJavaの豊富な機能をそのまま利用できます。そのためCLIツール開発やサーバー運用を支える自動化スクリプトにも非常に適しています。
システム監視とは、サーバーやパソコンの状態を定期的にチェックして、CPU使用状況、メモリ使用量、ディスク容量、稼働環境などの情報を取得し、ログとして記録する仕組みです。これらの情報を継続的に保存しておくことで、システムのパフォーマンス分析、サーバートラブルの原因調査、運用監視などに役立ちます。
KotlinでCLIツールとしてシステム監視プログラムを作成すると、サーバー運用の自動化や管理作業の効率化を実現できます。例えば次のような場面で活用されます。
- サーバーリソース監視
- システムパフォーマンス分析
- ログベースの障害調査
- 運用監視ツールの自作
- 定期的なシステム状態チェック
KotlinはJavaのクラスライブラリをそのまま使えるため、RuntimeクラスやFileクラスなどを利用して簡単にシステム情報を取得することができます。今回の記事では、OS情報、CPUコア数、メモリ使用量、ディスク容量といった基本的な監視項目を取得する方法を紹介しました。
システム監視ツールで取得する代表的な情報
実際のシステム運用では、次のような情報をログとして記録しておくと、あとから問題を分析する際に役立ちます。
- OS情報
- ユーザー環境
- CPUコア数
- メモリ使用状況
- ディスク容量
- ログ記録時刻
これらの情報を組み合わせてログとして保存しておくことで、サーバーの状態を長期間にわたって追跡することができます。例えばディスク容量が徐々に減っている場合はログファイルが増えている可能性がありますし、メモリ不足が発生している場合はアプリケーションの設定を見直す必要があります。
システム監視ログをまとめて保存するKotlinプログラム
ここでは今回学んだ内容をまとめて、CPU情報、メモリ情報、ディスク情報をまとめてログ保存するシンプルなKotlin監視スクリプトを紹介します。CLIツールとして実行すると、現在のシステム状態をログファイルに記録します。
import java.io.File import java.time.LocalDateTime fun main() { val runtime = Runtime.getRuntime() val cpu = runtime.availableProcessors() val totalMemory = runtime.totalMemory() val freeMemory = runtime.freeMemory() val root = File("/") val diskTotal = root.totalSpace val diskFree = root.freeSpace val time = LocalDateTime.now() val logText = """ time=$time cpu=$cpu memory_total=$totalMemory memory_free=$freeMemory disk_total=$diskTotal disk_free=$diskFree """.trimIndent() val logFile = File("system_monitor_log.txt") logFile.appendText(logText + "\n") println("システム監視ログを保存しました") } システム監視ログを保存しました このようにKotlinのCLIツールを利用すれば、システム監視ツールの基本機能を比較的短いコードで実装することができます。さらに発展させると、定期実行スクリプトとして運用したり、監視結果をグラフ化したり、通知機能を追加することも可能です。
Kotlinによる自動化スクリプトの将来性
近年のサーバー運用では、監視ツールや自動化スクリプトの重要性がますます高まっています。クラウド環境やコンテナ環境では、システム状態を自動で記録し、異常を検知する仕組みが必要になるためです。
Kotlinは読みやすく安全性の高いプログラミング言語として注目されており、Android開発だけでなく、サーバーサイド開発やCLIツール開発でも利用が広がっています。Kotlinによるシステム監視スクリプトを理解しておくことで、サーバー管理やシステム運用のスキルを大きく高めることができます。
今回紹介した基本的なKotlinシステム監視スクリプトを出発点として、ログ解析ツールや自動監視ツールなど、より高度なCLIツール開発に挑戦してみるとよいでしょう。Kotlinを使った自動化プログラミングは、開発者だけでなくインフラエンジニアにとっても強力な武器になります。
生徒
「Kotlinでもシステム監視ツールが作れるとは思いませんでした。サーバーのCPUやメモリ、ディスク容量まで取得できるんですね。」
先生
「その通りです。KotlinはJVM上で動くのでJavaの機能を利用できるのが大きな強みです。RuntimeクラスやFileクラスを使えば、システムのリソース情報を簡単に取得できます。」
生徒
「ログファイルに保存しておけば、あとからサーバーの状態を分析できるんですね。」
先生
「そうです。システム監視ではログが非常に重要です。CPU使用状況やメモリ使用量、ディスク容量などを記録しておくことで、トラブルが起きた時の原因分析に役立ちます。」
生徒
「KotlinのCLIツールは、サーバー管理や自動化スクリプトにも使えるんですね。」
先生
「その通りです。KotlinはAndroid開発だけでなく、CLIツール開発、サーバー監視スクリプト、自動化ツール、ログ収集ツールなどにも活用できます。今回学んだ内容を応用すれば、より本格的なシステム監視ツールも作れるようになります。」
生徒
「まずはこのシステム監視プログラムを自分でも作ってみます。ログを保存する仕組みも理解できました。」
先生
「とても良いですね。実際にコードを書いて動かすことが理解を深める一番の近道です。KotlinによるCLIツール開発とシステム監視スクリプトをぜひ実践してみてください。」
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験