6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

raspbian(debian系)+zabbix5.0alphaで監視サーバーを構築

Posted at

raspbian(debian系)+zabbix5.0alphaで監視サーバーを構築

ラズパイが余ったのとサーバー監視を楽にしたいので2回目の初投稿です。

少し前にアルファ版が発表されたzabbbix5.0で監視サーバーを組んでいきます。

ハードウェア raspberryPi 1 B+ SDカードはトランセンド製32GB class10

OS raspbian buster lite(デスクトップ画面がない方)

環境 nginx(最新版) + mariaDB(最新版) + zabbix5.0alpha1

1B+と骨董品気味ですが案外動きます、欲張らない限り

sudo派なのでsudoが付いてます。必要に応じてrootに読み替えてください。

selinuxはraspbianに搭載されていないです、今回はリソースが少ないので実装も見合わせました。

debian系とタイトルに書いたのは、zabbixのdebian系での構築例が少なく情報が陳腐化してること。最新版の構築事例があれば自分も含め助けになると思い記述しました。あと閲覧数稼ぎ

zabbixの宣伝

  • GNUライセンスの監視ツール
  • webベースでラクラク操作、もちろん問題発生時のメールやSMSでの通知機能も完備
  • かなり幅広く構築できる、それはもう設定多すぎて困るほどに

とにかく監視を楽にできるツールです。これで毎日ログを眺める作業とはおさらば!

最新版ではslackへの通知機能が実装されるなど新機能の開発にも積極的です。

ローカル編

  • sshの有効化
  • 鍵認証のみ変更

raspbian向けに書いてありますが、ユーザー名とパスワードを読み替えればdebian系でも使えると思います。

昨今のssl化の流れに乗って鍵ログインのみにします。

ユーザー名pi パスワードraspberryでログイン(たまに忘れる)

ホスト...サーバー、zabbixを導入する方

クライアント...SSHで遠隔操作する方

[ホスト]ユーザーを追加する

sudo adduser [ユーザー名]

パスワードを2回入力、あとはエンター連打

新しいユーザーにsudo権限を与える

sudo gpasswd -a [ユーザー名] sudo

[ホスト]新しいユーザーでログイン & デフォルトユーザーの削除

セキュリティ上piはリスクが高いので消します、デフォルトユーザーは特に狙われやすい

sudo userdel pi

[ホスト]sshを有効にする

sudo mkdir /boot/ssh

[ホスト]sshを有効化するため再起動

sudo reboot now

[ホスト].sshディレクトリの作成

cd ~/

mkdir .ssh

[クライアント]クライアントからssh__公開鍵__を送信する

秘密鍵を送信しないように(1敗)

scp ssh鍵.pub [ユーザー名]@IPアドレス

[ホスト側]認証キーに追加

cat [先程送信した公開鍵] >> authorized_keys

[クライアント] ログインできるか確認

ssh -i [ssh鍵] [ユーザー名]@IPアドレス

ログインメッセージが出れば成功

パスワード認証の無効化

総当たりになんて屈しない!

ヒント: 英字キーボード コロン -> shift+セミコロン 操作が変なのでviで:set nocompatibleと入力すると楽になる。

sudo vi /etc/ssh/sshd_config

#Password Authentication yes

Password Authentication noに変更する

sshの再起動

sudo systemctl restart sshd

[ホスト側の操作] パスワードログインが禁止されていることを確認する

ssh [ユーザー名]@IPアドレス

Permission denied (publickey).と門前払い拒否されれば成功です

サーバー設定編

  • ミラーを変更する
  • nginx,PHP,MariaDBのインストールと最低限の設定

以後設定はssh経由で行います、理由は

  • 日本語キーボード用に設定や画面変更などハードウェア由来の設定が面倒
  • コピペができる

.vimrcを編集する

そのままだとキー操作が変な反応をするので

sudo vi ~/.vimrcを開き

set nocompatible

set number

今度はsudo vi /root.vimrcに追記する

を追記

ミラーを日本版に

