Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

[FreeBSD] FreeBSD 11.1にZabbix 3.4をインストールした私的な記録

More than 3 years have passed since last update.

Zabbixを動かそうと、久方ぶりにFreeBSD 11.1をインストールしました。
その記録です。

OSインストール前に

インストーラを用意します。

  1. USBメモリ用のイメージをダウンロードします。
  2. dd if=イメージファイル of=/dev/USBメモリのデバイス bs=1M conv=syncとしてブータブルUSBメモリを作成します。

OSインストール

昔と比べて、ウィザード形式っぽい一方通行のインストーラになりました。
画面に従っていけば終わっちゃいました。

以下は、インストール途中で寄り道したぶんです。

ルートファイルシステムのミラー化

HDDを2個付けてミラー化しました。

Partitioning画面で、「ZFS(Auto)」を選びます。
ZFS Configuration画面で次のように設定しました。

項目 内容
Pool Type/Disks mirrorを選ぶ
Force 4K Sectors 古いHDDなのでNoにしました
Partition Schema GPT
Swap Size 0(あとで作ります)
Mirro Swap No

メモリ3GBしかないので、ZFSのプリフェッチは使わないようにするよ、と言われてしまいました。

起動するサービス

System Configuration画面で以下のようにしました。

項目 設定
local_unbound
sshd x
moused
ntpd
powerd x
dumpdev

OSインストール後

グループ/ユーザの追加

pw group add mygroup -g 1000
adduser

プロキシ環境変数の設定

/etc/csh.cshrc
set proxy = http://proxy.local:8080     
setenv http_proxy $proxy                     
setenv https_proxy $proxy                    
setenv ftp_proxy $proxy                    

スワップの追加

zfs create -V 4G zroot/SWAP
zfs set org.freebsd:swap=on checksum=off compression=off dedup=off sync=disabled primarycache=none zroot/SWAP

再起動して確認

# swapctl -s -h -l
Device:            Bytes      Used:
/dev/zvol/zroot/SWAP       4.0G         0B
Total:              4.0G         0B

参照: https://wiki.freebsd.org/RootOnZFS#ZFS_Swap_Volume

アップグレード

freebsd-update fetch
freebsd-update install
reboot

portsの更新

portsnap fetch
portsnap extract

pkg使うから、いらなかったかも。。。

パッケージ管理システム

pkgコマンドを実行したら、自動的にインストールされました。便利極まりないですね。

# pkg 
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.10.1...
Extracting pkg-1.10.1: 100%
pkg: not enough arguments
Usage: pkg [-v] [-d] [-l] [-N] [-j <jail name or id>|-c <chroot path>|-r <rootdir>] [-C <configuration file>] [-R <repo config dir>] [-o var=value] [-4|-6] <command> [<args>]

For more information on available commands and options see 'pkg help'.

sudoをインストール

pkg install sudo
visudo

引き継ぐ環境変数と、sudoを使用できるグループを追記しました。

sudoers
Defaults env_keep += "http_proxy https_proxy ftp_proxy"

%wheel ALL=(ALL) ALL

root宛のメールを自分宛てに

vi /etc/aliases

root:自分のメールアドレスを追記します。

newaliases

メールをすべて特定ホストへ転送

cd /etc/mail
sudo make `hostname`.mc
sudo make `hostname`.mc

SMART_HOSTを追記します。

