ママも安心。軽量手軽な監視ツールMonitorix の続き

素の状態でもだいたいのところを監視してくれるMonitorixであるが、それでも設定変更したほうがいいところ、変更するとよいところがある。
変更例を示す。

img

概要

monitorixの設定ファイルは大きく三つに分かれる。
①全体的な設定をする箇所
②個々の監視内容をOn/Offするスイッチ箇所
③個々の監視内容の設定をする箇所
以下、それぞれについて扱うとともに、ログの設定も行う。

①全体の設定

設定ファイルの冒頭部分。
Monitorixの全体的な設定を行う箇所。

# グラフの置かれるページのタイトル(ブラウザのバーに表示されるもの)
title = copper, poudirere server
# グラフの置かれるページで表示されるタイトル
hostname = copper
# テーマカラー。whiteもあるのだが…。記事末尾で触れる。
theme_color = black
# 更新頻度
refresh_rate = 150
# ネットワーク速度の表示をbpsにするか(デフォルトはBps)
# yでいいのでは
netstats_in_bps = y

そしてログファイルの場所を指定するエリアがある。
log_fileの行のみ性質が異なる、と理解している。
この行に関しては「monitorixのログの吐き出し箇所を指定する」という意味。
残りは、「Monitorixが見に行くログの場所」という意味になる。

# Log files pathnames
# monitorixが確認するログファイル
# ----------------------------
log_file        = /var/log/monitorix
secure_log      = /var/log/auth.log
(略)

以上に続いて、Monitorixで監視する項目の設定を行うエリアがある。

②個々の監視内容をOn/Offするスイッチ箇所

Monitorixでは、出来合いの監視項目をON/OFFする、というスタイルを取る。
だからこそ手軽。
ここにない内容を監視したいなら、他の監視ツールに変えたほうがいいでしょう。

# Graphs (de)activation
# 有効にするグラフを指定する。yで有効、nで無効
# グラフの詳細はman monitorix.confで確認のこと。
#
# 対応する③設定は、systemなら"<system>"というエリアに,
# マニュアルは「sysmte.rrd」というエリアにある。
#
# -----------------------------------
<graph_enable>
        system          = y
        kern            = y
        proc            = y
(略)

では、それぞれの監視項目の設定を。

③個々の監視内容の設定をする箇所

以下、監視項目をいくつかピックアップして触れる。

lmsense
Linuxのlmsensorsが入ってないとダメ。
つまりFreeBSDでは無理。

nvidia
Nvidiaグラフィックカードの温度を測定する。
オフィシャルドライバーが入っていれば大丈夫そうな記載だけどもFreeBSDだとどうやら無理。

disk
ディスクの温度などを測定する。
測定にはsmartmontools, hddtempのいずれかが必要。
FreeBSDの場合はsmartmontools。
sysutils/smartmontoolsからインストールできる。

sudo smartctl -scanで表示されるディスクのうち、監視したいディスクを下記の0 =に続けて並べる。
区切りはカンマ

<disk>
        <list>
                0 = /dev/ada0, /dev/ada1
        </list>
(略)

fs
ファイルシステムの使用容量、I/Oなどを調べる。
カンマで並べる。

<fs>
        <list>
                0 = /, swap, /usr/local
        </list>

net
ネットワークインターフェースの入出力を調べる。
listでインタフェースを指定。
デフォルトだとeth0になってるから、FreeBSDでは変更必須。
記載例。

<net>
	list = bge0
	<desc>
		bge0 = GbE LAN, 0, 100000000
	</desc>
	gateway = bge0
</net>

descには、listで指定した各インタフェースの詳細を記載する。
ここにはグラフの最大値も指定する必要がある。
この時に注意点がひとつ。
単位はbpsではなく、Bpsである、ということ。
ざっくり、100MbpsのNICであれば10000000を。
GbEのNICであれば、100000000を指定する。

どういうことかと言えば、つまり下記の通り。
100Mbps = 最大でも10MBpsは超えない = 10,000,000 と指定。
1000Mbps = 最大でも100MBpsは超えない = 100,000,000と指定。

port
portの監視。
FreeBSDの場合、ipfwを動かしておく必要がある。
Linuxではiptabelsで。
listに監視したいポートを並べる。
descでポートの詳細を指定。
記載例。

<port>
	max = 9
	rule = 24000
	list = 21, 80, 22, 110, 139
	<desc>
		21	= FTP,     tcp, in, 0, 1000
		80	= HTTP,    tcp, in, 0, 1000
		22	= SSH,     tcp, in, 0, 1000
		110	= POP3,    tcp, in, 0, 1000
		139	= NETBIOS, tcp, in, 0, 1000
	</desc>
(略)

descの22ではtcp, inと指定している。
これは「ポート22にtcp接続してくる/ポート22からtcpで出て行く通信を監視する」という意味。
outだと「ポート22へtcp接続し、ポート22からやってくるtcp接続を監視する」という意味。

ruleはipfwを使う時だけ有効。
ipfwのルール2400番を使うよ、と指定している。

ipfwのルールを見てみると(ポート22のところだけ抜粋)。

24000 count tcp from me 22 to any
24000 count tcp from any to me dst-port 22

ログのローテート設定

/var/log/には以下のようにログが吐かれる。
このまま放っておくと、ログは一方的にたまるだけなので、newsyslogに設定しておく。

-rw-r--r--  1 root  wheel  349949  2月 20 17:54 ./monitorix
-rw-r--r--  1 www   www    165818  2月 20 17:17 ./monitorix-httpd

/etc/newsyslog.conf

# for monitorix
/var/log/monitorix                      600  7     100  *     JC
/var/log/monitorix-httpd www:www        600  7     100  *     JC

newsyslogの再起動。

$ sudo service newsyslog restart
Creating and/or trimming log files.

テーマについて

デフォルトのテーマblackは、前世紀のwebみたいで、ちょっといただけない。
かと言って、もう一方の選択肢whiteもあんまりである。
試行錯誤の末、白基調で冒頭の様なテーマにしている。

設定ファイルの下の方にある、whiteのところを書き換えた。
全体設定でthemeをwhiteにしておくこと。
参考までに。

<white>
                canvas          = FFFFFF
                back            = 101010
                font            = C0C0C0
                #mgrid          = 80C080
                mgrid           = ecf0f1
                #grid           = 808020
                grid            = 808020
                frame           = ecf0f1
                arrow           = FFFFFF
                shadea          = 404040
                shadeb          = 404040
                axis            = 101010
                main_bg         = FEFEFE
                main_fg         = e67e22
                title_bg        = ecF0f1
                title_fg        = 34495e
                graph_bg        = bdc3c7
                gap             = FFFFFF
        </white>```