Debian 9.3 温度監視用にZabbixの導入 (Linux自作PC 21)
当サイトではアフィリエイト広告を利用しています
Debian Stretch 9.3でZabbixを導入し、ディープラーニング・マイニングで常時稼働するマシンの監視を行います。
前回でnginxにphpの導入を行いました。本記事ではZabbixの導入を行います。
インストール
基本的に導入は公式の手順に沿って行います。
直接debファイルをDLしてインストールを行います。
$ wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb
$ sudo dpkg -i zabbix-release_3.4-1+stretch_all.deb
$ sudo apt update
mariadbでzabbix用システムユーザーを作成
DBでZabbix用のユーザーを作成します。
$ sudo mysql -u root -p
> CREATE USER zabbix;
> CREATE DATABASE zabbix CHARACTER SET utf8;
> GRANT ALL PRIVILEGES on zabbix.* TO zabbix@localhost IDENTIFIED BY '<システム用パスワード>' ;
> exit
server、フロントエンドのインストール
必要なパッケージのインストールを行います。 frontend-phpでapache2が入ってしまいますが気にせず進みます。 場合によってはapache2をsystemctlでstop, disableする必要があるかもしれません。
$ sudo apt install zabbix-server-mysql zabbix-frontend-php
Zabbixのデータベースのインポートは次のコマンドでおこないます。 結構時間かかるので注意しましょう。
$ sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u zabbix -p zabbix
Zabbixの設定
/etc/zabbix/zabbix_server.conf
で設定を記述します。適宜パスワードは書き換えてください。
$ sudo vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
Zabbixの起動
$ sudo systemctl start zabbix-server
$ sudo systemctl enable zabbix-server
としてサービスを起動してみると、/var/log/zabbix/zabbix_server.log
ではsnmp周りのエラーが起きているもようです。
ローカル監視ならネットワーク越しでzabbix-agentが利用できない際に使用するsnmpは不要だと思われるのですが、
どうやら設定からsnmpをOffにすることはできないようで、ソースコンパイル時に無効するオプションがある程度みたいです。
SNMPのインストール
snmpdは既に入っており、active状態になっていた。
Cannot find module (SNMPv2-MIB): At line 1 in (none)
Cannot find module (IF-MIB): At line 1 in (none)
Cannot find module (IP-MIB): At line 1 in (none)
などと表示されており、どうやらsnmp-mibs-downloaderが必要な模様。
$ sudo apt install snmp snmp-mibs-downloader
$ sudo systemctl restart zabbix-server.service
とりあえずこれでzabbix-sever起動時のエラーはなくなった。
動作確認
/etc/nginx/conf.d/default.conf
を次のように編集素たところ、zabbixへのアクセスは成功しました。
ただ、ディレクトリルートでアクセスするようになっており、サブディレクトリ化はできていません。
他に別のhttpサービス動かしたいならサブディレクトリ化しておく必要があります。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html;
root /usr/share/zabbix;
#index index.html index.htm;
index index.html index.htm index.php;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root /usr/share/nginx/html;
root /usr/share/zabbix;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
サブディレクトリ化
/etc/nginx/conf.d/default.conf
を次のように設定しました。
これでサブディレクトリ/zabbix/でアクセスできるようになりました。
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
# find file in requested path
if (-f $request_filename){
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?q=$1 last;
}
# pass the PHP scripts to FastCGI server
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
location /zabbix {
alias /usr/share/zabbix;
index index.html index.htm index.php;
# find file in requested path
if (-f $request_filename){
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^(.*)$ /zabbix/index.php?q=$1 last;
}
# pass the PHP scripts to FastCGI server
location ~ ^/zabbix/.+\.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^/zabbix(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
PHPの設定
/etc/php/7.0/fpm/php.ini
を編集して、以下の値を書き換えます。
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
[Date]
date.timezone = Asia/Tokyo
公式の手順に存在したalways_populate_raw_post_dataはphp7で非推奨なので未記載としています。
Zabbix-agentの導入
ローカルの監視にzabbix-agentを導入して起動しておきます。
$ sudo apt install zabbix-agent
$ sudo systemctl enable zabbix-agent
$ sudo systemctl start zabbix-agent
参考
公式の手順以外には次の記事を参考にしました。
今後
Zabbixの導入が行えたので、次はZabbixの設定を行っていきます。