想ひ出21: GCP/CloudSQL/Nginx/Zabbix4.0/Grafana5.3/Slack
おはようございます、moqrinです。
今記事は、Zabbix4.0がリリースされたそうなので、
なるほど。とりあえずGCPで設定してみた、というだけの備忘録です。
基本的には下記の素晴らしい諸先輩方に依っておりますので、
わたしのクソブログでなくてもOKです!
だいたい下記、手動で対応して45分くらいですかね。。
やること
1. 準備しよう
2. Zabbix,MySQL5.7のインストール
3. Zabbix データベースとユーザーを作成
4. Zabbix-server設定
5. Zabbix-webの権限周り設定
6. Nginx php-fpmの設定
7. Zabbixの設定
8. Grafana導入
9. Zabbixエージェントの設定
10. (ついでに)Slackアラート
1. 準備しよう
とりあえずCloudSQLを作成しておきましょう。(ちょっと時間かかるしね。)
(ZabbixサーバーとSQLインスタンスのリージョン&ゾーンを合わせておくとローカルIPで接続できるね!)
Port | Use | Server |
---|---|---|
80 or 443 | http or https | Zabbixサーバー |
3000 | Grafana | Zabbixサーバー |
10050 | Zabbixサーバー → Zabbixエージェント | 監視サーバー(Zabbixサーバー含む) |
10051 | Zabbixエージェント → Zabbixサーバー | Zabbixサーバー |
Remiリポジトリのインストールします。
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
php7.2を利用するためにリポジトリ編集しておきます。(php7.3でも良いけど。)
# vim /etc/yum.repos.d/remi.repo - enabled=0 + enabled=1
# vim /etc/yum.repos.d/remi-php72.repo - enabled=0 + enabled=1
悪さするみたいなので、SELINUXさんを落とします。
# vim /etc/sysconfig/selinux - SELINUX=enforcing + SELINUX=disabled
そして再起動。
reboot
(いちおう確認しときますか。)
getenforce
2. Zabbix,MySQL5.7のインストール
Zabbix4.0インストールします。
参考URL:
Install and configure Zabbix server
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent zabbix-get
mysql5.7インストールしまーす。(CloudSQLがMySQL5.7だから)
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum install -y --enablerepo=mysql57-community mysql-community-server
確認しときます。
zabbix_server -V
3. Zabbix データベースとユーザーを作成
Cloud SQLが接続できるようになっているか、設定を確認しておきます。
DBに接続します。
mysql -u root -h CLOUD_SQL_IP_ADDRESS -p
データベースおよびユーザーを作成します。
CREATE DATABASE zabbix character set utf8 collate utf8_bin; CREATE USER zabbix@'%'IDENTIFIED BY 'YOUR_DB_PASSWORD'; GRANT ALL ON zabbix.* TO zabbix@'%';
初期データ、スキーマを投入します。
cd /usr/share/doc/zabbix-server-mysql-4.0.1 zcat create.sql.gz | mysql -u zabbix -h Cloud_SQL_IP_ADDRESS -p zabbix
4. Zabbix-server設定
# vim /etc/zabbix/zabbix_server.conf # DBHost=localhost DBHost=CLOUD_SQL_IP_ADDRESS ... DBPassword=YOUR_DB_PASSWORD
起動しちゃいましょう。
systemctl start zabbix-server ; systemctl enable zabbix-server systemctl status zabbix-server
ついでにエージェントも起動。
systemctl start zabbix-agent ; systemctl enable zabbix-agent systemctl status zabbix-agent # 確認 zabbix_agentd -V
Zabbixサーバー自身からエージェントバージョンを確認します。
zabbix_get -s 127.0.0.1 -k agent.version
5. Zabbix-webの権限周り設定
必要なものインストール。
yum -y install nginx php-fpm wget
デフォルトapacheからnginx仕様に変更していきます。
ls -la /var/lib/php/ cd /var/lib/php/ chown -R nginx:nginx ./*
cd /etc/zabbix ls -ld web chown nginx:nginx web cd /var/www/html ln -s /usr/share/zabbix .
6. Nginx php-fpmの設定
nginx設定
# vim /etc/nginx/conf.d/zabbix.conf server { server_name YOUR_HOST_NAME; root /var/www/html/zabbix; index index.html index.php; access_log /var/log/nginx/zabbix/access.log main; error_log /var/log/nginx/zabbix/error.log error; location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
php-fpm設定
# vim /etc/php-fpm.d/www.conf -user = apache +user = nginx -group = apache +group = nginx
php.ini設定
※ やっておかないとこんな感じで後でZabbixに怒られます。
# vim /etc/php.ini -max_execution_time = 30 +max_execution_time = 300 -max_input_time = 60 +max_input_time = 300 -post_max_size = 8M +post_max_size = 32M +date.timezone = Asia/Tokyo
それぞれ起動します。
systemctl enable php-fpm ; systemctl start php-fpm systemctl enable nginx ; systemctl start nginx
ホスト設定してURL叩きます。
# vim /etc/hosts
ZABBIX_SEVER_IP_ADDRES YOUR_HOST_NAME
7. Zabbixの設定
初期ログインは、下記です。
Username:Admin Password:zabbix
何か問題があったらこちらを確認するだす!
tailf /var/log/zabbix/zabbix_server.log
設定を進めていきます。
パスワードと言語を更新しておきますー。
8. Grafana導入
次は、ZabbixのデータをGrafanaで見れるようにします。
参考URL:
Download Grafana
Grafana-Zabbix plugin Installation
とりあえず記載されている通り、Grafanaをインストール。
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.2-1.x86_64.rpm
yum localinstall -y grafana-5.3.2-1.x86_64.rpm
Grafana-Zabbixプラグインをインストールして起動させます。
grafana-cli plugins list-remote grafana-cli plugins install alexanderzobnin-zabbix-app systemctl restart grafana-server ; systemctl enable grafana-server
ZabbixでGrafanaグループを作成して権限を付与してユーザー設定します。
(この例だとZabbix serversしか閲覧付与していないけど。。)
Grafanaの設定をします。(ホスト名:3000です。)
初期ログインIDとパスワードは「admin」です。
参考URL:
Zabbixの監視情報をGrafanaでグラフィカルなダッシュボードにしてみた
なお、/grafanaでgrafanaログインに遷移したい場合は下記を追記します。
# /etc/nginx/conf.d/nginx.conf location /grafana/ { proxy_pass http://localhost:3000/; proxy_set_header Host $host; }
# vim /etc/grafana/grafana.ini [server] root_url = %(protocol)s://%(domain)s/grafana/
9. Zabbixエージェントの設定
監視対象となるサーバーで対応していきます。
Zabbix4のリポジトリを追加してエージェントをインストールします。
(これはサーバー構築するときにAnsibleで対応しちゃえばいいねー・・・)
参考URL:
VirtualBox Zabbix3.0 エージェント構築
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum -y install zabbix-agent
エージェントの設定を編集していきます。
# vim /etc/zabbix/zabbix_agentd.conf # Zabbixサーバからのリモートコマンドを許可 - EnableRemoteCommands=0 + EnableRemoteCommands=1 # ZabbixサーバのIPアドレスを設定 - Server=127.0.0.1 + Server=ZABBIX_SEVER_IP - ServerActive=127.0.0.1 + ServerActive=ZABBIX_SEVER_IP
Zabbixエージェントの起動と自動起動設定
systemctl enable zabbix-agent ; systemctl start zabbix-agent # 確認 zabbix_agentd -V
Zabbixサーバ 疎通テスト
Zabbixサーバー側で下記コマンドを実行し、 Zabbixエージェント(192.168.33.10)のバージョンが表示されれば疎通OK。
zabbix_get -s 192.168.33.10 -k agent.version
Zabbixにホストを登録
10. Slackアラート
Slackにアラート流してみる。
参考URL:
[zabbix2][zabbix3]slackと連携してみたよ
Webサーバー停止する。
systemctl stop nginx
はーい、来ましたー。
参考:
Install and configure Zabbix server
Zabbix 4.0 インストールメモ(CentOS7 + MySQL 8.0)
CentOS 6.5でzabbix+nginx+php-fpm環境を構築してみる
Download Grafana
Grafana-Zabbix plugin Installation
Zabbixの監視情報をGrafanaでグラフィカルなダッシュボードにしてみた
VirtualBox Zabbix3.0 エージェント構築
[zabbix2][zabbix3]slackと連携してみたよ
How to proxy /grafana with nginx?