未分類」カテゴリーアーカイブ

Zabbixエージェント2をインストール

1はC言語、2はGOで書かれているとのこと。今回2をインストールする。

https://www.zabbix.com/documentation/current/en/manual/appendix/agent_comparison

インストール

Agent Daemonにチェックが入っていることを確認する。

フォルダ構成はこのようになった。

サービス確認

Get-Service | Where {$_.Name -like "zabbix*"}

ステータスがRunningになっていればOK。

クライアント登録

設定→ホスト→ホストの作成から登録する。Zabbixはクライアントをホストと表現するらしいので、混乱しないよう注意する。

テンプレート追加

テンプレートの検索から”Operating…”と入力してWindows by Zabbix Agent (=Passive監視)を選択。Activeの方は1時間ほど待ってもステータスが緑色にならなかった。

グラフ確認

ローカル時間ではないのが気になるが、監視の開始を確認。

Zabbixサーバを日本語化

最初にやることの一つ。コンテナアプライアンスは英語UIしか選べないのでインストール。タイムゾーンを日本にする。

コマンド

dnf -y install glibc-locale-source glibc-langpack-ja zabbix-web-japanese
timedatectl set-timezone Asia/Tokyo

設定変更

再起動すると、日本語に設定できる。時間も東京になったことを確認。

Vultrで制限ユーザーを作る

Vultrで「閲覧・決済・オブジェクトストレージ編集権限」のみのユーザーを作成し、UIを確認する。

ロールを追加

ログイン確認

作成したユーザでログインすると、Billingの画面が確認できる。Instancesでサーバーを作成しようとするとエラーとなる。

オブジェクトストレージの追加

オブジェクトストレージは追加ができることを確認。システムドライブ以外のクリティカルでないストレージを自由に追加削除するシナリオが想定される。

ProxmoxでZFS ARCの利用上限を設定

ZFSではL1ARCでRAMの50%をデフォルトで使用する。他の用途で優先的に使われ、影響はないとのことだが、Proxmox GUIの表示上、気になるので設定する。

起動直後にAでRAM使用率が50%にスパイクしていることがわかる。BとCはVMを2台起動した挙動。Ballooningが効いている。

現状ステータス確認

“c_max”列に表示される。16GBの場合、”8589934592″がデフォルト値。

nano /proc/spl/kstat/zfs/arcstats

上限設定

以下のサイトによると、システムで2GB、ZFSプール1TBに1GB必要とのこと。今回5GBにしてみる。本番環境では、FreeNASのように8GB以上にしたほうがいいかもしれない。

echo 5368709120 > /sys/module/zfs/parameters/zfs_arc_max
# 再起動後も永続させる
echo 'options zfs zfs_arc_max=5368709120' > /etc/modprobe.d/zfs.conf

結果確認

参考サイト

ARC(メモリキャッシュ)の設定

https://qiita.com/juze9/items/563b67b9f2d67d1fa270

“ZFS uses 50 % of the host memory for the Adaptive Replacement Cache (ARC) by default. Allocating enough memory for the ARC is crucial for IO performance, so reduce it with caution. As a general rule of thumb, allocate at least 2 GiB Base + 1 GiB/TiB-Storage. For example, if you have a pool with 8 TiB of available storage space then you should use 10 GiB of memory for the ARC.”

https://pve.proxmox.com/pve-docs/chapter-sysadmin.html#sysadmin_zfs_limit_memory_usage

“ZFS will also use available memory as a read cache. I’m not sure of the exact defaults, but its max is usually set somewhere around half the total memory available. All of those things are opportunistic. They’ll use whatever memory they think they might need if it’s available, but will release it other things need it more.”

https://www.reddit.com/r/Proxmox/comments/qlav4j/high_memory_usage_with_one_vm_running/

ProxmoでZFS RAIDZ1のベンチマーク

ProxmoxでSSD*3のZFS RAIDZ1のベンチマークをとる。RAMキャッシュが効いているため、5~10倍くらいの速度になっているが、目安として記録。

