2023年08月

2023年08月29日
新しいQNAPを購入し、一緒にディスク(SSD)も新しいものを購入しました。
セットアップするために組み込んで、初期設定を行おうとしました。
まだRAIDも組んでない状態です。

そのとき、I/Oエラーというログがでてしまい、赤いLEDが点灯してしまいました。

それをGUIから消す方法は無いように思えました。
結局以下のサイトを参考にしました。
Clearing "Disk Access History I/O" error ??

よくわかりませんが、コマンドを実行したのち、続けて不良ブロックのスキャンを行いました。
スキャンが終わった頃にはLEDも消灯していました。よかった。



stock_value at 13:05|この記事のURLComments(0)技術 
2023年08月14日
milter-manager がとても便利だと知りました。
そのためインストールしていくつかの苦労もしつつ設定を行いました。
※環境は Ubuntu 22.04

動作確認のコマンドを実行すると、インストール直後は accept となりました。
sudo -u postfix milter-test-server -s unix:/var/spool/postfix/milter-manager/milter-manager.sock


しかし時間が経過すると何も設定を変更していないのに temporary-failure となってしまうのです。
何もしていないのにできなくなった! という状態でした。

最初は milter-manager が悪いのか、それ以外が悪いのか全くわかりませんでした。
結果的には clamav だとわかったのですが、切り分け方からメモしておきます。


結果が temporary-failure となったことがわかった状態で、以下の通りモジュールをすべて無効化しました。
#vi /etc/milter-manager/milter-manager.local.conf
define_milter("clamav-milter") do |milter|
milter.enabled = false
end
define_milter("opendkim") do |milter|
milter.enabled = false
end
define_milter("spamass-milter") do |milter|
milter.enabled = false
end

この状態で milter-manager を再起動
動作確認をすると、 accept となりました。

一つずつモジュールを有効化していくと、clamav を有効にすると failure となりました。
これによって clamav に原因があることがわかりました。

※本当は他にも紆余曲折ありましたが、以下のコマンドで oom-killer が発動していることがわかりました。

