Category Archives: CS:Source鯖関連

CSS:メモ代わり

利用率がめっきり減ったCSSですが、いつの間にかアップデート用のクライアントが変更されていました。
CS:GOなどと同じくSteamCMDになってたんですね。
通常の手段だとサブスクリプションを持たないのでアップデート出来ないのですが(鯖用アカウントなので)
以下のフォーラムに書いてある方法で出来ました。
ログインIDにanonymousを指定出来たのね。GOもこれでいけるのかな?
わざわざ鯖用アカウント作ってしまったよ(´・ω・`)

https://forums.alliedmods.net/showthread.php?p=1933965

投入するコマンド例

steamcmd +@ShutdownOnFailedCommand 1 +@NoPromptForPassword 1 +login anonymous +force_install_dir /srcds/ +app_update 232330 +quit

CS:GO:サーバーのコンフィグが変わってた

鯖で遊んでる人から連絡があり、前回のアップデートから施していた設定が効いていないとのこと。
よくよく現象を見てみると、サーバの設定がserver.cfgより後に何かによって上書きされてることが発覚
調べてみたら31日のアップデート分に原因があった

ニュース – Counter-Strike: Global Offensive Update Released http://store.steampowered.com/news/8762/

– Game modes configuration file now specifies cfg files to exec instead of keyvalue pairs of convars to make it easier for server operators to configure their game modes. To tweak game modes it would be sufficient to provide gamemode_competitive_server.cfg and _server.cfg files for other game modes which will exec after stock cfg files.

要するにサーバの設定を起動時一回限りのgamemodes_server.txtから、
MAPチェンジごとに読まれるcfgに変更したらしい
ちょっとそういう大事なことはもっとはっきり言ってくれないと困ります^q^;;;;
おかげでgamemodes_server.txtに書いた内容が後から上書きされてパーになってた。

現時点でのCFG読み込みの順番は以下と思われる

gamemodes_server.txt(起動時のみ) → cfg/server.cfg(マップチェンジごと) → gamemode_competitive.cfg(マップチェンジごと) → cfg/gamemode_competitive_server.cfg

最後のCFGの内容が適用されるので、前二つで指定した項目が無効化されていたらしい・・・
元々gamemodes.txtに長々と書き出してある内容を分離したため、設定のほとんどがこれに入ってまう^q^;;
サーバを再起動しないと適用されないコンフィグが多かったので、これはこれで良いのだが
ある日突然やってしまうのがValveクオリティ
おかげでプラグインやコンフィグ弄ってる人は大混乱になります。

情報を集めてみたところ、cfg/gamemode_competitive_server.cfgというデフォルトで存在しないファイルの内容が最終的に適用されるみたいなので、これに書き換えるcfgを入れていけばいいという事みたい。
今のところまだマップ関連のシステムが分離されていないので、 gamemodes_server.txtは必要なのだけど
これはそのうちマップグループのファイルも分離されるんじゃ無いか・・・?

猫鯖:NyanNyanServerのPluginを大幅に弄ったので忘備録

ManiAdminPluginの代替処置
フォーラムに現在のSRCDSで動くバージョンが公開されていたが、
MAP Managementの競合をSourcemodとしてしまう問題があるので、この際だからと統一した。
いくつか重要では無い機能が失われる
必要がありそうなものについては代わりを探してるが、優先度は低め
Vote関連のメニューについてはかなり機能が弱くなったかもしれない

Module 01: Adverts
Module 02: Stats
Module 03: Victim Stats
Module 07: High Ping Kick
Module 15: Plugin Logging
Module 24: External Logging
Module 28: AFK Manager

導入Pluginの動作パスは2つ
Metamod→SourceMod→SM Plugins
EventScripts→Scripts

plugin_print
Loaded plugins:
---------------------
0:      "Mattie's EventScripts, http://www.eventscripts.com, Version:2.1.1.370"
1:      "Metamod:Source Interface 1.8.7"
---------------------

 

meta list
Listing 4 plugins:
  [01] SourceMod (1.3.8) by AlliedModders LLC
  [02] CS:S Tools (1.3.8) by AlliedModders LLC
  [03] BinTools (1.3.8) by AlliedModders LLC
  [04] SDK Tools (1.3.8) by AlliedModders LLC

 

sm plugins list
[SM] Listing 32 plugins:
  01 "Basic Info Triggers" (1.3.8) by AlliedModders LLC
  02 "Admin File Reader" (1.3.8) by AlliedModders LLC
  03 "Basic Comm Control" (1.3.8) by AlliedModders LLC
  04 "Afk Bomb" (1.3.0) by RedSword / Bob Le Ponge
  05 "Admin Menu" (1.3.8) by AlliedModders LLC
  06 "Anti-TK" (1.1.3) by Rothgar
  07 "Staus" (1.0) by Jaffa
  08 "Admin Help" (1.3.8) by AlliedModders LLC
  09 "Bomb Events" (1.1) by tuty
  10 "Rock The Vote" (1.3.8) by AlliedModders LLC
  11 "Player Commands" (1.3.8) by AlliedModders LLC
  12 "Basic Commands" (1.3.8) by AlliedModders LLC
  13 "Weapon Restrict" (2.3.5) by Dr!fter
  14 "SourceBans" (1.4.8) by SourceBans Development Team
  15 "Auto Swap Team" (2.1.3) by Experto
  16 "Bounty" (1.0.9.0) by Shane A. ^BuGs^ Froebel, FlyingMongoose, and stoic
  17 "Autojoin" (1.1.0.0) by Lindgren
  18 "Reserved Slots" (1.3.8) by AlliedModders LLC
  19 "MapChooser Extended" (1.6.3) by Powerlord, Zuko, and AlliedModders LLC
  20 "Basic Chat" (1.3.8) by AlliedModders LLC
  21 "Suicide Bomb" (1.01) by Natalya
  22 "Damage report" (1.1.13) by [30+]Gemeni
  23 "Basic Votes" (1.3.8) by AlliedModders LLC
  24 "Sound Commands" (1.3.8) by AlliedModders LLC
  25 "Fun Commands" (1.3.8) by AlliedModders LLC
  26 "Anti Nade Spam" (2.2.5) by Twisted|Panda
  27 "Admin Status" (0.4) by EGood
  28 "Slay Losers" (1.3) by DarkEnergy - Ownz and Frezzy
  29 "Fun Votes" (1.3.8) by AlliedModders LLC
  30 "Anticamp CS:S" (2.3) by stachi
  31 "SQL Admin Manager" (1.3.7-dev) by AlliedModders LLC
  32 "Anti-Flood" (1.3.8) by AlliedModders LLC

 

es_load ich_botautoslay
es_load extendedevents
es_load quake_sounds
es_load sounds

調整などにしばらく時間がかかりそうです。大体問題は無いと思うんですが。

鯖用のNIC

鯖には手持ちのBroadcom BCM5721のNICを使ってたのだけど
これがS5からのWOLに対応していないので、計画停電に対する対応に使えないのです(´・ω:;.:…
電源復帰時に自動的に起動するようにしてるものの、スケジュールしたシャットダウン後に
やっぱり停電ありませんでした^q^ってなった時が困るので、非常用に遠隔起動出来るようにしておきたい。
AMTの機能でWebブラウザから電源ON出来るQ67チップのM/Bが発売されるまで待つつもりだったが
DQ45CBのAMTの設定が停電のたびにリセットされるという糞仕様で、今あるM/Bにさっさと乗り換えてしまった( ̄∇ ̄;)

というわけでIntelのEXPI9301CTを買ってまいりました。82574Lのチップを使っています。
Arkで3380円とリーズナブル。S5からWOLが出来ます。

IMG_1318

 

IMG_1319

ドライバはIntelからdownloadした16.1を使用
電源OFFの状態からWOLでwake upが出来ますた。

Asrock H67M-GEのオンボードNICはPCI-e接続の8111Eだけど、負荷をかけるとやっぱ厳しいので
使わない方向で( ̄∇ ̄;)

鯖のマシンを更新

↓これを

HostOS : Windows7 Professional 64bit
VM App:VMware Workstation v6

CPU:Intel Xeon 3350 (2.66GHz QuadCore) *EIST有効
M/B:Intel DQ45CB
Memory:DDR2 PC2-6400 2GByte x4
NIC:Broadcom NetXtreme PCIe Ethernet Adapter

GustOS:Ubuntu Server (CS:S用)
CPUコア割り当て:2
メモリ割り当て:3Gbyte
HDD割り当て:40Gbyte+120Gbyte

Server IP : 116.91.118.247:27015
Source TV : 116.91.118.247:27020

↓これにした

HostOS : Windows Server 2008 R2
VM App:Hyper-V

CPU:Intel Core i5 2400 (3.1GHz QuadCore)
M/B:Asrock H67M-GE
Memory:DDR3 PC3-10600 2GByte x4
NIC:Broadcom NetXtreme PCIe Ethernet Adapter

GustOS:Ubuntu Server (CS:S用)
CPUコア割り当て:2
メモリ割り当て:3Gbyte
HDD割り当て:40Gbyte+120Gbyte

Server IP : 116.91.118.247:27015
Source TV : 116.91.118.247:27020

それと共にすぐに使わないディスクを外して
アイドル90w→44wに
ある程度の負荷がかかってるときで、60wぐらいで動いてる模様
SandyBrigeちゃんは省電力ですなぁ・・・QuadCoreなのに
起動時のMAXが80wぐらいなので、ACアダプター電源いけるかもしれない

↓OSがServerOSなので今回大変お世話になったWiki

Windows Server 2003 / 2008 をデスクトップOSとして使うまとめWiki
http://www24.atwiki.jp/server2003/

知ってる人は知ってるけど、2008R2はほぼWindows7の機能を持ってる
2008専用のドライバを持ってない場合、ほぼWindows7のドライバで事足りる
しかしUSB3.0のドライバだけ入ってくれなかった。Etronのサイトからドライバ落としてきたら解決
http://www.etron.com/LatestNews-Detail.php?ID=271
あとSidebarが無い、もし使うならファイルをどこかから持ってこないといけない。

CSS鯖はHyper-VのUbuntu Serverに移植
といっても大したことを設定してなかったのでほぼ新規に入れ直した。

本来Hyper-Vで対応してるLinuxってSUSEとRedhatの一部しかないんだけど(パッケージに依存してるので)
統合サービスがLinuxのkernel(2.6.32以降)に入ったので
コンフィグ弄ってbuildし直すか、moduleを追加してやると
Ubuntuのようなディストリビューションでもハイパフォーマンスの仮想マシンとして扱えます。

ちなみに仮想マシンの問題の一つとして時刻が狂うというのがありますが
Hyper-Vもあります、時刻同期サービスが提供されないLinuxでは、対策をしないと例外なく時間が狂います
うちのはhwclockがあまりにずれすぎてubuntu側で無視してローカルクロックのみ使うようになったみたいです。
あんまりよろしくない話ですが、とりあえずこれはこれでよしとします。
(完全に同期させるのがちょっと難しいので)

↓ずれすぎw

nekolove@ubuntu:/etc# date & hwclock
[1] 6804
2011年  3月 28日 月曜日 13:27:50 JST
2011年03月26日 20時10分24秒  -1.000594 seconds
[1]+  Done                    date

そうそう、VMwareWorkstationを捨ててHyper-Vに移行した理由に
ホストOSとの電源同期が選べるところがある
シャットダウンと起動したときの電源状態を選べるのです。
これは仮想マシンごとに設定出来るようです。

仮想マシンのことを考えずにシャットダウンや起動するときに便利ー。
というわけで今日の停電に合わせたシャットダウンコマンドをタスクスケジューラに入れて
シャットダウン→復電後自動起動するところまで確認出来た。
もし起動しなかったらWOLで立ち上げる。

地震と津波と輪番停電と

ちょっと手が空いているのでφ(・ω・ )かきかき

大変な地震と津波から早12日が立ちました。
自宅サーバのユーザにはつらい輪番停電もスタートしています。
ネットワーク機器とサーバは1.5kVAのUPSに繋がっていますが、3時間の停電を耐えるだけの容量はありません。
必然的に停電時間に合わせてシャットダウンを余儀なくされています。
FreeBSDの場合はcronにシャットダウンコマンドを記述して、
BIOSなどからPower Restore PolicyをAlways power upにすれば復電後に自動的に起動します。
Windowsのマシンが問題で、VMマシンが動いてると自動でシャットダウンというわけにはいけません。
工数のかからない方法は無いかなーと検討しています。

実はさくらインターネットのVPSを借りたのですが、twitterでつぶやいたとおり問題があるので
すぐにサーバ全体を移行するわけにもいかないのです./(・x・`)\
輪番停電が落ち着いてくれれば今のままでもいいのですがねぇ

