想ひ出のへっぽこBlogⅡ from35

~ 自身の備忘録および学習促進のためにブログります。~

想ひ出21: GCP/CloudSQL/Nginx/Zabbix4.0/Grafana5.3/Slack

f:id:moqrin3:20181201181427p:plain

おはようございます、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で接続できるね!)

VPCファイヤーウォールの設定を確認しておきます。

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が接続できるようになっているか、設定を確認しておきます。

f:id:moqrin3:20181201182031p:plain

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に怒られます。

f:id:moqrin3:20181201182219p:plain

# 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

設定を進めていきます。

f:id:moqrin3:20181201182254p:plain

パスワードと言語を更新しておきますー。

f:id:moqrin3:20181201182325p:plain

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しか閲覧付与していないけど。。)

f:id:moqrin3:20181201182427p:plain

f:id:moqrin3:20181201182506p:plain

f:id:moqrin3:20181201182527p:plain

Grafanaの設定をします。(ホスト名:3000です。)
初期ログインIDとパスワードは「admin」です。

f:id:moqrin3:20181201182555p:plain

f:id:moqrin3:20181201182612p:plain

f:id:moqrin3:20181201182642p:plain

参考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にホストを登録

f:id:moqrin3:20181201182735p:plain

f:id:moqrin3:20181201182749p:plain

10. Slackアラート

Slackにアラート流してみる。

参考URL:
[zabbix2][zabbix3]slackと連携してみたよ

Webサーバー停止する。

systemctl stop nginx

f:id:moqrin3:20181201182821p:plain

f:id:moqrin3:20181201182848p:plain

はーい、来ましたー。

参考:

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?