# systemctl status clamav-daemon.service
× clamav-daemon.service - Clam AntiVirus userspace daemon
Loaded: loaded (/lib/systemd/system/clamav-daemon.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/clamav-daemon.service.d
└─extend.conf
Active: failed (Result: oom-kill) since Sat 2023-08-XX XX:14:07 JST; 1h 9min ago

サーバーのログも以下の通り
# less /var/log/syslog
<抜粋>
Aug XX XX:14:07 sv01 kernel: [255699.328652] Out of memory: Killed process 13616 (clamd) total-vm:2659144kB, anon-rss:771660kB, file-rss:3180kB, shmem-rss:0kB, UID:118 pgtables:4808kB oom_score_adj:0
Aug XX XX:14:07 sv01 systemd[1]: clamav-daemon.service: A process of this unit has been killed by the OOM killer.
Aug XX XX:14:07 sv01 systemd[1]: clamav-daemon.service: Main process exited, code=killed, status=9/KILL
Aug XX XX:14:07 sv01 systemd[1]: clamav-daemon.service: Failed with result 'oom-kill'.
Aug XX XX7:14:07 sv01 systemd[1]: clamav-daemon.service: Consumed 37.455s CPU time.

利用可能なメモリは、VPSということもあり、非常に小さい環境です。1Gぐらいしかありません。
※以下の結果は clamav が稼働している状態です。
# free -h
total used free shared buff/cache available
Mem: 957Mi 625Mi 69Mi 21Mi 262Mi 168Mi
Swap: 1.9Gi 1.2Gi 723Mi

ClamAVがメモリを利用しすぎて oom-killer になったことはわかりました。
しかしなぜ??
調べてみると、 clamav の ウイルス定義ファイルの再読込を行うとき、既存の読み込み+新しい読み込みとなり、DBが一時的に2倍消費されるようなのです。
スキャンをしているときに、シームレスに新しいエンジンに移行させることができるようです。
私の環境ではそこまでシビアではいこと、そもそもメモリが少ないので、この機能がONになっていると上記の通り強制終了してしまうため、OFFにしました。

#vi /etc/clamav/clamd.conf
# 追記
ConcurrentDatabaseReload no

今までは24時間以内に必ず oom-killer になってしまいました。
これによって、少なくとも数日間は問題無く動作しています。

stock_value at 11:32|この記事のURLComments(0)技術 
2023年08月13日
お客さんから問合せがあって、WIFIがつながらなくなったと。そしてSSIDを選択しようにも、選択肢が出てこないということでした。

最初に想像したのは、機内モードがONになっていたり、キーボードの組み合わせでWIFIが無効になっていたりということです。
実機を見て調べたのですが、そういうことではありませんでした。
調べた感じでは、最初からWIFIモジュールが存在していないような、そういう状態でした。
デバイスマネージャーにも、跡形もありません。

結局BIOSからWIFI機能を無効にして再起動。
続けてシャットダウンし、再度有効化。

これで無事に解決しました。

今回の LAVIE では、F2 連打でBIOS画面に入ることができました。

stock_value at 17:07|この記事のURLComments(0)技術 
2023年08月12日
WADAX共用サーバーというサービスを利用していました。
もう何年も利用しているため、システムはかなり古い状態です。

そんな中、WADAXからWADAX内の新サーバーに移行するようにと案内が来ていました。

放っておくと勝手に移行されるようなのですが、CGIなどが旧システムでは shift-jis だったりして、今ではもう動きません。
それらを1週間ぐらいかけてせっせと修正しました。

最後に DNS の設定を書き換えました。
すると、古いシステムの DNS については、TTL が48時間!! となっていました。
・・・もちろんTTLは変更不可。。。

そういった場合には、旧サーバーで、DNSレコードを修正して旧DNSサーバーに問合せがあった場合でも、新IPを返すような設定にしています。
しかしそれもできない・・。

おとなしく48時間待つことにします。

stock_value at 16:53|この記事のURLComments(0)技術 
2023年08月11日
今まで gpad を利用していました。
過去に記事も書いています。

2019年07月11日:最近の gpad
2013年04月16日:gPad をインストールしました。

2013年ごろの記事なので、10年利用していますね。
本当に便利です。

最近になって1つだけ不満点があって、ネットワーク上にあるファイルを編集している状態で、VPNなどに接続し、ファイルへのアクセスが失われた場合、 gpad が応答無しになってしまいます。
この点だけ不満がありました。


とりあえず最近は更新も無いようなので、他のエディタを見当してみたいと思います。
ということで必要だと思う機能を。

・正規表現での置換
・ダークモードでの表示
・自動保存
このなかで必須だと思うのは、正規表現です。これは絶対です。ただタブと改行が置換できればそれでいいように思います。
複雑な正規表現を書いたりはまずしません。
自動保存も必要です。不意に強制終了になることは以前に比べればずっと減りましたが、それでも万が一の時のために保険が欲しいです。

Meryを少し利用してみたいと思います。

※翌日追記
Meryは大きなサイズのファイルが扱えません。具体的には読み込みにすごく時間がかかります。(若干致命的に感じています)
ダークモードに対応しているのがすごくいいです。見た目などはすぐに気に入りました。
自動保存なども満足です。タブの状態を保存してくれるのは最高です。

stock_value at 16:33|この記事のURLComments(0)技術 
2023年08月10日
だいたい以下の記事に書かれていることと同じです。
milter-managerのバージョンアップに失敗したので対処した

私の場合には、 milter-manager をインストールして設定をしていました。
インストール直後は問題無く動作するのですが、24時間ぐらい経過すると、なぜか
status: accept から status: temporary-failure へとなってしまいました。
原因は不明です。おそらくすでに構築済みのサーバーに追加で導入したので、既存のモジュールとの連携がうまくいかなかったのか、私の設定が間違っていたのか・・。だと思います。

一旦アンインストールして、初期状態に戻してから再度試そうと思いました。
apt remove milter-manager
しかしこのコマンドを実行しても、ちゃんと削除されないのか、再度インストールしたときにモジュールが足りなくなるようです。

そこで以下のコマンドを実行し、milter-manager に関連すると思われるモジュールを確認しました。
# apt list --installed |grep milter
clamav-milter/jammy-updates,jammy-security,now 0.103.8+dfsg-0ubuntu0.22.04.1 amd64 [installed]
libmilter-client2/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
libmilter-core2/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
libmilter-manager2/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
libmilter-server2/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
libmilter1.0.1/jammy,now 8.15.2-22ubuntu3 amd64 [installed,automatic]
milter-greylist/jammy,now 4.6.4-1 amd64 [installed]
milter-manager/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed]
milter-test-server/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed]
ruby-milter-client/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
ruby-milter-core/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
ruby-milter-server/jammy,now 2.2.7-1.ubuntu22.04.1 amd64 [installed,automatic]
spamass-milter/jammy,now 0.4.0-2 amd64 [installed]

