Out of memory : time hh:mm

メモリの無駄遣い

20:30頃 ~ 301:08頃 / minecraftフェリーラ鯖2021計画(おおよそ構築完了)

フェリーラ鯖2021おぼえがき

 

 


 

全般

  • CentOSが不穏なのでrhel devを使っていきたい。いけんのかな。
    ⇒とりあえずいけてる。
  • 監視体制の構築が今回のサブ目標。前回はBK失敗で死んでるから、導入した機能をまとめておいて、それぞれを監視できるようにしたい。
  • 例によってそこまでセキュリティには拘らない方針。
  • rootによる直接sshは不要。設定めんどくさいから一般ユーザ(hiruuki)経由で。
  • 物理メモリ32GBあった。有能。
  • コアはi7-4770Sです。

 

共通設定

  • 下記リンクを参考にscriptをONにする。/var/log配下に/homeへのシンボリックリンク作って保持。 ※/var/logは/配下なので放置すると容量が怖い。

    qiita.com

  • ファイル転送用にNAS見せる。
    NAS見せるためにrpcbindとnfs-utilsが必要。
    見せられるようにしたら mount -t nfs <ip> <nasのボリューム> /mnt/nas

    qiita.com
     ※nasは常時マウントはしない。使うときに都度マウントする方針。

  • setroubleshoot入れる
  • zabbix agent2入れる
     ⇒ポート10050開けとく必要あり
  • selinuxはこれ読んでなんとかする

    www.tohoho-web.com

 

 


 

アプリケーション(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
     ⇒マイクラのバックグラウンド実行に必要。
  • RHELcentosと違ってepel入ってないから入れるのを忘れないこと。
     ⇒centosはextraに入ってる。
     ⇒参考:

    qiita.com

  • NFSサーバ
     ⇒Overviewerとの連携考えると結局必要。RAMDISKの領域をweb鯖に見せられるようにしておく。

 

バックアップ

停止しないバックアップ(1回/日)と停止バックアップ(1回/週)くらいでいいかなあ……

RAMDISKからバックアップするのか、RAMDISKから退避してるエリアからバックアップするのかが要検討。

 ⇒結局取り敢えず毎回RAMDISKと退避ディレクトリ同期取って退避ディレクトリからバックアップ取る。安定型。

 

RAMDISKの退避は下記記事のinit使わせてもらう。

jyn.jp 

イクラのバックアップはまあこれ改造で。

minecraft.server-memo.net

 

バックアップの世代管理は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さんありがとうございます!

  • MCのハング有無 ※どうやるんだって感じはある……
     ⇒ 結局マイクラの適当なコマンドをtimeout噛ませて実行、タイムアウトしたらsyslogに吐く形で設定。
  • イクラバックアップの成功可否
     ⇒バックアップファイルの有無とサイズを見れるようにして判断?
      ⇒zabbixのvfs.file.sizeで設定。
  • 各ホストのサービス起動状況
     ⇒構築時点のサービス起動状況をベースに設定か。
      ⇒めんどうくさくなった。マイクラとバックアップ生きてりゃいいやろ。
  • 通知先をdiscordに設定した

    www.kdkwakaba.com

  くじらじに謎の死亡ログが流れるように。

  • イクラの死亡ログを監視するようにしてdiscordに吐くようにした
    ⇒lastlogをsyslog監視+死亡ログ正規表現で監視する。
    ⇒デフォ設定でsyslog監視をただdiscordに投げるだけだと、ポーリング間隔内でlastlogに記録されたログの中で最後のログを出力しやがるためちゃんと死亡ログが表示されない。
     メディアタイプの「event_opdata」パラを「ITEM.VALUE」にしてやる必要あり。※スクリプトを読んでやるとわかる。
     

    f:id:hiruuki:20210625035250p:plain

    赤いところ

    教えてくださった@atanaka7さん本当にありがとうございました!

 

 


踏み台コンソール

 

仮想マシンスペック

CPU:1

メモリ:4GB

HDD:100GB

 

OS

CentOS 8

 ⇒デスクトップと日本語ロケールだけあればいいかなって……

 

必要機能

  • デスクトップ
     ⇒他の鯖への踏み台として置いておく。
  • コンソール接続 ⇒ ssh
  • メインPCからのファイル転送
     ⇒NASで解決する方針。

 

 

 


 

構築中。随時更新。

おおよそ構築終了。

イクラ稼働まで2日ほど、ここまでの設定完了してこの記事を書き終わるまで12.3日ほど。殆どzabbix設定だった気がする。

監視のポリシーとか勉強したわけじゃないから専門家が見たら卒倒しそうな設計になってそうだけどまあ動いてるからヨシ!

ログインしたい方は言ってくれれば教えますがまあおらんやろ……