当面は手動で起動と停止をやっていきますので、漏れがあったらお知らせください。

猫鯖:ついにねんがんのRTX1500をてにいれたぞ

ではルータをFreeBSDが動くPCにやらせていました。
このPCのメンテを始めると、当然ネットは使えなくなるわけで・・・
他にもルータに起因する問題(多くは仕様の範囲内、つまり相性)がいくつかあって
専用ルータが欲しいなぁと思っていたのです(´ω`)

というわけで買ってみましたYamahaのRTX1500

それなりの規模で使う業務用ということから、定価は恐ろしく高いこの製品
さすがに発売から6年もたつとリプレースで不要になった物が出回ります。
ここ最近、RTX1200とかの発売の影響か、価格がぐっと下がってお求めしやすくなりました。
さすがにスペックは最近のルータと比べると見劣りする部分が多々あるものの
実はルーティング能力がめっさ高いのです。
特にショートパケットの処理能力がこのクラスの中でトップレベル
ファストパスのおかげでCPUの性能と比べるとスループットも十分だし、使える
Bフレッツの100Mbps上下の限界にチャレンジする程度なら悪くないと思われ

そんな風に思っていた時期が俺にもありました

ちなみにRTX1500はほぼシリアルでのセットアップが必須です。
家庭用ルータのように、電源入れたらDHCPが動いてデフォルトのIPにhttpで繋いだら
ブラウザで全部設定出来るような便利な設計にはなっていません(つд`)
初期設定から詳細設定までシリアルでやらないといけません。
まあインターフェイスにIP振ってtelnetかsshをonにすればリモートでもいいのですが。

