NW機器を監視するツール「Zabbix」をDockerで構築したのでまとめます。
構築は「docker-compose」を利用し、5分程度で構築可能です。
※CentOS8環境なのでfirewall設定はしっかりとしておくこと。
Dockerイメージは以下のZabbix公式のイメージを使用しています。
https://hub.docker.com/u/zabbix/
「docker-compose」でZabbix最新バージョン構築(CentOS8)
CentOS8最新版でDockerをインストールします。
インストール手順は以下のページを参考にしてください。
※CentOS8のバージョンは2020年12月時点で以下が最新となります。
[root@zabbix ~]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)
「docker-compose」インストール
上記でDockerをインストール後、別途「docker-compose」をインストールします。
[root@zabbix ~]# curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
対象のディレクトリに権限を付与とリンクの紐づけをします。
[root@zabbix ~]# chmod +x /usr/local/bin/docker-compose [root@zabbix ~]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
「docker-compose」が問題なく動作している場合は以下でバージョンを確認します。
[root@zabbix ~]# docker-compose --version docker-compose version 1.27.4, build 40524192
docker-composeは上記以外にもPythonのpipインストールでも取得できます。
以下のページを参考にしてください。
gitインストール
今回、ZabbixのDockerイメージファイルをgitからクローンするため「git」コマンドが必要となります。
以下コマンドで「git」をインストールします。
[root@zabbix ~]# yum -y install git
Zabbixインストール(docker-compose)
gitをインストールした後はZabbixのインストールを実施します。
事前にZabbixのファイルの保存先フォルダを作成し、移動します。
[root@zabbix ~]# mkdir docker [root@zabbix ~]# cd docker/ [root@zabbix docker]#
次に、gitコマンドでZabbixのDockerファイルをコピーします。
[root@zabbix docker]# git clone https://github.com/zabbix/zabbix-docker.git [root@zabbix docker]# ll 合計 4 drwxr-xr-x. 17 root root 4096 12月 1 19:54 zabbix-docker
「zabbix-docker」フォルダがコピーされているので、移動します。
[root@zabbix docker]# cd zabbix-docker/ [root@zabbix zabbix-docker]#
フォルダの中身は以下のようになっています。
[root@zabbix zabbix-docker]# ll 合計 200 -rw-r--r--. 1 root root 18046 12月 1 19:54 LICENSE -rw-r--r--. 1 root root 3815 12月 1 19:54 README.md drwxr-xr-x. 5 root root 48 12月 1 19:54 agent drwxr-xr-x. 3 root root 20 12月 1 19:54 agent2 -rwxr-xr-x. 1 root root 1591 12月 1 19:54 build.sh -rw-r--r--. 1 root root 11460 12月 1 19:54 docker-compose_v3_alpine_mysql_latest.yaml -rw-r--r--. 1 root root 11972 12月 1 19:54 docker-compose_v3_alpine_mysql_local.yaml -rw-r--r--. 1 root root 12179 12月 1 19:54 docker-compose_v3_alpine_pgsql_latest.yaml -rw-r--r--. 1 root root 12688 12月 1 19:54 docker-compose_v3_alpine_pgsql_local.yaml -rw-r--r--. 1 root root 11462 12月 1 19:54 docker-compose_v3_centos_mysql_latest.yaml -rw-r--r--. 1 root root 11996 12月 1 19:54 docker-compose_v3_centos_mysql_local.yaml -rw-r--r--. 1 root root 12179 12月 1 19:54 docker-compose_v3_centos_pgsql_latest.yaml -rw-r--r--. 1 root root 12712 12月 1 19:54 docker-compose_v3_centos_pgsql_local.yaml -rw-r--r--. 1 root root 11244 12月 1 19:54 docker-compose_v3_ubuntu_mysql_latest.yaml -rw-r--r--. 1 root root 11770 12月 1 19:54 docker-compose_v3_ubuntu_mysql_local.yaml -rw-r--r--. 1 root root 11960 12月 1 19:54 docker-compose_v3_ubuntu_pgsql_latest.yaml -rw-r--r--. 1 root root 12485 12月 1 19:54 docker-compose_v3_ubuntu_pgsql_local.yaml -rwxr-xr-x. 1 root root 1220 12月 1 19:54 generate-stackbrew-library.sh drwxr-xr-x. 5 root root 48 12月 1 19:54 java-gateway -rw-r--r--. 1 root root 12170 12月 1 19:54 kubernetes.yaml drwxr-xr-x. 5 root root 48 12月 1 19:54 proxy-mysql drwxr-xr-x. 5 root root 48 12月 1 19:54 proxy-sqlite3 drwxr-xr-x. 5 root root 48 12月 1 19:54 server-mysql drwxr-xr-x. 5 root root 48 12月 1 19:54 server-pgsql drwxr-xr-x. 5 root root 48 12月 1 19:54 snmptraps drwxr-xr-x. 5 root root 48 12月 1 19:54 web-apache-mysql drwxr-xr-x. 5 root root 48 12月 1 19:54 web-apache-pgsql drwxr-xr-x. 5 root root 48 12月 1 19:54 web-nginx-mysql drwxr-xr-x. 5 root root 48 12月 1 19:54 web-nginx-pgsql drwxr-xr-x. 3 root root 18 12月 1 19:54 zabbix-appliance
CentOS-PostgreSQLのyamlファイルをコピーする
上記で「yaml」ファイルのうち、CentOSかつデータベースがPostgreSQLである以下のファイルを「docker-compose.yaml」へコピーします。
docker-compose_v3_centos_pgsql_latest.yaml
コピーコマンドは以下となります。
[root@zabbix zabbix-docker]# cp -p docker-compose_v3_centos_pgsql_latest.yaml docker-compose.yaml
ちなみにMySQLでインストールした際は、データベースエラーが発生し、Zabbixがうまく起動しなかったのでお勧めしません。
[root@zabbix zabbix-docker]# cp docker-compose_v3_centos_mysql_latest.yaml docker-compose.yaml
「Zabbix」Dockerイメージダウンロード
docker-composeへのコピーが完了したら、Dockerイメージをダウンロードします。
[root@zabbix zabbix-docker]# docker-compose pull
以下のようにイメージがダウンロードされます。
[root@zabbix zabbix-docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE zabbix/zabbix-web-nginx-pgsql centos-5.2-latest 03944f503723 33 hours ago 384MB zabbix/zabbix-web-apache-pgsql centos-5.2-latest 702fd55967a3 34 hours ago 386MB zabbix/zabbix-proxy-mysql centos-5.2-latest 3f231c250065 34 hours ago 343MB zabbix/zabbix-server-pgsql centos-5.2-latest 998a185d742b 34 hours ago 276MB zabbix/zabbix-proxy-sqlite3 centos-5.2-latest 0060c3333c16 34 hours ago 269MB zabbix/zabbix-agent centos-5.2-latest ac2f0444a721 34 hours ago 258MB zabbix/zabbix-java-gateway centos-5.2-latest ed90e38a790c 34 hours ago 402MB zabbix/zabbix-snmptraps centos-5.2-latest b0ce63d104ba 34 hours ago 303MB busybox latest dc3bacd8b5ea 8 days ago 1.23MB mysql 8.0 dd7265748b5d 11 days ago 545MB postgres latest f51c55ac75ed 13 days ago 314MB
Zabbix起動前に「Firewall」で必要なポート開放とNAPTの許可を実施
上記イメージのダウンロードまで行くとあとはZabbixを起動するだけですが、CentOS8のDocker環境ではFirewallで設定しないとコンテナ間での通信ができずエラーとなってしまします。
そのため以下にてNAPTの許可を実施します。
[root@zabbix zabbix-docker]# firewall-cmd --add-masquerade --permanent [root@zabbix zabbix-docker]# firewall-cmd --reload
Zabbixへのアクセスはhttpとなるので以下でサービスを開放します。
[root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-service=http [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-service=http --permanent [root@zabbix zabbix-docker]# firewall-cmd --reload
また、Zabbixで使用するポートの開放もしておきます。
[root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=10071/tcp --permanent [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=10061/tcp --permanent [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=10051/tcp --permanent [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=10050/tcp --permanent [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=8443/tcp --permanent [root@zabbix zabbix-docker]# firewall-cmd --zone=public --add-port=162/udp --permanent [root@zabbix zabbix-docker]# firewall-cmd --reload
最終的なFirewallの設定は以下となっています。
[root@zabbix zabbix-docker]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens192 sources: services: cockpit dhcpv6-client http ssh ports: 10071/tcp 10061/tcp 8443/tcp 162/udp 10051/tcp 10050/tcp protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules:
「Zabbix」をdocker-composeで起動
上記でFirewallの許可設定を実施した後は、「Zabbix」を起動します。
[root@zabbix zabbix-docker]# docker-compose up -d
起動に成功すると、http://<IPアドレスorホスト名>でアクセスします。
アクセスすると以下の様にログイン画面が表示されます。
ログインパスは以下となります。
- Username: Admin
- Password: zabbix
ログイン後は以下の様にアクセスできると成功です。
docker-composeを使用したZabbixの構築手順は以上となります。
Dockerを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す