メモ: dockerでZabbix 5.0、外部スクリプトの結果をグラフ化

## dockerで動かす

```sh
git clone https://github.com/zabbix/zabbix-docker.git 
```

```sh
mkdir zabbix

# alpine_mysql だとうまく起動できなかったので、pgsqlを使うこととした。
cp -p \
  zabbix-docker/docker-compose_v3_alpine_pgsql_latest.yaml \
  zabbix/docker-compose.yaml

cp -p zabbix-docker/.[eP]* zabbix/

cd zabbix

docker-compose up -d
```

* http://localhost
    * Admin : zabbix でSign in

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/89b1375f-98a7-3632-dd9b-8eeac79c06fc.png)


## 日本語化

* User setting -> Language -> Japanese(ja_JP)

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/4159e68a-cb33-79ce-07d4-0b2ba0400549.png)

## Zabbix agent is not available を治す

* 設定 - ホスト

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/1dbea695-81e2-67bc-7f0a-29dc57de5f8a.png)

* `Zabbix server`をクリック

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/ad747c77-b6f4-9bdc-8ffd-7344f785a272.png)

* IPアドレス : 消す
* DNS名 : zabbix-agent
* 接続方法 : DNS

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/55f96107-c081-b580-a6f4-6bee2d7179b6.png)

* 最新データー をクリックし、データーが取れていることを確認。

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/41889dba-ad55-8234-65dc-cc975310e8da.png)

## グラフの見方

* ホスト - Zabbix server - グラフ

![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/084b4be7-eded-e8ff-40f0-a323d073f6a1.png)

## WEBページの監視

* 設定 - ホスト - ホストの作成

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/bb672222-1741-104c-9099-a55aaa993003.png)

* ホスト名
* グループ : `Linux server`
* 適用

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/4dd59572-f495-1c40-ad2c-f40cd2e1575e.png)

* `Web`

![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/8beede3e-cb56-6a6d-17d7-8e44faede665.png)

* Webシナリオの作成

![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/b1981b98-07b4-46c5-c1f4-2be4001e4935.png)

* なにか名前を付ける
* `ステップ` - `追加` をクリック

![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/ca191023-2628-8e8e-2f74-f099c17e7d1a.png)

* 名前、URL をそれっぽいのを入れる。

![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/4253697a-2bc2-7ab8-3f93-959e7eeb2bfe.png)

以上


## ExternalScripts

* /etc/zabbix/zabbix_server.conf の初期設定は以下のように

```sh
$ docker exec -it zabbix_zabbix-server_1 grep ^ExternalScripts /etc/zabbix/zabbix_server.conf
ExternalScripts=/usr/lib/zabbix/externalscripts
```

以下フォルダにシェルスクリプトを置けばよい様子。

* zbx_env/usr/lib/zabbix/externalscripts/

以下を置いてみた。

```sh:expr.sh
expr $(date "+%S") % 2
```

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/3c70644f-9c35-dec6-0f32-f7361fcb8a24.png)

* アイテム - アイテムの作成

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/9d7c440b-0fa7-5be1-5842-b917b443cc5b.png)

* 外部チェック、シェルスクリプト名を指定

![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/79ddefa6-e2cc-f7d4-2f6f-b4ebaa06ecd7.png)

* ホスト - ホスト名 : ExternalScript
* インターフェース : 127.0.0.1 を指定

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/7000be82-15fc-cae3-72bf-dc72689ff678.png)

* テンプレート - 先ほど作成した`shell-1`を入力し、更新

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/213bb9de-d844-223e-fca3-2a1afb716ac4.png)

* 値が取れていることを確認。

![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/caabf2dc-8d96-3880-66ca-f79834fcd50f.png)


## zabbix設定情報

https://assets.zabbix.com/img/zabconf2020_jp/presentations/01_2zabconf2020.pdf

https://devlog.arksystems.co.jp/2019/12/17/6781/

https://crashlaker.github.io/monitoring/2020/04/30/embed_zabbix_on_grafana.html

https://crashlaker.github.io/2021/03/26/zabbix_send_custom_historical_metrics.html