ところでそれ以前の問題として、PCからシリアルインターフェイスが絶滅してるんですよね。
確かに使い道なんてそんなに無いけどさ、せめて業務に使われることが多いThinkpadぐらいは残しておいて欲しかったなぁ
USB-COM持ってないといきなり詰み確定じゃん
おらはUSB-COMとCiscoのコンソールケーブルとRJ45-9pin変換を何故か持ってたからいいけど

そんなわけでぽちぽちとTeratermからコマンドを入れていきます。
初期化した後だとほんとに何も入ってないという
Yamahaのルータはいくつか使っていたので使い方に慣れてるのと、Yamahaの設定例集から適当に入れてく
めんどくせえなぁと思いつつも、実は設定するところはそんなに無い。
強いて言うならip filterのルールの順番を理解するのに時間がかかったくらいか
デフォルトがブロックなのでブロックすべきポートを明示するのはやめておく
非力なCPUに負荷を与えるルールはあんまりよろしくないと判断。

大体入れ終わったら設置開始、旧ルータをシャットダウンして切り離す。
若干調整しつつ外部に公開・・・つながらね(´Д`)
ip filterとIPマスカレードの間でちょっと設定に齟齬があったので調整
大体出来たので様子を見ていたら・・・RTX1500のCPU使用率が100%になったwwwwww
CSS鯖の27015に届くUDPのNATセッションを保持し続けてたのが原因らしい
NATのセッションが増えるとやっぱCPUが足りなくなるね。3000もセッション張られると厳しい。
20000とか40000も管理してるルータってどうやってんだろ。
BSDでルータやってたときはNATタイマー増やしまくって40000セッションまで張らせたことあるけど
特に何か問題があったわけじゃなかった。まあCPUがE6600でメモリ8Gも積んでたら余裕ですわなw

で、そもそもSRCDSで通信してないNATセッションを保持し続ける理由なんて無い
30秒も無通信でいたら鯖から蹴られるだろう
というわけでタイマーを短くする。IPマスカレードではポートとプロトコルに対してタイマーの時間を設定出来る。

nat descriptor timer 1000 protocol=udp port=27015 60
nat descriptor timer 1000 protocol=udp port=27020 60

27015だけ入れて様子見てたら、SourceTVの27020にも同じようにUDPが降り注いでCPUを喰いまくってたww
無通信時のセッション保持時間が60秒あれば十分だと思うけど、もしゲーム中何か問題があるようだったら教えてくだはい
おらは外から自鯖に繋いでゲームすることが無いのでNATに問題あったら気づけないので(´ω`)
最終的にCPU使用率10%程度で落ち着いた。ほぼアイドルと変わらない。
ttl holdはautoにしてあるけど、問題があるようならallにしないといけない
今のところその必要は無さそうだが、様子を見てみないと何ともいえないな

