2 min read
鯖の監視にZABBIXを使ってみた
なんとなく鯖のリソースの監視などをしてみたかったのでZABBIXを使ってみた。
nagiosがかなり有名みたいだけど気に入ったUIのバージョンを入れようとしたらDebianは無理って言われたからZABBIXにしました
ダウンロードと鍵の追加とインストール
$ wget http://repo.zabbix.com/zabbix/3.2/debian/pool/main/z/zabbix-release/zabbix-release_3.2-1+jessie.tar.gz
$ tar xzvf zabbix-release_3.2-1+jessie.tar.gz
$ sudo apt-key add zabbix-release/zabbix-official-repo.gpg
$ sudo sh -c 'echo -e "deb http://repo.zabbix.com/zabbix/3.2/debian jessie main\ndeb-src http://repo.zabbix.com/zabbix/3.2/debain jessie main" > /etc/apt/sources.list.d/zabbix.list'
$ sudo apt install zabbix-server-mysql zabbix-frontend-php
MySQLのパスワード設定を求めてくるので入力する
$ mysql -uroot -p
> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by '{password}';
> quit
ZABBIXの初期DBをぶち込む
$ zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p {password}
ZABBIXサーバーの設定を書き換え
/etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword={password}
タイムゾーンを東京に設定
sudo sed \
-e 's/# php_value date.timezone Europe\/Riga/php_value date.timezone Asia\/Tokyo/g' \
-i /etc/zabbix/apache.conf
ポートの開放とZABBIXの起動
$ sudo ufw allow 80/tcp
$ sudo ufw allow 10051/tcp
$ sudo service zabbix-server start
$ sudo service apache2 restart
http://server_addr/zabbix
のWebUIにて設定する
グラフの文字がおかしくなるのでフォントを入れる
ipagp.ttf
はどっかから持ってくる
$ sudo mv ipagp.ttf /usr/share/zabbix/fonts/
$ sudo sed -e 's/graphfont/ipagp/g' -i /usr/share/zabbix/include/defines.inc.php
zabbix-agentのインストールと起動
一発でインストールできてコンフィグをいじればいいだけなので楽。
192.168.1.99はZABBIXサーバーのIP。適宜変更して
$ sudo apt install zabbix-agent
$ ZABBIX_SERVER="192.168.1.99"
$ sudo sed \
-e "s/Server=127.0.0.1/Server=$ZABBIX_SERVER/" \
-e "s/ServerActive=127.0.0.1/ServerActive=$ZABBIX_SERVER/" \
-e 's/Hostname=Zabbix server/#Hostname=Zabbix server/' \
-e 's/# HostnameItem=system.hostname/HostnameItem=system.hostname/' \
-i /etc/zabbix/zabbix_agentd.conf
$ sudo service zabbix-agent restart
$ sudo ufw allow 10050/tcp
自動起動
Server
sudo systemctl enable zabbix-server.service
Agent
sudo systemctl enable zabbix-agent.service
agentのインストール、コンフィグ書き換え、ポート開放、自動起動
192.168.1.99適宜変更
sudo apt update && \
sudo apt install -y zabbix-agent && \
ZABBIX_SERVER="192.168.1.99" && \
sudo sed \
-e "s/Server=127.0.0.1/Server=$ZABBIX_SERVER/" \
-e "s/ServerActive=127.0.0.1/ServerActive=$ZABBIX_SERVER/" \
-e 's/Hostname=Zabbix server/#Hostname=Zabbix server/' \
-e 's/# HostnameItem=system.hostname/HostnameItem=system.hostname/' \
-i /etc/zabbix/zabbix_agentd.conf && \
sudo service zabbix-agent restart && \
sudo ufw allow 10050/tcp && \
sudo systemctl enable zabbix-agent.service
nginx + php7.0で運用する
- apache2はpurge可能
- php5は依存関係の問題でphp7との共存必須
nginxとphp7.0の鍵を追加してインストール
sudo su
echo -e "deb http://nginx.org/packages/debian/ jessie nginx\ndeb-src http://nginx.org/packages/debian/ jessie nginx" > /etc/apt/sources.list.d/nginx.list
wget http://nginx.org/keys/nginx_signing.key && apt-key add nginx_signing.key && rm nginx_signing.key
echo "deb http://packages.dotdeb.org jessie all" > /etc/apt/sources.list.d/php.list
wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg && rm dotdeb.gpg
apt update && apt install nginx php7.0-fpm && exit
zabbixのWebUIを開いてセットアップしてると足りないものや上限の低いものの警告が出るので、それに従って設定する
例)
- upload_max_filesizeなどphp7.0の設定は/etc/php/7.0/fpm/php.ini
- PHP mbstringがfailの場合はapt install php7.0-mbstring
nginxの設定
server {
listen 80;
server_name SERVERNAME;
root /usr/share/zabbix;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param CI_ENV production;
include fastcgi_params;
}
}
こんな感じでできるはず
ずいぶん前に構築した時のメモを参考に記事を書いたので少し違うところがあるかもしれない