raspbianは本家からだと遅すぎるため、日本のミラーサイトを利用させていただきます。

sudo vi /etc/apt/source.list

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpiから

#deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

最終行に追記(jaistさんいつもお世話になってます)

deb http://ftp.jaist.ac.jp/raspbian buster main contrib non-free rpi

これでかなり速度が改善されます

いつものアップデート

sudo apt update

sudo apt upgrade

RaspberrypPi 1B+だったのでまぁまぁ時間がかかりました

nginxを設定

apache2より軽量と噂があるのでnginxにします。

raspbianのaptだとあまりにも古いので最新版を本家から落とします。

本家の鍵を登録

wget http://nginx.org/keys/nginx_signing.key

sudo apt-key add nginx_signing.key

リポジトリを追加

sudo vi /etc/apt/sources.list

deb http://nginx.org/packages/debian/ buster nginx
deb-src http://nginx.org/packages/debian/ buster nginx

サービスを起動

sudo systemctl start nginx

http://対象のIPアドレス にアクセスしてnginxの質素なウェルカムページを拝む

PHPの設定

webインターフェースに必要なので入れる。

急いで7.4や8.0にすることもないので7.3をインストール

sudo apt install php7.3-fpm php7.3-mysql

nginxでPHPを動作させるための設定

sudo vi /etc/nginx/sites-available/default

index(44行目くらい)にindex.phpを追記

56(locationから始まる行)57(include)60(fastcgi_pass)63行目(}だけ記述されてる行)のコメントアウトを削除する

PHPの方の設定

sudo /etc/php/7.3/fpm/php.ini

;cgi.fix_pathinfo=1をcgi_pathinfo=0にする

テストページの作成

sudo vi /var/www/html/test.php

<?php phpinfo();?>を書き込んで保存

nginxを再起動

sudo systemctl restart nginx

IPアドレス/test.phpにアクセスしてphpの情報一覧が出たらPHPの動作確認完了

Mariadb

今回は同じOSにインストールしましたが、外部のDBに設定することもできるようです。その場合はmysqlの設定時に外部DBの情報を記述すればいけるようです。

sudo apt install mariadb-server

セキュリティの向上とrootパスワードを簡単に設定します

sudo mysql_secure_installation

Enter current password for root [enterで無視]

Set root password? [Y/n] Y

New password: [mysqlのパスワード]

Re-enter new password: [mysqlのパスワード]

後はエンター連打、thankyouとかなんとか出てきて待機状態になったらOK

Zabbix5.0の設定

  • zabbixのインストール(wget)
  • web管理画面が出るまでの設定
  • 実際にホストを監視してデータを取る

動作に必要な最低限の設定しかしてません。

zabbixのインストール

zabbixのレポジトリを追加

sudo wget https://repo.zabbix.com/zabbix/4.5/raspbian/pool/main/z/zabbix-release/zabbix-release_4.5-1%2Bbuster_all.deb

zabbixのレポジトリを追加

sudo dpkg -i zabbix-release_5.0-2+buster_all.deb

インストール

sudo apt install zabbix-server-mysql zabbix-agent zabbix-frontend-php

mysqlデータを生成する

mysql -u root

create database zabbix CHARACTER SET UTF8;

grant all on zabbix.* to zabbix@localhost identified by 'Jack11Fire';

webサーバーとシンボリックリンクで繋げる

cd /var/www/html

ln -s /usr/share/zabbix zabbix

sudo systemctl restart nginx

ブラウザで IPアドレス/zabbix にアクセスできる

エラーが出ないようにphp.iniを編集する

設定を進めるとweb画面上で修正が必要なエラーが色々出てくるのでphp.iniを編集します。

sudo vi /etc/php/7.3/fpm/php.ini

post_max_size = 8M -> post_max_size = 16M

max_execution_time = 30 -> max_execution_time = 300

max_input_time = 60 -> max_input_time = 300

;date.timezone = -> date.timezone = Asia/Tokyo

編集が終わったら一通り再起動する

sudo systemctl restart php7.3-fpm

