Zabbixを自宅に導入してみよう
なぜ自宅に入れようと思ったのか
いままでは開発の部署にいたのだが、クラウドの保守運用をやるようになり、普段はZabbixではないツールを使って監視をしているのだが、いまいち使いこなせないのと、実際に好き勝手やってみたかったので、2年前にRaspberryPiを買っていたが何も触らずに放置していたので、引っ張り出した。Linuxも触ったことがなかったのと、普段使っているツールをRaspberryに入れいている事例が見当たらなかったので、Zabbixを選択した。
導入環境
- OS:Debian 10.8
- zabbix_server:(Zabbix) 5.2.5
- PHP:7.3.27
- Apache:2.4.38
- MariaDB:10.3.27
RaspberryPiの基本設定
OSの準備
'Raspberry Pi Imager'を使用した。
OSの選択はデスクトップなしの「Raspberry Pi OS Lite(32-bit)」(Linuxのコマンドに慣れたかったため)
起動
初期アカウントは以下の通り
- User:pi
- PW:raspberry
とりあえず、ログインまではできた
RaspberryPiの初期設定
初めてLinux関連を触るのでコマンドを知らなければどこまで設定しておいた方が良いのか、何をして良いのかわからなかったので、Qiitaで検索して、以下のページを参考にさせていただきました。
sudo raspi-config
- wifi設定
- ロケーション設定
- SSHの有効化
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
- OSやパッケージの更新作業
- 「static ip_address=192.168.XXX.XXX/24」(固定するIP)を追記
sudo vi /etc/dhcpcd.conf
- SSH認証用の証明書作成
- こちらは「ラズパイ入手したらまずやること、デフォルトユーザーとSSHログイン認証を変更する」を参考にした
- cyberduckを使って作成した証明書ファイルをダウンロード
- Macbookより接続できたかの確認を行う
■raspberrypi側
sudo ssh-keygen -t rsa
cd /home/[user]
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
■Macbook側
ssh -i ~/id_rsa [user]@raspberrypi.local
上記以外にやったり詰まったところ
- Macでは勝手に名前解決してくれることを知った「ping raspberrypi.local」で疎通完了
ping raspberrypi.local
- 前に使ってた時のキャッシュ?が残っていて下記のようなエラーメッセージでmacbookからraspberrypi.localでSSH接続ができなかった
- エラーに記されているファイルmacbook側の「/Users/user/.ssh/known_hosts」内にある行を削除する
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- セキュリティ強化のため、初期ユーザー'pi'は、新しく作ったユーザーに全権限を移行してから削除
sudo adduser [newuser]
sudo usermod -G pi,adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio [newuser]
sudo userdel -r pi
Zabbix Serverのインストール
以下のページを参考にさせていただきました。
Apacheのインストール
sudo apt install apache2
apache2 -v →バージョン確認
PHPのインストール
ここだけ参考通りに行かなかったので、別のやり方でインストール
sudo apt-get install php →ここで7.3.27がインストールされる
php -v
sudo apt install php7.3-gd php7.3-bcmath php7.3-xml php7.3-mbstring php7.3-mysql
sudo vi /etc/php/7.3/apache2/php.ini
[[mbstring.language = Japanese <== コメントアウト解除]]
sudo apt install php7.3-fpm
sudo systemctl restart apache2
自分はPHP環境の動作確認も行いました。問題なくPHPの情報が表示されました。
MariaDBのインストール
sudo apt install mariadb-server-10.3
sudo mysql_secure_installation
sudo mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to root@localhost identified by 'password' with grant option;
Zabbix監視サーバのインストール
wget https://repo.zabbix.com/zabbix/5.2/raspbian/pool/main/z/zabbix-release/zabbix-release_5.2-1+debian10_all.deb
sudo dpkg -i zabbix-release_5.2-1+debian10_all.deb
apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
初期データベースの作成
systemctl status mariadb
sudo mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user zabbix@localhost identified by 'password';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
初期スキーマ及びデータのインポート
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Zabbixサーバの接続データベース設定
sudo vi /etc/zabbix/zabbix_server.conf
[[DBPassword=password <== パスワードを記入]]
Zabbixサーバおよびagentプロセスの起動
systemctl status apache2
systemctl status zabbix-server
systemctl status zabbix-agent
Zabbixサーバおよびagentプロセスの自動起動設定
sudo systemctl enable zabbix-server zabbix-agent
Zabbix起動確認と基本設定
http://raspberrypi.local/zabbix へ接続する。
画面で表示される通りに設定を行なっていく
上記の設定が完了すると、ZabbixServer(RaspberryPi)の監視のみ可能となっている。
Zabbix Agentのインストール
今回は自宅で使用しているWindows10 Proにagentを追加してみる
インストーラーのダウンロード
以下のサイトからagentのインストーラーをダウンロード
Download and install Zabbix
インストーラーの実行
インストール作業が完了しました。
念の為Windowsサービスに登録されているかの確認を行う。
問題なさそう。
ホストの追加
ログイン→設定→ホストの順序で上記の画面まで遷移する。
遷移後に右上にある「ホストの作成」をクリックする。
以下のような設定を行う。
設定が完了次第、追加ボタンをクリック
追加できたかの確認
しばらく経つと追加したPCのagentから情報を取得することができ、ダッシュボードに変更が反映される。
agentの追加作業は以上にする。
やってみての感想
Linuxとかの勉強も一緒にできるからいいかなと思ってやってみたけど、Linuxの設定だったり、Vimのコマンドに手こずったけど、最初に「RasoberryPi Zabbix」で検索して、Ingenious Siteのサイトがわかりやすく、全て書かれていたので、思った以上にスムーズに構築することができたのはよかった。Windows10上にVM環境でいくつかサーバーをたてて、監視の設定やトリガー設定など色々と統合監視ツールと言われることを試していきたい。
今週中に色々とお試しで触って設定関連の記事もそのうち出していきたい。