Rocky Linux8.6 : Logwatch , DiCE ,ディスク使用量チェックスクリプト 導入

1. Logwatch導入

①インストール

# dnf install logwatch
②設定ファイルの編集
# cat /usr/share/logwatch/default.conf/logwatch.conf >> /etc/logwatch/conf/logwatch.conf
# vi /etc/logwatch/conf/logwatch.conf
●45 行目あたり
「MailTo = root」の行頭に「#」を挿入し、その下行に通知を受け取りたいメールアドレスを設定
#MailTo = root
MailTo = [メールアドレス] ●79行目あたりログ通知の詳細度を設定
#Detail = Low
Detail = High

③Logwatch のレポートを出力

# logwatch --output stdout
下記のようなメッセージが出ます

################### Logwatch 7.6 (01/22/22) ####################
Processing Initiated: Fri May 13 09:41:46 2022
Date Range Processed: yesterday
( 2022-May-12 )
Period is day.
Detail Level of Output: 10
Type of Output/Format: stdout / text
Logfiles for Host: fedora
###########################################################

--------------------- Amavisd-new Begin ------------------------

<中略>

-------------------- Disk Space Begin ------------------------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/fedora_fedora-root 15G 4.4G 11G 30% /
/dev/nvme0n1p1 1014M 245M 770M 25% /boot
---------------------- Disk Space End -------------------------

###################### Logwatch End #########################

④設定したアドレスにレポートが届くかテストを行います。上記の様なログレポートメールが届いているか確認
# /etc/cron.daily/0logwatch

2. DiCEのインストール

ネットが切断されたり、ルーターが切断再起動したときにおこるグローバルIPの変更の度に、ダイナミックDNSにアクセスしグローバルIPが変更されたことを知らせなくてはいけません。その作業を自動的にやってくれるのがDiCEです

①Diceのダウンロード、インストール

# cd /usr/local/bin
# wget https://centos.rcg.jp/download/DiCE.tar.gz --no-check-certificate
# tar -xzvf DiCE.tar.gz
# cd ./DiCE
②DiCEの設定
DiCEの出力文字はEUCのため、文字化けしてしまう。UTF-8に変換するために、nkfをインストールしておく
# dnf install nkf
64bitOSで32bitソフトのDiceを動かすため下記をインストール
# dnf install glibc.i686
③DiCEを起動する
# cd /usr/local/bin/DiCE
# ./diced | nkf -uw
④イベントの追加
DNSサービスはVALUEDOMAINとした場合
# ./diced | nkf -uw
: add
DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>VALUEDOMAIN
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
><ドメイン名>
ホスト名を入力してください
(P)戻る
><ホスト名>
ログインユーザ名を入力してください
(P)戻る
><ユーザー名>  ←VALUEDOMAINに登録したユーザー名
ログインパスワードを入力してください
(P)戻る
><passwd>  ←VALUEDOMAINにログインするパスワード
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>空白
このイベントに題名を付けてください
(P)戻る
>xxxxxxxxx(適当に付ける)
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5 (任意に決める)
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(P)戻る
>0(任意に決める)
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y
イベントを保存しますか? (Y/N)
>y
イベントの確認
list
(No.)   (イベント名)     (スケジュール)         (次回予定)
0 *     xxxxxxxxx   IPアドレス変化時 (7日毎)     01/27 06:27ー
手動実行
:ex 0
+ 1/20 6:33 にddns_valuedomainが実行されました
IPアドレスを更新しました
:exit
⑤Diceの自動実行
DiCEデーモンを起動する

# /usr/local/bin/DiCE/diced -d -l

-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad

DiCE Daemon Started !!

起動しているか確認

# ps aux | grep diced
root 11121 1.3 0.0 3960 132 ? Ss 10:47 0:00 /usr/local/bin/DiCE/diced -d -l
root 11124 0.0 0.0 4584 2200 pts/0 S+ 10:48 0:00 grep --color=auto diced
自動で起動するよう設定
# vi /etc/rc.local
/usr/local/bin/DiCE/diced -d -l   (追記)

3.ディスク使用率チェックスクリプト導入

3.1 スクリプト作成

# cd /var/www/system
# vi disk_capacity_check.sh
disk_capacity_check.shの内容

#!/bin/bash

#通知先メールアドレス指定
MAIL="<your mailaddress> "

DVAL=`/bin/df / | /usr/bin/tail -1 | /bin/sed 's/^.* \([0-9]*\)%.*$/\1/'`

if [ $DVAL -gt 80 ]; then
echo "Disk usage alert: $DVAL %" | mail -s "Disk Space Alert in `hostname`" $MAIL
fi

# chmod 700 disk_capacity_check.sh

3.2 実行確認

①現在の使用率を確認

# df -h

次のように表示される

ファイルシス                         サイズ       使用       残り     使用%         マウント位置
devtmpfs                              873M          0       873M       0%                     /dev
tmpfs                                   893M          0        893M      0%              /dev/shm
tmpfs                                   893M     8.8M        884M      1%                      /run
tmpfs                                   893M          0         893M      0%      /sys/fs/cgroup
/dev/mapper/rl_rocky-root       17G     6.2G           11G    38%                         /
/dev/nvme0n1p2                 1014M    208M         807M    21%                   /boot
/dev/nvme0n1p1                   599M     5.8M         594M     1%               /boot/efi
tmpfs                                    179M         0          179M     0%     /run/user/1000

②使用率80%以上になるようダミーファイルを作成(例ではdummyfile という名前で9G程度)

# dd if=/dev/zero of=dummyfile bs=1M count=9000

③再度確認

# df -h

を実行して80%以上になっていることを確認

④ディスク容量チェックスクリプトを実行

# /var/www/system/disk_capacity_check.sh

設定したメールアドレスに本文の内容として「Disk usage alert : 92%」のように記載のメールが届きます

⑤作成した「dummyfile」を削除

# rm dummyfile

⑥定期実行設定

# crontab -e
30 2 * * * /var/www/system/disk_capacity_check.sh
タイトルとURLをコピーしました