Windows用ZabbixエージェントをCドライブ直下以外のconfを使用してインストールする

## 概要
Windows Server 2012 R2にZabbixエージェントをインストールして、Zabbixにホスト追加をします。

confファイルはデフォルトインストールの場合、Cドライブ直下のzabbix_agentd.confが使用されるようですが、Cドライブ直下に置きたく無かったのでインストール時にconfファイルの場所を指定してインストールをしてみます。

エージェントのインストールと合わせて、ファイアーウォールで TCP 10050ポートを空ける必要があります。
(ついつい忘れてしまう)

Zabbix自体、インストールから操作まで初めてです。

## 環境
* IPアドレス
    * [Zabbixサーバー(Linux)]：192.168.0.1
    * [Zabbixエージェント(Windows)]：192.168.0.20

* クライアント
    * [OS]：Windows Server 2012 R2
    * [実行ユーザー]：Administrator

* Zabbix 
    * [バージョン]：3.4

## ディレクトリ構成
ディレクトリ構成は以下で考えています。

* Cドライブ直下にzabbixディレクトリを作成
* エージェントのDLしたzipファイルはzabbixディレクトリに配置・展開
* 展開後、log ディレクトリを作っておく

```
C:  
├ zabbix  
    ├zabbix_agents_3.4.0.win  
       ├─bin  
       │  ├─win32  
       │  │  └─dev  
       │  └─win64  
       │      └─dev  
       ├─conf  
       └─log (自分で作る)
```

## インストールマニュアル
インストール方法が書かれたサイトです(英語)。
日本語にしようと日の丸ボタンをおしたのですが、日本語化はされていないようでした。

<https://www.zabbix.com/documentation/3.4/manual/appendix/install/windows_agent>

## ファイアーウォールの設定
通信用にTCP：10050 ポートを開ける必要があります。
インストール後、ついつい忘れてしまうことが多いので先に書いておきます。

ファイアーウォールの設定から、「受信の規則」にTCP：10050ポートを設定しておきます。

## エージェントのダウンロード
下記サイトからエージェントをダウンロードします。

<https://www.zabbix.com/jp/download>

<img width="50%" alt="01_ダウンロードサイト.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/054cb102-7766-804c-d066-454e90f12b8b.png">

## ダウンロードファイルの展開
`C:¥zabbix` 配下にzipを展開します。

<img width="50%" alt="02_ダウンロード_解凍.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/3426d522-9c7c-fa39-d17b-85f5e6f20b23.png">

## confファイルの設定
> confファイルのコピー

conf ディレクトリ配下の `zabbix_agentd.win.conf` をコピーして `zabbix_agentd.conf` にリネームします。

今回はconfファイルを指定してインストールするので、既存の `zabbix_agentd.win.conf` や別名のファイルでも問題はありませんが、念のため。

<img width="50%" alt="03_confコピー.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/b61a93b6-e1fb-57b6-4518-80aa7bfae9ac.png">

> confファイルの設定を変更する

conf ファイルを開いて以下設定を変更します。

ログファイルのディレクトリは**事前に作成**してください。
(指定のディレクトリが無いとサービスが起動しない)

* ログファイルの出力先を変更する場合

```
LogFile=C:\zabbix\zabbix_agents_3.4.0.win\log\zabbix_agentd.log
```

* ZabbixServerが稼働しているサーバーのIPを設定する(IPは環境に合わせて変更してください)

```
Server=192.168.0.1
ServerActive=192.168.0.1
```

* ホスト名を指定する：設定済みのPC名を使用する場合
    * Hostnameをコメントアウト
    * HostnameItemをアンコメント

```
#Hostname=Windows host
HostnameItem=system.hostname
```

設定済みのPC名を使用せずに独自名称にしたい場合は Hostname に記入し、HostnameItemはコメントアウトします。

```
Hostname=設定したい名称を記入
# HostnameItem=system.hostname
```

Hostname / HostnameItem の両方が有効な場合は Hostnameを使うよって警告が出た気がします。

## confファイルを指定してエージェントをインストール
confディレクトリ配下のファイルを指定してインストールをします。

confファイルを指定しないでインストールした場合はCドライブ直下の zabbix_agentd.conf が使用されるようです。

実行exeもCドライブ直下に移動せずにzip展開後のbin配下のまま使用してみます。

自分の環境では特に問題無かったのですが、いろいろ見ているとexeもconfもCドライブ直下にコピーして、exeにはプロパティから管理者権限にチェックを入れて実行する方法等があったので、もし権限でインストールが上手く行かない場合はそちらの方法を取ったほうがよいのかもしれません。

> コマンドプロンプト起動

コマンドプロンプトを**管理者として実行**で起動します。

> インストール(サービスへの登録)

bin ディレクトリに移動し、`--config` オプションを指定してインストールします。
(win32 / win64 は各環境に合わせてください)

```
> cd C:\zabbix\zabbix_agents_3.0.4.win\bin\win64

> zabbix_agentd.exe --config C:\zabbix\zabbix_agents_3.0.4.win\conf\zabbix_agentd.conf --install
```

`installed successfully` が表示されればインストール完了です。

<img width="50%" alt="04_インストール.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/2f21ebeb-3670-dd8e-0265-ee752d9146c5.png">

Cドライブ直下に zabbix_agentd.conf を配置する場合はオプション不要です。

```
> zabbix_agentd.exe --install
```

## エージェントを開始する
サービスの画面を開いて、`Zabbix Agent` を開始します。

<img width="50%" alt="05_サービス開始.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/483b00ef-643d-5364-0081-638ecf8a462c.png">

## サービスがどのconfファイルで動いているか確認する場合

サービスのプロパティから 実行ファイルのパス で確認ができます 
(長いと右に隠れているのいるので、カーソルをわせて表示をスクロールする)

* サービス画面 > Zabbix Agent > プロパティ > 実行フィルのパス

<img width="50%" alt="06_サービス実行ファイル確認.png" src="https://qiita-image-store.s3.amazonaws.com/0/101125/4f00f806-0c09-79fa-ec06-4b418d682195.png">


## ファイアーウォールの設定
10050ポートの設定をまだ行っていない場合は、ファイアーウォールの設定から、「受信の規則」にTCP：10050ポートを設定します。

## エージェントのアンインストール
インストール時に`--install`としたオプションを`--uninstall`とします。
サービスが起動している場合は停止まで削除削除されず「無効」状態になります(停止するとサービスから消える)

* サービスを停止する
* コマンドプロンプトで`--uninstall`を指定して実行する
* サービスから削除された事を確認する

```
confファイルを指定している場合
> zabbix_agentd.exe --config C:\zabbix\zabbix_agents_3.4.0.win\conf\zabbix_agentd.conf --uninstall

confファイルがデフォルトCドライブ直下の場合
> zabbix_agentd.exe --uninstall
```

## Zabbixへのホスト追加
[Zabbixにホストを追加する](https://qiita.com/flat9th/items/00006bb84ee687cccb1a)

以上です。