2019年03月09日(土) - 12:27 | カテゴリ:
Linux
書いておかないと忘れそうなのでメモ
唐突に自宅メール鯖にアクセスが出来なくなりサーバ全体の障害を疑ったのだが、
INBOX(第1層)はアクセス不能で他の階層(第2階層以下)はアクセスが出来る謎現象が発生した。
ログを見ると下記の様にトランザクションログの破損が表示されている状況。
Error: Corrupted transaction log file /mail/spool/***/dovecot.index.log seq 14: record size too small
(type=0x40004, offset=12784, size=0) (sync_offset=13036)
Error: Index /mail/spool/***/dovecot.index: Lost log for seq=14 offset=13036: Failed to map file
seq=14 offset=13036..XXXXX (ret=0): corrupted, indexid=0 (initial_mapped=1, reason=Index mapped)
Warning: fscking index file /mail/spool/***/dovecot.index |
恐らく、DovecotのINDEXファイルが破損してトランザクションも不整合状態になったのだと思い、
エラーが出たディレクトリにある次のファイルを待避(削除)した後、Dovecotを再起動させたら復旧した。
- dovecot.index
- dovecot.index.cache
- dovecot.index.log
- dovecot.list.index
- dovecot.list.index.log
- dovecot.mailbox.log
自前のメール鯖は、Webメールクライアント・IMAPクライアントなど、
複数の環境から接続出来る構成を取っている為、同時に接続して処理が衝突してしまったのかもしれない。
複数環境から接続出来ないと不都合が大きくなるので、今の所は構成変更はせずに様子見中。
ただ、この状態になったのは初めての事なので発生確率はそれなりに低いと思われ、
「自宅サーバ用途ならまぁ良いか~」とも考えている。
2019年03月02日(土) - 22:45 | カテゴリ:
Linux
自鯖のメール用サブドメインにgdnsdを使ってGSLB動作をさせているのだが、
gdnsdではDNSクエリを取れない為、
ロギング用として前段にnginxのUDPリバースプロキシを噛ます構成を取っている。
ちょっと前に「dnsdistならUDPリバプロ動作をさせつつDNSクエリを取れる」と聞いた為、
休みを使って少しだけテストしてみた。
………
まだ、機能評価レベルの事しか出来ていないのだが、
バックエンドに権威DNSを置いた状態で前段にdnsdistを噛ましてみた所、
dnsdist単体でDNSクエリログを取得ができた。
ただし、取得出来たのは問い合わせしたFQDNとレコードタイプのみだった。
Aレコードなどは取得出来ない為、使える所は限られるのだが、
管理外のDNSを聞きに来ているDNSクライアントの監査などには使う事が出来ると思う。
ちなみに、dnsdist単体でのログ取得は下記の様な設定で取得出来た。
newServer({address=”127.0.0.1:53″, pool=”local”)
local = newNMG()
local:addMask(“127.0.0.1/32”)
addACL(“0.0.0.0/0”)
addLocal(“127.0.0.1:10053”)
addAction(AllRule(), LogAction(“/var/log/dnsdist/query.log”, false, true, false))
addAction(NetmaskGroupRule(local), PoolAction(“local”))
addAction(AllRule(), RCodeAction(dnsdist.REFUSED))
|
※ うろ覚えなのと、セキュリティ度外視なのであしからず
この場合、次の様な簡単なログ取得となる。
このレベルのロギングで要件を満たせるなら、dnsdist単体でログ取得まで行うと構成がシンプルになる。
Packet from 127.0.0.1:53922 for www.ns-lab.org. A with id 26116 |
未検証の機能としては、dnstapによるログ出力にも対応しているので、
fstrmを使ってより詳細なログを取得出来る筈だが、まだ未検証なのでそのうちテストしたい所。
あと、dnsdist本来の使い方となるロードバランシングも細かい挙動を把握出来ていない (´・ω・`)
まだまだUDPリバプロには頑張って貰う必要があるが、今年中にはdnsdistへの入れ替えしたいと思う。