sudo vi `hostname`.mc
/etc/mail/ホスト名.mc
define(`SMART_HOST', `my.smtp.server')

ビルドしてsendmailを再起動します。

sudo make install
sudo make restart

Zabbixのインストールと設定

やっとこ本題のZabbixです。

MySQL/Zabbix/Nginxのインストール

MySQL/Zabbix/Nginxをインストール
sudo pkg install mysql56-server
sudo pkg install zabbix34-server
sudo pkg install zabbix34-frontend
sudo pkg install nginx

/etc/rc.conf.localファイルに追記します。

/etc/rc.conf.local
mysql_enable="YES"                           
zabbix_server_enable="YES"                   
php_fpm_enable="YES"                         
nginx_enable="YES"        

データベース作成

zabbix34-serverインストール時に、以下のメッセージが表示されました。

For Zabbix server and proxy daemons, as well as Zabbix frontend, a database is                                                                                                      
required. It is not needed to run Zabbix agent.                                                                                                                                     

% cd /usr/local/share/zabbix34/server/database                                                                                                                                      

MySQL:                                       
shell> mysql -u<username> -p<password>       
mysql> create database zabbix character set utf8;                                         
mysql> quit;                                 
shell> mysql -u<username> -p<password> zabbix < database/mysql/schema.sql                 
shell> mysql -u<username> -p<password> zabbix < database/mysql/images.sql                 
shell> mysql -u<username> -p<password> zabbix < database/mysql/data.sql             

指示に従ってデータベースを作成します。

MySQLを起動
sudo service mysql-server start
MySQLへ接続
mysql -u root
データベースとユーザを作成
create database zabbix character set utf8;
grant all on zabbix.* to `zabbix_user`@`localhost` identified by 'zabbix_pass';
テーブル等を作成
cd /usr/local/share/zabbix34/server/database/
mysql -u zabbix_user -p zabbix < mysql/schema.sql
mysql -u zabbix_user -p zabbix < mysql/images.sql
mysql -u zabbix_user -p zabbix < mysql/data.sql 

Zabbixサーバの設定と起動

/usr/local/etc/zabbix34/zabbix_server.conf
LogFile=/tmp/zabbix_server.log               

DBName=zabbix                                
DBUser=zabbix_user                           
DBPassword=zabbix_pass                       

Timeout=4                                    

LogSlowQueries=3000        
zabbixサーバを起動
sudo service zabbix_server start

Nginxの設定と起動

Zabbixフロントエンドを動かすためNginxを設定します。

ドキュメントルートを/usr/local/wwwにしました。
*.phpへのアクセスは、PHP FPMへ回すようにしました。

/usr/local/etc/nginx/nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout 65;

    server {
        listen 80;
        root /usr/local/www;
        index index.html index.htm index.php;

        location ~ [^/]\.php(/|$) {
             fastcgi_split_path_info ^(.+?\.php)(/.*)$;

             if (!-f $document_root$fastcgi_script_name) {
                 return 404;
             }

             fastcgi_index index.php;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_param HTTP_PROXY "";
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

             # include the fastcgi_param setting
             include fastcgi_params;
        }
    }
}
php-fpmとnginxを起動
sudo service php-fpm start
sudo service nginx start

ブラウザからhttp://ホスト名/zabbix34/へアクセスすると、こんな画面が表示されます。

image.png

Zabbixフロントエンドの設定

設定を進めると、こんなメッセージが表示されました。

  • Minimum required size of PHP post is 16M (configuration option "post_max_size").
  • Minimum required limit on execution time of PHP scripts is 300 (configuration option "max_execution_time").
  • Time zone for PHP is not set (configuration parameter "date.timezone").
  • PHP option "always_populate_raw_post_data" must be set to "-1"

指示に従い設定します。

/usr/local/etc/php/zabbix-required.ini
post_max_size = 16M
max_execution_time = -1
always_populate_raw_post_data = -1

[Date]
date.timezone = Asia/Tokyo
php-fpmを再起動
sudo service php-fpm restart

All OKになりました。

image.png

データベース接続先を設定します。

image.png

Zabbixサーバを指定します。

image.png

確認。

image.png

設定ファイル書き込めないから、自前でダウンロードして置きなさいと言われてしまいました。

image.png

ファイルを自前で置いて、[Finish]をクリック。
終わりました〜〜 :smile:

image.png

おしまい

初期パスワードはadmin/zabbixです。

image.png

ログインしたら、せっせと監視対象を追加していきましょう。

image.png

sengoku
テスト原理主義者。記事は日々の記録です。 美味しいご飯屋さんを探したくて作ったサイト → https://hokanchan.uart.dev/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away