[Zabbix4][ホスト追加]EC2(Amazon Linux/Centos6系)にZabbix4.0(LTS)エージェントを追加した話

# お詫びと訂正
記事タイトルと内容を変更しています。

当初は「4.0のエージェントを導入できない(=依存パッケージsystemdの不足)ので3.4を導入した」という記事でしたが、当方の勘違いでした。（最初にCentOS7系のリポジトリを導入した後にエラーになって、その後CentOS6系に替えた後もyumのキャッシュが残っていてエラーになったのをAmazonLinuxでは4.0は駄目と早とちりした？）
CentOS6用のリポジトリを指定することで、Amazon Linux(CentOS6系)にも4.0のエージェントを導入できました。

【教訓】リポジトリを差し替えた後は``` yum clean all ```しましょう。

atanaka7様、ご指摘ありがとうございました。


# 概要

- [インフラ管理ツールZabbix](https://www.zabbix.com/jp/)の最新バージョン4.0 LTSのサーバを導入しました。
- 監視対象として某サービスで利用しているEC2(Amazon Linux/CentOS6系)に4.0のエージェントをインストールしました。
- (訂正)~~4.0のエージェントは依存パッケージの不足でインストールできず断念。結局3.4のエージェントを導入しました。~~
- (訂正)~~centos6系にはsystemdが入っていないので4.0のエージェントは導入できません。~~
- zabbixサーバとの通信ポート(10050)を開放します。
- Amazon Linuxの大半のインスタンスタイプにはswap領域が用意されていないので警告（Lack of free swap space）が出るので対処(swap領域追加)します。

# サーバの基本情報です。

- 2015年末に導入したEC2
- OSはAmazon Linux( CentOS 6系 )
- インスタンスタイプは t2.small  ※swap領域なし

# インストール手順

以下が手順です。[公式サイトの手順](https://www.zabbix.com/jp/download)にない追加の手順がいくつかあります。

## CentOS6用のzabbix4.0のリポジトリを追加

```
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-release-4.0-1.el6.noarch.rpm
```

※rpmのダウンロードURLは、[公式ページでバージョンやOS等を選択することで取得](https://www.zabbix.com/jp/download)できます。
![](https://i.gyazo.com/c06e21d942bfb79178b7c17db85fbe27.png)

## エージェントインストール

```
yum install zabbix-agent
```

## 設定
インストールが完了したら設定ファイルをzabbixサーバに紐づけます。

```
# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.org.conf 
# vi /etc/zabbix/zabbix_agentd.conf
```

**変更内容**

> Server=< ip address or domain >
> ServerActive=< ip address or domain >
> Hostname=< host名 >

## エージェント起動/常時起動ON

```
# service zabbix-agent start
# chkconfig zabbix-agent on
```

## ポート解放

当該EC2に紐付いているセキュリティグループのインバウンド設定でzabbixサーバ側からポーリングしてくるポートを開放します。

![](https://i.gyazo.com/eb25abc319b981fe447819ac8084b184.png)

## （zabbixサーバ側で）ホスト追加

以下の手順に従います。ポートは上記で開放したものとします。（既定は10050）

[2 New host [Zabbix Documentation 4.0]](https://www.zabbix.com/documentation/4.0/manual/quickstart/host)

これでホストを追加できました。

![](https://i.gyazo.com/eec164d4f902b48ec26a01f97e4d4769.png)

## おまけ(SWAP領域の追加)

上記までの手順でサーバ側にホストが追加されましたが、swap領域がないインスタンスなので zabbixサーバ側で```Lack of free swap space```という「警告」が表示されます。

![](https://i.gyazo.com/20e6cb343ac3b758b1cdaf74f57bb738.png)

解消するためにSWAP領域を追加して永続化します。

### Swap領域の作成

こちらの記事のとおりに設定しました。（すごくわかりやすい）

[AWS (Amazon Linux) にswap領域を追加する方法](https://www.closetoyou.jp/aws/how-to-add-swap/)

```bash
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=512
  512+0 records in
  512+0 records out
  536870912 bytes (537 MB) copied, 2.25614 s, 238 MB/s
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
  Setting up swapspace version 1, size = 524284 KiB
  no label, UUID=7ea4d670-81a6-4b43-98e8-a815426c8516
$ sudo swapon /swapfile
```

以上で追加されます。feeコマンドで確認するとSwap領域が確保されてzabbixサーバの警告が消えます。

$ free
>              total       used       free     shared    buffers     cached
> Mem:       2049484    1974116      75368        796     180812    1263936
> -/+ buffers/cache:     529368    1520116
> Swap:       524284          0     524284  ★この行の値が０でなくなった★

![zabbizダッシュボード解決済](https://i.gyazo.com/3d114eb84cd4f12270515b9f8088617e.png)

### Swap領域の永続化

作成したSwap領域を永続化するためにfstabを編集します。

```
$ sudo vim /etc/fstab

末尾に以下を追加
/swapfile   swap        swap    defaults        0   0
```

これで永続化されます。永続化とは「OS再起動時に自動的にmountされる」という意味です。