ところでnat descriptorの設定を変えると今持ってるNATテーブルがリセットされるのはいただけないなぁ
セッションがリセットされるからコネクションが全部落とされるという・・・
気軽に設定変更出来ないやん、UPNPでやろうかしら・・・Windowsなら操作出来るはず
ちなみにpfだと設定読み直しても既存のセッションはリセットされなかった。
さすがにブロックのルールに引っかかると落とされるけど

最後にsyslogをBSD鯖に送るように設定して、syslogdの設定をして完了
facilityをlocal1~7まで設定出来るのね。ログの振り分けに便利だ。

そんなわけでRTX1500の安定運用を開始してみた。
業務用のルータなので堅牢なのは当然だとおもっとります。
あとは稼働時間を稼いだ時にトラブルが無いか、ですかの。
PC鯖のメンテが気軽に出来るようになったのはメリットかなー。

業務連絡:Psychostatsが盛大にエラーを吐いてる件

PHPのうぷぐれしたから?どこが悪いのか原因不明
たぶん復旧には時間がかかります(´・ω・`)ショボーン

業務連絡:Mumbleサーバを1.2系にアップグレード

こっそり動かしているMumbleサーバを1.1から1.2にアップグレード
音質がSkype並かそれ以上に良くなったと好評な模様

1.1と1.2の間に互換性が無いのがネックでアップグレードを渋っていたんだけど
思いの外スムーズに移行したようなのでよかったよかった
テストしてみた感じとくに問題も無さそうですの
クライアント以外は設定が引き継がれてたので(ユーザも含む)
サーバ側のアップグレードそのものは特に何事も無かった

ちなみにCS:Sと同じ仮想サーバにて動いてます

猫鯖:MySQLの罠に今更はまった

phpBBをLaCoocanから猫鯖に移行する際に気づいたことがある。

LaCoocanのMySQLからダンプしたSQLを猫鯖のMySQLに放り込むと確実に文字化けする。
LaCoocanがEUCで、猫鯖はutf8にしてるから・・・と思ったけど
外で文字コード変換してSQL入れても何故か化けてる。どういうことだ。
おかしいな・・・と思ったら文字コードの照合順序がlatin1_swedish_ciだと?
要するに別言語として解釈されてるわけか、そらー・・・化けるわw

どういうことかとぐぐっても経緯がごちゃごちゃしててよくわからんのだが
とりあえずportsのMakefile見るとデフォルトがlatin1_swedish_ciになってるのが直接の原因っぽい
オプションを入れてあげないと駄目だったのか・・・よく読んでなかった
my.cnfも最初は配置されないとか罠過ぎる
そして、それに気がついたのが今更とか┌(_Д_┌ )┐

最近出たMySQL5対応Webアプリはutf8を明示して入れ物を作ってるようだが
MySQL4時代のアプリケーションはとくに明示しなかったようだ、
そのせいでデフォルトのcollationとしてlatin1_swedish_ciになってると。
DBに格納されてるのは文字コードだから、アプリ側が解釈すれば表向き化けずに表示できるっぽい
だから気がつかなかったんだな

だが他のDBから文字コードを指定してインポートしたり、バックアップ取ろうとしてエクスポートすると
文字化けした上に元に戻せなくなる、と。
データを変換する手段はあるようだが、SQLを組むのが面倒なのでDB消して入れ直すことにした。
アプリからは正常に見えるので、バックアップと復元の仕組みが用意されていれば、その方が早くて確実。
古い方のPsychoStatsはバックアップと復元の仕組みがないから諦めるしかないな
使ってないしアクセスもほとんど無いから大丈夫そうだ。
もともと削除の予定だったし(´ω`)

そんなわけでいろいろメンテナンスしましたよ。