フェリーラ鯖2021おぼえがき
全般
- CentOSが不穏なのでrhel devを使っていきたい。いけんのかな。
⇒とりあえずいけてる。 - 監視体制の構築が今回のサブ目標。前回はBK失敗で死んでるから、導入した機能をまとめておいて、それぞれを監視できるようにしたい。
- 例によってそこまでセキュリティには拘らない方針。
- rootによる直接sshは不要。設定めんどくさいから一般ユーザ(hiruuki)経由で。
- 物理メモリ32GBあった。有能。
- コアはi7-4770Sです。
共通設定
- ファイル転送用にNAS見せる。
NAS見せるためにrpcbindとnfs-utilsが必要。
見せられるようにしたら mount -t nfs <ip> <nasのボリューム> /mnt/nas - setroubleshoot入れる
- zabbix agent2入れる
⇒ポート10050開けとく必要あり - selinuxはこれ読んでなんとかする
アプリケーション(minecraft)
仮想マシンスペック
CPU:2
メモリ:8GB ※RAMDISKに2GBくらい回す
HDD:200GB
OS
rhel dev 8.4
⇒基本的には最小構成で入れる。
必要機能
- minecraft 1.17
⇒バニラで入れる予定。追加要素も増えたしMODは無理しなくてもいいかなと。 - コンソール接続 ⇒ ssh
- 他鯖とのファイル共有
⇒NFS 鯖側/倉側は要検討。 ※どこでファイル持った方がいいか
主な共有先はweb鯖、MC Overviewerのやり取りで使う。
監視鯖になんか送る必要があるかも?その辺は仕様次第。 - RAMDISK
⇒起動停止時のデータ移行/退避が必要。 - MCに対するバックアップ
⇒後述。前回コケたところ。 - rsync
⇒バックアップとか退避に必要。 - screen
⇒マイクラのバックグラウンド実行に必要。 - RHELはcentosと違ってepel入ってないから入れるのを忘れないこと。
⇒centosはextraに入ってる。
⇒参考:
- NFSサーバ
⇒Overviewerとの連携考えると結局必要。RAMDISKの領域をweb鯖に見せられるようにしておく。
バックアップ
停止しないバックアップ(1回/日)と停止バックアップ(1回/週)くらいでいいかなあ……
RAMDISKからバックアップするのか、RAMDISKから退避してるエリアからバックアップするのかが要検討。
⇒結局取り敢えず毎回RAMDISKと退避ディレクトリ同期取って退避ディレクトリからバックアップ取る。安定型。
RAMDISKの退避は下記記事のinit使わせてもらう。
マイクラのバックアップはまあこれ改造で。
バックアップの世代管理はlogrotateを使えたら使う感じでいきたい。
⇒いちおう成功。日時のオンラインバックアップと週次のオフラインバックアップでディレクトリ分けてそれぞれのディレクトリでローテーションする。
logrotateのコンフィグでマイクラユーザ指定しておくこと。
マイクラ構築
- MCが1.17以降だと普通にjava入れても動かない。openJDKの16を明示的にぶっ込む必要がある。
- マイクラ関連ファイルをzabbixで見えるようにする場合、マイクラユーザのホームディレクトリを750にしてzabbixユーザをマイクラユーザのグループに所属させること。
パーミッション反映にリブート必要なのがわからなくて数時間泣いてた
web
仮想マシンスペック
CPU:4
メモリ:4GB
HDD:200GB
OS
CentOS 8
⇒あんまよくないんだけど以前のシステム使い回したい。色々とここにはデータもある。
2021末でサポ死ぬしその内移行しないとダメだけど……
必要機能
- webサーバ ⇒ httpd
- コンソール接続 ⇒ ssh
- 他鯖とのファイル共有
⇒NFS 鯖側/倉側は要検討。 ※どこでファイル持った方がいいか
主な共有先はアプリ鯖、MC Overviewerのやり取りで使う。 - メインPCからのファイル転送
⇒samba導入済み。
NASも見えるようにしておいた方がいい気はする。 - Minecraft Overviewer
⇒以前インストールしたやつをdnf upgradeしたらそのまま使えた。
1.17のリソースパックは要る。
⇒設定は公式をgoogle翻訳かけるのが一番わかる。翻訳の精度も良さげ。
⇒1.17のブロックが表示されない……
監視
仮想マシンスペック
CPU:1
メモリ:4GB
HDD:200GB
OS
rhel dev 8.4
⇒基本的には最小構成で入れる。
必要機能
- 他2鯖に対する監視システム
⇒監視要件は後述。zabbix練習したい気がする。 - コンソール接続 ⇒ ssh
- zabbix_getとかいうのが便利そう
⇒epelに入ってるらしい。入れてから試したからわからん。epelの入れ方はマイクラ鯖の方参照。
⇒大体の資料がzabbix-agentdで書いてあるのでzabbix-agent2に読み替えが必要。 - selinuxがpermissiveのままなのは面倒くさくなってしまったからです。
監視要件
- 各ホストのping
- MCのサービス起動状況
⇒何気にゾンビプロセスも見れるから設定した。
仕組みも教えてもらっちゃった。※@qryuuさんありがとうございます!
https://t.co/o4Jk3cmyJ7
— 九龍真乙 (くりゅうまおと) (@qryuu) 2021年6月16日
PSコマンドでも確認できるのでOS自体がzombieProcessを認識してはいます。
Zabbixの場合は psコマンドでは無くて /procから同様の情報を収集します。 - MCのハング有無 ※どうやるんだって感じはある……
⇒ 結局マイクラの適当なコマンドをtimeout噛ませて実行、タイムアウトしたらsyslogに吐く形で設定。 - マイクラバックアップの成功可否
⇒バックアップファイルの有無とサイズを見れるようにして判断?
⇒zabbixのvfs.file.sizeで設定。 - 各ホストのサービス起動状況
⇒構築時点のサービス起動状況をベースに設定か。
⇒めんどうくさくなった。マイクラとバックアップ生きてりゃいいやろ。 - 通知先をdiscordに設定した
くじらじに謎の死亡ログが流れるように。
- マイクラの死亡ログを監視するようにしてdiscordに吐くようにした
⇒lastlogをsyslog監視+死亡ログ正規表現で監視する。
⇒デフォ設定でsyslog監視をただdiscordに投げるだけだと、ポーリング間隔内でlastlogに記録されたログの中で最後のログを出力しやがるためちゃんと死亡ログが表示されない。
メディアタイプの「event_opdata」パラを「ITEM.VALUE」にしてやる必要あり。※スクリプトを読んでやるとわかる。
教えてくださった@atanaka7さん本当にありがとうございました!
トリガーをどのように設定されているのかわかりませんが、マクロの{ITEM.VALUE}を使用してみてください。
— Atsushi Tanaka (@atanaka7) 2021年6月19日
踏み台コンソール
仮想マシンスペック
CPU:1
メモリ:4GB
HDD:100GB
OS
CentOS 8
⇒デスクトップと日本語ロケールだけあればいいかなって……
必要機能
構築中。随時更新。
おおよそ構築終了。
マイクラ稼働まで2日ほど、ここまでの設定完了してこの記事を書き終わるまで12.3日ほど。殆どzabbix設定だった気がする。
監視のポリシーとか勉強したわけじゃないから専門家が見たら卒倒しそうな設計になってそうだけどまあ動いてるからヨシ!
ログインしたい方は言ってくれれば教えますがまあおらんやろ……