BIGIPを監視するZABBIX6.2の導入・簡単設定

Ubuntu 20.04へZABBIXを導入し、BIG-IPからSNMPを使い情報を取得、監視できるようにします。

１）MariaDB(10.6)導入・設定
２）ZABBIX導入
３）BIG-IP設定
４）ZABBIX設定・確認

## １）MariaDB(10.6)導入・設定
ZABBIX 6.2はMariaDBは10.6以上が必要との記載があったため10.6を選択。

OSを確認
``
#cat /etc/lsb-release
``

この部分で確認
``
DISTRIB_RELEASE=20.04
``

``
#apt install apt-transport-https curl
``

``
#curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc 'https://mariadb.org/mariadb_release_signing_key.asc'
``

パッケージ更新
``
#sudo apt update
``

``
#add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirror.yongbok.net/mariadb/repo/10.6/ubuntu focal main'
``

レポジトリへの追加確認
``
#cat /etc/apt/sources.list
``

以下の２行が追加されているはずです。
``
deb [arch=arm64,ppc64el,amd64] https://mirror.yongbok.net/mariadb/repo/10.6/ubuntu focal main

#deb-src [arch=arm64,ppc64el,amd64] https://mirror.yongbok.net/mariadb/repo/10.6/ubuntu focal main
``
※２行目はコメント文となります

MariaDBはどのバージョンが入るか確認
``
#apt info mariadb-server
``

事前準備として、MariaDBをDBとして使うための導入を行います。
``
#apt install zabbix-server-mysql
``
これをインストールされるプログラムの中で最も重要なのが「zabbix-server-mysql」。
これがないZABBIXを設定する時、DBタイプにおいて「MySQL」が選べません。

## ２）ZABBIX導入:Zabbix Server 6.2 のインストール

ダウンロードサイトへアクセスします。
以後のインストールはこちらのサイトを参考にします。
``
https://www.zabbix.com/jp/download
``

下の画面のように選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399809/c07e4392-d0ed-b2cf-0099-b2175971777e.png)


### a. Install Zabbix repository を実行します。
``
#wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu22.04_all.deb

#dpkg -i zabbix-release_6.2-4+ubuntu22.04_all.deb

#apt update 
``


### b. Install Zabbix server, frontend, agent
プログラムをインストールします。
``
#apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
``

### c. Create initial database 

``
#mysql -uroot -p
``

``
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit; 
``

簡単に解説しますと、
１行目、DBの作成と使用する文字コードの定義
２行目、ユーザー作成とパスワード設定
３行目、DBへのアクセス権設定
４行目、上記の反映



``
#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix 
``

``
#mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit; 
``

### d. Configure the database for Zabbix server

設定ファイル /etc/zabbix/zabbix_server.conf にてパスワードを設定します。
これはMariaDBのzabbixスキームにアクセスするためのものです。

``
DBPassword=password
``

### e. Start Zabbix server and agent processes

Start Zabbix server and agent processes and make it start at system boot.
``
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2 
``

### f. Open Zabbix UI web page

The default URL for Zabbix UI when using Apache web server is http://host/zabbix 

``
ID: Admin
PASS: zabbix
``

#すぐにパスワードは変更しましょう

## ３）BIG-IP設定

ZABBIXサーバーからBIG-IPへアクセスできるようにします。
BIG-IPへログインし「システム」-「SNMP」(Configration)を選択します。
「Client Allow List」項目にZABBIXサーバーのIPアドレス（BIG-IPへアクセスする送信元IPアドレス）を設定。

次にコミュニティ名を設定します。
「システム」-「SNMP」(Access v1,v2c)を選択。
(上部項目「Agent」をプルダウン)
今回ここではCommunity名は「public」を設定します。
※上記アクセス制限によりデータを取得できるIPは限られます。万が一それを間違えた場合でもコミュニティ名を独自の物にしておくことで流出は（ある程度）防げるかと思われます。
※蛇足ですが、このコミュニティ名(public)を使いSNMP通信にてBIG-IPへアクセスします


## ４）ZABBIX設定・確認
ログインし、設定を選択。
設定内容を以下のように行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399809/06ed06f0-6768-51e3-cfea-b56188dd3f79.png)

テンプレートにて「big」あるいは「big-ip」と入力しますと「F5 Big-IP by SNMP」テンプレートが選択可能となります。

インターフェイスは「SNMP」を追加。
IPはBIG-IPのManagementポートのIPを設定します。
※Managementポート以外は、BIG-IP側でSNMPのアクセスを可能にする設定が必要です。
ポート番号は通常通り「161」
SNMPバージョンは今回は「SNMPv2」を選択。
コミュニティ名は変数ですが、そのまま使用します。

ZABBIXではコミュニティ名の設定はメニュー項目「管理」「一般設定」の中の「マクロ」にて定義しています。下のような設定がされていますが、これを利用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399809/2a0b2c10-4b60-75d0-e96c-65aaba698c25.png)


SNMPを使いアクセスできると以下のようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399809/94415bc9-f642-a8e5-23ed-5950ce4fb07f.png)

うまくいかない場合は、グレーアウトの「SNMP」表示になります。
また一度、うまくアクセスできたが、通信できなくなった場合は緑から赤色の「SNMP」となります。

設定が完了するとDiscovery機能により各種機能が設定されていきます。
ただし一度には取得できないようで何回かに分けて取得しています。そのため徐々に監視項目が増えていく形となります。
※これをスピードアップする場合はDiscovery間隔を短くします（デフォルトでは1時間）

オートディスカバリーを活かしておくことで、BIG-IP上に追加作成した仮想サーバーが、自動的に設定され、グラフも見えるようになります。
さらに、仮想サーバーを削除すると、30日？後にZABBIX上から削除してくれるようです。便利になったものです。

以上です。