眠っていたラズパイを起こしてZabbix入れたった その参

このブログは、大国魂(ITブログ) Advent Calendar 2018 の13日目です。
Advent Calendar も折り返し地点ですね。時間が過ぎるのは早いものです。

前回のおさらいと今回やること

前回は ラズパイにZabbixサーバーを入れる前の下地作りとして、SSHを有効にしたりユーザーの権限周りの設定をしました。
今回(やっと)Zabbixをインストールしますが、そのデータ領域としてUSBフラッシュメモリを使用しますので、先にそちらをマウントしてからインストールの流れで進めていきます。

USBメモリのマウント

USBメモリをZabbix(MySQL)のデータ領域にしようとしたのはMicroSDカードの書き換え回数上限を気にして、というのが発端です。
しかしながらよく考えれば同じNANDフラッシュメモリの部類に入るUSBメモリも、その点においては一緒でしたねw
話が少し逸れるかもしれませんが、耐久性を考慮するのであればSLCやMLCのものを検討するのが無難でしょう。(今回使用しているMicroSDとUSBメモリは安価な物なのでTLCでしょう。)

とりあえず今回のはデータ領域とシステム領域を物理的に分けるっていうのが趣旨ってことで。

まずはUSBメモリを挿入し、デバイスとして認識していることを確認します。

$ lsusb
Bus 001 Device 004: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive #恐らくコレ
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
fdisk でフォーマットをします。
$ sudo fdisk /dev/sda
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 7.3 GiB, 7811891200 bytes, 15257600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaeb06f67

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1        2048 15257599 15255552  7.3G 83 Linux
ファイルシステムを作成します。
$ sudo mkfs.ext4 /dev/sda1
起動時にマウントするよう /etc/fstab を書き換えます。
$ sudo vi /etc/fstab
$ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p6  /boot           vfat    defaults          0       2
/dev/mmcblk0p7  /               ext4    defaults,noatime  0       1
/dev/sda1       /data           ext4    defaults,noatime  0       0
# a swapfile is not a swap partition, no line here
マウント用に /data ディレクトリを作成してそこへマウントします。
$ sudo mkdir /data
$ sudo mount /dev/sda1 /data
$ df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         13G  4.9G  6.9G   42% /
devtmpfs         460M     0  460M    0% /dev
tmpfs            464M     0  464M    0% /dev/shm
tmpfs            464M   12M  452M    3% /run
tmpfs            5.0M  4.0K  5.0M    1% /run/lock
tmpfs            464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p6    68M   23M   46M   33% /boot
tmpfs             93M     0   93M    0% /run/user/1001
/dev/sda1        7.1G   33M  6.7G    1% /data

Zabbixのインストール

バージョンは今年安定版(LTS)としてリリースされた4.0にします。
ありがたいことに早速Raspbian向けのパッケージが提供されているので、それを使います。
手順はこちらの公式ページを参考にしています。

ます初めにリポジトリをダウンロードしてインストールします。
リポジトリ一覧の更新もしておきます。
$ sudo wget https://repo.zabbix.com/zabbix/4.0/raspbian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
$ sudo dpkg -i zabbix-release_4.0-2+stretch_all.deb
$ sudo apt update
zabbix-server-mysql zabbix-frontend-php をインストールします。
名前から想像できますが前者にはMySQL(MariaDB)、後者にはApacheとPHPが含まれています。
$ sudo apt install zabbix-server-mysql
$ sudo apt install zabbix-frontend-php
インストールが完了したらMySQLとApacheのプロセスが動作していることを確認します。
$ ps -ef | egrep 'mysql|apache'
root      4369     1  0 01:44 ?        00:00:00 /bin/bash /usr/bin/mysqld_safe
mysql     4514  4369  0 01:44 ?        00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/arm-linux-gnueabihf/mariadb18/plugin --user=mysql --skip-log-error --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
root      4515  4369  0 01:44 ?        00:00:00 logger -t mysqld -p daemon error
root      4941     1  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4945  4941  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4946  4941  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4947  4941  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4948  4941  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  4949  4941  0 01:59 ?        00:00:00 /usr/sbin/apache2 -k start
設定ファイルを編集してデータ領域をUSBメモリ側に指定します。
デフォルトのDB達もUSBメモリ側へお引越しさせます。
$ sudo systemctl mysql stop
$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
#下記を /data/mysql へ書き換え
datadir  = /var/lib/mysql
$ grep 'datadir' /etc/mysql/mariadb.conf.d/50-server.cnf
datadir  = /data/mysql
$ cp -rp /var/lib/mysql /data/
$ sudo systemctl mysql start
再びMySQLが問題なく起動していることを、今度は systemctl status にて確認します。
注目すべきは、 mysqld のデータディレクトリを指定する起動オプション --datadir が /data/mysql にちゃんと変わっているところです。
$ sudo systemctl status mysql
● mysql.service - LSB: Start and stop the mysql database server daemon
   Loaded: loaded (/etc/init.d/mysql; generated; vendor preset: enabled)
   Active: active (running) since Thu 2018-12-13 01:44:21 JST; 47min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/mysql.service
           ├─4369 /bin/bash /usr/bin/mysqld_safe
           ├─4514 /usr/sbin/mysqld --basedir=/usr --datadir=/data/mysql --plugin-dir=/usr/lib/arm-linux-gnueabihf/mariadb18/plugin --user=mysql --skip-log-error --pid-file=/var/run/mysqld/mysqld.pid --s
           └─4515 logger -t mysqld -p daemon error

今回のまとめ

Zabbixのデータ領域として用意していたUSBメモリをマウントして、Zabbixサーバーのインストールまで実施しました。
Zabbixのインストールについては、Rasbian向けにパッケージが用意されていたのでありがたかったです。
正直なところARM向けのパッケージはまだ無いかな〜と思っていました。
次回はZabbixのデータベースを作成して、初期設定を実施していきます。
今回はこの辺で。

コメント