UnsafeはVM強制停止すると、NTFSのエラーチェックが走ることがある。Proxmox公式が推奨している、Write Backに帯域リミッターを組み合わせるのが良いかもしれない。

キャッシュなし(既定)

Write back(Unsafe)

Write back

Azure Application Proxyのネットワーク実測テスト

DockerでLibreSpeedという計測サーバを構築し、AAP経由でスピードテストする。

https://librespeed.org/

内部LAN接続でテスト

1GbEの速度が出ている。

エンタープライズアプリの追加

ADのDNSレコードに追加した、内部ホスト名で登録する。IPアドレスは登録できない。

結果確認

1回目

2回目

3回目

まとめ

QoSが効いているようで、およそ50Mbp前後に収束する。Pingは30ms。IPはKDDIのバックボーンが表示された。

ObserviumでWindows監視のテスト

Proxmox上のADサーバー(Windows Server 2022)で検証する。ObserviumはDockerで構築済み。

SNMPのインストール

Get-WindowsFeature -Name *SNMP*
Install-WindowsFeature SNMP-Service -IncludeAllSubFeature -IncludeManagementTools
Restart-Computer -Force
Get-Service | Where {$_.Name -like "*SNMP*"}

SNMPの登録

コミュニティ名のpublicは、よく使われる名前で脆弱性がありえる。本番環境では変更するか、SNMPv3を使う。

ObserviumのIPを指定する。

Observiumでデバイスの登録

ADサーバのIPを指定する。ObserviumのバグでPINGエラーとなることがあるので、”SKIP PING”にチェックをする。

結果確認

アップタイムやリソースなどの、基本情報は問題なく取れる。しかしサービスの個別監視ができない。GUIは洗練されている。

Server CoreにAAPCインストール① ~準備編~

Azure Application Proxy Connectorの単機能サーバとして、フットプリントを減らすために、Server Coreにインストールできるかどうかの検証。

URL確認

以下のページでダウンロードURLを確認する。

https://docs.microsoft.com/ja-jp/azure/active-directory/app-proxy/application-proxy-release-version-history

ダウンロードと実行

サイレントインストールオプションをつける必要がある。

Invoke-WebRequest -URI https://download.msappproxy.net/subscription/<テナントID>/connector/DownloadConnectorInstaller -OutFile C:\Users\Administrator\AADApplicationProxyConnectorInstaller.exe
.\AADApplicationProxyConnectorInstaller.exe REGISTERCONNECTOR=false /q

オプションをつけないで実行すると、以下のエラーとなる。

サービス確認

Get-Service | Where {$_.Name -like "WAP*"}

次回に接続の定義をする。

PowerShellでリモートサーバーを管理する

Windows ServerはRDP接続して管理されることが多いが、LinuxのようにSSH接続してメンテできれば早い。使用ポートは5985。

ファイアウォールを無効化

接続されるVM側で無効化する(NWセキュリティはルータまたはProxmoxで行う前提)。

Get-NetFirewallProfile | Set-NetFirewallProfile -Enabled false
Get-NetConnectionProfile
Get-NetFirewallProfile | Select Name,Enabled
FWを無効化、現在のNWプロファイルを確認
FWが無効化されていることを確認

WinRMの設定

接続されるVM側でリモートアクセスを有効化する。

WinRM QuickConfig

TrustedHostsの設定

信頼ホストを登録。WokGroup環境のみ必要で、AD参加済みであれば不要。Valueにはお互いのIPアドレスを入れる。PSRemotingも有効化する。

Set-Item WSMan:\localhost\Client\TrustedHosts -Value *
Enable-PSRemoting

リモート接続

Enter-PSSession -ComputerName ws2022-vm

これでRDP接続の画面切り替えをする必要なくリモート管理ができる。GUIに関連するInvoke-Itemなどは使えない。

PowerShellでフォルダ・ファイルサイズを一発で出す

PSFolderSizeというモジュールを使うのが最も簡単。標準モジュールだけでやろうとするととても長いコマンドになってしまう。

モジュールのインストール

Install-Module -Name PSFolderSize
Get-FolderSize -Path "パス"

このように4MBのVHDXファイルが確認できる。