上記のように表示されたため、これらのモジュールを削除しました。
# dpkg -r ruby-milter-core ruby-milter-client ruby-milter-server
個別の削除で依存関係が出る場合には、依存の出ているモジュールも組み合わせて削除します。
※最初に挙げた参考サイトでも同様の作業をしていました。
※ spamass-milter milter-greylist clamav-milter については、 apt remove で作業できます。

一通りアンインストールしたところで再度コマンドを叩き、何も出てこないことを確認します。
# apt list --installed |grep milter

これで再度インストールをすることができました。
# apt install milter-manager

stock_value at 11:10|この記事のURLComments(0)技術 
2023年08月07日
Wordpressを利用している会社があります。
サーバーも同一のところをずっと利用しているので、アップデートなどせずとも利用可能でした。

しかし最近になってサーバーが停止になり、新しいプランに乗り換える必要が出てきてしまいました。
旧サーバーではPHPのバージョンなどもかなり古かったので仕方ないですね。


ちゃんとメモしていなかったのですが、以下の通り作業しました。
ちなみにポイントとしていくつかハマった点。

short_open_tag という機能が PHPにはあるようです。要するに省略してPHPプログラムを書くことのできる機能でしょうか。

short_open_tag はデフォルト無効とされている場合があるので、Wordpressのバージョンアップが問題無くても、PHPのバージョンを変更したときにいきなりエラーになってしまう場合がありました。
PHPエラーの場合には error.log などをチェックして、プログラムに問題がある場合には修正します。

MySQLのバージョンについては、特に問題にならなかったように思います。

最近のPHP8では create_function() が無効化されたようです。これを古いプラグインなどが利用しているとエラーになります。
今回私も該当しましたが、plugin を無効化しました。


以下のサイトでPHPとWordpressのバージョンを確認しました。
WordPressとphpのバージョン対応表!PHPバージョンのサポート終了日とMySQLのバージョンも確認できます。


※ログなどを詳細に確認したいため、自身でサーバーを構築してしまいました。そのときに以下の環境にしました。

WordPress 3.1.4
PHP Version 5.4.16
※WordpressのVerは変えずにPHPだけVerUP



WordPress 3.8.41
PHP Version 5.4.16
※PHPのVerは変えずにWordpressだけVerUP


WordPress 4.9.23
PHP Version 5.4.16 → 7.2.34
※PHPとWordpressのVerUP

バージョンアップを細かく刻んでいるのは、エラーを特定しやすくするためでした。
例えば、PHPのバージョンを変えると、比較的よくエラーになっていました。これはプラグインが原因となっているようなことが多くありました。
これを解消するには、WordpressのバージョンをUPし、プラグインの更新。このあとにPHPの更新をするのが一番スムーズでした。

PHPが7.2まであがると、エラーが出てもWebページで事例を調べやすくなるので、かなりトラブル解決が楽になりました。
それまでは本当に大変でした・・。



また自身でサーバーを構築したのには理由があって、
旧サーバーでは、PHPのバージョンは固定でした。そのためアップグレードなどは実質ほぼできないと思われました。
そこで、同じ環境+少しだけ新しい環境を構築し、そこで動作させることを前提としました。

そしてある程度バージョンアップが成功すると、・・・具体的にはPHP7.2・・・で動作させることができるようになったら、
新サーバーでもその環境を利用できるので、新サーバーで動作確認ができるようになりました。
新サーバーでの一番古いPHPは 7.2 でした。

新サーバーで動作確認できるようになったら、いくつかのトラブルはありましたが無事に最新バージョンにすることができました。
wordpress 6.2.2 と PHP8.2 となりました。

stock_value at 17:11|この記事のURLComments(0)技術