本記事の概要
インフラエンジニアとして業務に行う場合、各機器(サーバやネットワーク機器)の異常を早期発見して、対処することが求められます。
サーバやネットワーク機器などの稼働監視で使用するzabbixというソフトウェアをインストールします。
今回は前の記事でインストールしたVirtualBox上にUbuntu 20.04をインストールして、その中にzabbixをインストールすることを想定しています。
※本記事の作成日(2021年8月1日)時点での動作確認をしていますが、Webページなどが更新されている可能性があります。適宜読み替えてください。
以下のようなイメージで作成します。
ソフトウェアの構成
以下のソフトウェアを用いて、zabbixサーバを構築します。
- VirtualBox(※)
- Ubuntu 20.04.1 LTS
- Zabbix 5.0LTS
- Apache (Webサーバ用のソフトウェア)
- MySQL (データベース用のソフトウェア)
※VirtualBoxのインストール方法が分からない場合は、「仮想基盤構築のためにVirtualboxインストール」をご確認ください。
Zabbixとは
zabbixとは、サーバやネットワーク機器を監視するためのソフトウェアです。
オープンソース・ソフトウェアとして開発されているため、無償で使用することができます。
zabbixでは、ping監視、通信ポート監視、OSの性能監視(CPU、メモリ、ディスクI/Oの負荷)、サービス監視、ログ監視など様々な監視をすることができます。
Ubuntu 20.04のインストール手順
(1) ブラウザを起動して、以下のUbuntuのダウンロードサイトにアクセスします。
https://www.ubuntulinux.jp/download
(2) 「日本語 Remix イメージのダウンロード」をクリックします。
(3) 「ubuntu-ja-20.04.1-desktop-amd64.iso(ISOイメージ)」をクリックして、UbuntuのISOイメージファイルをダウンロードします。
(4) Virtualboxを起動します。その後、「ツール」をクリックして、「新規」をクリックします。
(5) 「名前」、「タイプ」、「バージョン」の3つの値を設定して、「次へ」をクリックします。
(6) 「メモリサイズ」を設定して、「次へ」をクリックします。
以下のzabbix公式サイトに「CPUのコア数:2CPU」、「メモリ:2GB」程度あれば動作する旨の記載がありますが、今回は4GBを設定します。
https://www.zabbix.com/documentation/5.0/manual/installation/requirements
(7) 「仮想ハードディスクを作成する」を選択して、「作成」をクリックします。
(8) 「VDI(VirtualBox Disk Image)」を選択して、「次へ」をクリックします。
(9) 「可変サイズ」を選択して、「次へ」をクリックします。
(10) 「仮想ハードディスクのサイズ」を選択して、「作成」をクリックします。
zabbixの環境により異なりますが、今回は「10.00GB」を設定します。
(11) 先ほど作成した仮想マシンを選択して、「設定」をクリックします。
(12) 「ストレージ」の「コントローラ IDE」のディスクを選択して、右にあるディスクのアイコンをクリックします。
(13) 読み込むISOファイルを選択し、「コントローラ IDE」の値が変わったことを確認します。
その後、「OK」をクリックします。
(14) 作成した仮想マシンをダブルクリックして、起動します。
(15) 読み込みISOファイル(Ubuntu 20.04.1のISOファイル)が選択されていることを確認して、「起動」をクリックします。
(16) 「Ubuntu」を選択して、Enterを押します。
(17) 「日本語」が選択されていることを確認して、「Ubuntuをインストール」します。
(18) キーボードレイアウトに「Japanese」を選択して、「続ける」をクリックします。
(19) 「最小インストール」を選択して、「続ける」をクリックします。
(20) 「ディスクを削除してUbuntuをインストール」にチェックを付けて、「インストール」をクリックします。
(21) 「続ける」をクリックします。
(22) 「Tokyo」が入力されていることを確認して、「続ける」をクリックします。
(23) あなたの名前、ユーザ名、パスワードを入力して、「続ける」をクリックします。
(24) インストールが終わるまでしばらく待って、完了した旨のメッセージが表示されたら、「今すぐ再起動する」をクリックします。
(25) ログインするアカウントをクリックして、パスワードを入力してログインします。
(26) ログインされたことを確認します。
Ubuntu 20.04上にzabbixをインストール
(1) 左下の「・・・」のアイコンをクリックします。
(2) 検索のテストボックスに「cmd」を入力します。
(3) 「cmd」と入力したら、「端末」が表示されるためクリックして起動します。
(4) 以下のコマンドを実行後にパスワードを入力して、特権ユーザ(root)になります。
$ sudo -s
(5) 以下のコマンドを実行して、sshをインストールし、sshが起動していること及び自動起動を有効化します。
# apt install ssh -y
# systemctl status ssh
→sshが起動していることを示す「Active: active (running)」を出力されることを確認
# systemctl enable ssh
(6) 以下のコマンドを実行して、Zabbixレポジトリのインストール及び最新バージョンにアップデートします。
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
# dpkg -i zabbix-release_5.0-1+focal_all.deb
# apt update -y
# apt upgrade -y
(7) 以下のコマンドを実行して、zabbixをインストールするためのソフトウェアをインストールします。
# apt install -y zabbix-server-pgsql zabbix-frontend-php php7.4-pgsql zabbix-apache-conf zabbix-agent
# apt install -y postgresql
(8) 以下のコマンドを実行して、データベースの初期設定をします。
# sudo -u postgres createuser --pwprompt zabbix
Enter password for new role: →パスワードを入力します。
Enter it again: →パスワードを再度入力します。
# sudo -u postgres createdb -O zabbix zabbix
# zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
(9) 以下のコマンドを実行して、Zabbizサーバのためのデータベースの設定を変更します。
# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_org
# vi /etc/zabbix/zabbix_server.conf
iを入力して編集モードに変更して、以下の行を編集します。
【変更前】
# DBPassword=
【変更後】
DBPassword=[パスワードを入力]
(10) 以下のコマンドを実行して、タイムゾーンのリージョンを設定します。
# cp /etc/zabbix/apache.conf /etc/zabbix/apache.conf_org
# vi /etc/zabbix/apache.conf
iを入力して編集モードに変更して、以下の行を編集します。
【変更前】
# php_value date.timezone Europe/Riga
【変更後】
php_value date.timezone Asia/Tokyo
(11) 以下のコマンドを実行して、Zabbixサーバとエージェントのプロセスを起動します。
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
(12) ブラウザを起動して、「http://[zabbixサーバのIPアドレス]/zabbix」にアクセスします。
(13) 「Next step」をクリックします。
(14) 全てのステータスがOKになっていることを確認して、「Next step」をクリックします。
(15) 「Database port:5432」、「Password:[設定したパスワード]」を入力して、「Next step」をクリックします。
(16) 「Next step」をクリックします。
(17) 設定した値を確認して、「Next step」をクリックします。
(18) 以下の画面が表示された場合、インターネットからファイルをダウンロードして、「/usr/share/zabbix/conf/zabbix.conf.php」に保存します。その後、「Finish」をクリックします。
(19) インストールが成功した旨のメッセージが表示されていることを確認して、「Finish」をクリックします。
(20) 「ユーザ名:Admin」、「パスワード:zabbix」を入力して、「Sign in」ボタンをクリックします。
(21) ダッシュボード画面が表示されることを確認します。
【補足】 zabbixによるSNMP監視の設定
もしzabbixサーバを用いてSNMP trapを用いた監視をする場合、本手順を実施する必要があります。
本手順はzabbixの公式サイトである「https://www.zabbix.com/documentation/2.0/jp/manual/config/items/itemtypes/snmptrap」を参考にして作成しています。
(1) 以下のコマンドを実行して、zabbixでSNMP監視をするために必要なパッケージをインストールします。
# apt install -y snmpd snmp libsnmp-dev snmptrapd snmp-mibs-downloader libsnmp-perl
(2) 以下のコマンドを実行して、SNMP trapを処理するためのスクリプトを格納します。
# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.9.tar.gz
# tar zxvf zabbix-5.0.9.tar.gz
# cp -p zabbix-5.0.9/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/
(3) 以下のコマンドを実行して、スクリプトの実行結果のログの格納先を設定します。
# vi /usr/local/bin/zabbix_trap_receiver.pl
【変更前】
$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
$DateTimeFormat = '%H:%M:%S %Y/%m/%d';
【変更後】
$SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log';
$DateTimeFormat = '%H:%M:%S %Y/%m/%d';
(3) 以下のコマンドを実行して、スクリプトに実行権限を付与します。
# chmod +x /usr/local/bin/zabbix_trap_receiver.pl
(4) 以下のコマンドを実行して、スクリプトのログ格納場所のディレクトリを作成します。
# mkdir /var/log/snmptrap
(5) 以下のコマンドを実行して、snmptrapdの設定ファイルの最後の行に追記します。以下の設定値は、SNMPのバージョンはSNMPv2で、コミュニティ名が「public」を使用することを想定しています。
# vi /etc/snmp/snmptrapd.conf
【追記内容】
authCommunity log,execute,net public
perl do "/usr/local/bin/zabbix_trap_receiver.pl";
(6) 以下のコマンドを実行して、snmptrapdサービスの起動及び自動起動をします。
# systemctl start snmptrapd
# systemctl enable snmptrapd
(7) 以下のコマンドを実行して、SNMP trapの送信テストを実行すると、ログファイルに格納されたことを確認します。
# snmptrap -v 2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3
# cat /var/log/snmptrap/snmptrap.log
⇒SNMP trapのログが出力されることを確認します。
(8) 以下のコマンドを実行して、zabbixサーバ側でSNMP trapの受信を有効にします。
# vi /etc/zabbix/zabbix_server.conf
【変更前】
# StartSNMPTrapper=0
【変更後】
StartSNMPTrapper=1
(9) 以下のコマンドを実行して、zabbix-serverサービスを再起動します。
# systemctl restart zabbix-server
(10) 以下のコマンドを実行して、ログローテーションを有効にします。
# vi /etc/logrotate.d/snmptrap
【設定内容】
/var/log/snmptrap/snmptrap.log {
daily
rotate 20
compress
delaycompress
missingok
notifempty
}
zabbix関連の記事
zabbix関連の記事は以下の通りです。
必要に応じて、ご確認ください。
No | タイトル | 記事の概要 |
---|---|---|
1 | zabbixのハンズオン形式での勉強 (構築、監視設定、アラート確認) | zabbixのおすすめの勉強方法をご紹介します。 |
2 | 仮想基盤構築(Virtualboxインストール) 〇Virtualboxバージョン6 〇Virtualboxバージョン7 | zabbixサーバを構築するための準備として、 仮想基盤のソフトウェアであるVirtualboxを インストールします。 |
3 | zabbixサーバのインストール 〇zabbixバージョン5.0 [仮想環境に構築] CentOS Stream 8、Ubuntu 20.04 [クラウド環境に構築] さくらインターネット、ConoHa VPS、 カゴヤ 〇zabbixバージョン6.0 [仮想環境に構築] CentOS Stream 8 〇zabbixバージョン7.0 [仮想環境に構築] CentOS Stream 9 | zabbixサーバを構築します。 |
4 | zabbixの監視設定の流れ | zabbixの監視設定の流れを理解します。 |
5 | zabbixの推奨の監視項目と zabbix agentのインストール ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | zabbixにて監視する推奨の項目と、 監視対象サーバにzabbix agentを インストールする手順を理解します。 |
5-1 | 死活監視(ping監視) ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | 死活監視の設定をします。 |
5-2 | TCP通信ポート応答監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | TCPの通信ポートの応答有無を監視する 設定をします。 |
5-3 | CPU使用率監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | サーバのOSのCPU使用率を監視する 設定をします。 |
5-4 | メモリ空き容量監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | メモリの空き容量を監視する設定をします。 |
5-5 | ドライブのディスク空き容量監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | ドライブのディスク空き容量を 監視する設定をします。 |
5-6 | プロセス監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | プロセスの停止を監視する設定をします。 |
5-7 | ログファイル監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | ログファイル中に特定のメッセージが 出力されたか監視します。 |
5-8 | ファイルの変更(チェックサム)監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | ファイルの内容が変わったことを 監視します。 |
5-9 | Windows OSのサービス状態監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | Windows OSのサービスの起動状態を 監視します。 |
5-10 | Windowsイベントログ監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | Windowsイベントログに特定のログが 出力されたか監視します。 |
5-11 | Webシナリオ(Webページ監視) ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | Webアクセス時のHTTPステータスコードが 200番であることを監視します。 |
5-12 | SNMP trap監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | 機器から送信されたSNMP trapを 受信したことを監視します。 |
5-13 | ネットワーク機器監視 ・zabbixバージョン5.0の場合 ・zabbixバージョン6.0の場合 ・zabbixバージョン7.0の場合 | ネットワーク機器の監視設定をします。 |
6 | zabbixの監視データの確認と メール通知設定 | 監視データの確認方法を理解します。 また、障害発生時のアラートメールの 通知設定をします。 |
7 | zabbixの詳細設計書(パラメータシート)の サンプル | zabbixのパラメータシートのサンプルを 記載します。 |
8 | 【仕事依頼】zabbixサーバの 要件定義、設計、構築 | zabbixの構築作業をご依頼いただける場合の 作業の流れなどを記載します。 |
zabbix関連の書籍
zabbixに関する設定を網羅的および詳細に学びたい場合、以下の書籍がおすすめです。
ページ数が多い書籍ですので、分からないことを調べる辞書の役割にもなります。