Zabbixにログインする

初期は

user Admin

パスワード zabbix

でログインできます

zabbixクライアントの設定(監視対象での操作)

クライアント の構成

ハードウェア raspberryPi 1B+

OS raspbian buster

SSH経由で操作

zabbixエージェントのインストール

本家からwgetで取得してきます、RHELやDebianで違うパッケージが配布されてるので注意してください。

http://repo.zabbix.com/zabbix/にアクセスしてバージョン->raspbian->pool->main->z->zabbix-releaseからバージョンに合うファイルのtarファイルの__URLをコピーして保存する__

たまにホームディレクトリがない場合があるのでディレクトリは/tmpを使う

cd /tmp

sudo wget [さっきコピーしたURL]

今回使ったコマンド

sudo wget https://repo.zabbix.com/zabbix/4.5/raspbian/pool/main/z/zabbix-release/zabbix-release_4.5-1%2Bbuster.tar.gz

sudo dpkg -i zabbix-release_4.5-1+buster_all.deb

zabbixの監視ツールであるzabbix-agentをインストールする

sudo apt install zabbix-agent

zabbix-agentの設定を変更

Server=127.0.0.1 -> Server=[zabbixサーバーのIPアドレス]

ServerActive=127.0.0.1 -> Server=[zabbixサーバーのIPアドレス]

Portのコメントアウトを解除

zabbix-agentの再起動

systemctl restart zabbix-agent

実際に監視できるようにする(Web上での操作)

zabbixサーバーから監視できるようにする

タブ上部のConfiguration -> Hosts -> 右上のCreate Host から追加

Host nameは名前

GroupはLinux serversを選択

Portは10050

グループに追加

タブ上部のConfiguration -> Host groups -> 右上の Create groupを押す

グループ名をお好きな名前で指定(以後[ホストグループと記述])

テンプレートを複製

zabbixは監視する内容をテンプレートで管理します、今回はデフォルトのテンプレートをコピーしたものをいじります。

デフォルトで80個ほどテンプレートが入ってるらしいので、検索する

Configuration -> Template -> 上の方の検索窓に[Templates OS] -> applyで適用

多分検索が適用されるはず。

Template OS Linux by Zabbix agentをクリック

テンプレート名やテンプレートの説明が書いてある画面になれば成功。

下部にFull cloneというボタンをクリック、名前を適当に変更して(今回は雑に戦闘に2を付けた)Addを押して追加

ホストの追加

変更するのは以下の点

Host name -> エージェントに設定した名前

Groups -> [ホストグループ]

Agent interfaces -> IPアドレスを監視対象のIPアドレス

タブTemplatesを選択 -> Link new templatesという項目に検索窓があるのでOS Linux と入力して先程追加したグループをクリックする。

あとはUpdateを押してOK。

最初ホストをテンプレートに含めればいいと思ってなかなかデータが収集されませんでした(5敗)

トラブルシューティング

zabbixのweb画面でであれが出ない!これが出ない

admin(最高権限)がないと一部の機能が拒否されますので、adminで入り直してください。

create.sql.gzがない

zabbix4.0で入れたらそうなりました(3敗)詳しくは知りませんがバージョンによってはあったりなかったりするそうです。

zabbixのweb管理画面でどこにあるか分からない

F3キー、zabbixは文字でかなりの範囲を自動生成しているので検索が効きます。

初期設定のデータベース設定の時にPostgreSQLしか出てこない

php-mysqlがないと出てこないそうです(1敗)

sudo apt install php7.3-mysql

zabbix上でデータが反映されない

ビールでも飲んでリラックスしなぁ。

ログをマメに取るようにすれば問題ないようですが、ディスクを圧迫するのが難点です。

キーボードが言うことを聞かない

ローカルで操作するときだけ稀によく英語用キーボードになっている、日本語キーボードと一部キー入力が違う文字があります。設定すれば対策は可能なのですが、SSH経由で入力した方が楽なので設定は省きました。

"~" shift+]

":" shift+;

参考

参考にさせていただきました


6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?