Zabbixサーバの構築+Grafanaの設定

環境

環境 バージョン
OS CentOS 7
Zabbix 3.4
Grafana 4.2.0
PHP 5.4.16
MySQL 5.7.17

CentOS構築

# CentOS7の場合はrootではなく、centosユーザーでログイン
# ssh -i ~/.ssh/path/to/xxx.pem centos@11.11.11.11
# sudo su -
# yum update
# reboot
# ロケールの設定
# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: us
# localectl set-locale LANG=ja_JP.utf8
# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: us
      X11 Layout: us

# 109キー日本語レイアウトのキーボードを設定
# localectl set-keymap jp106
# localectl set-keymap jp-OADG109A
# localectl
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp-OADG109A
      X11 Layout: jp
       X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

# Timezoneの設定
# timedatectl status
      Local time: Wed 2017-09-27 09:35:29 UTC
  Universal time: Wed 2017-09-27 09:35:29 UTC
        RTC time: Wed 2017-09-27 09:35:29
       Time zone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

# timedatectl set-timezone Asia/Tokyo
# timedatectl status
      Local time: Wed 2017-09-27 18:35:45 JST
  Universal time: Wed 2017-09-27 09:35:45 UTC
        RTC time: Wed 2017-09-27 09:35:44
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

/etc/httpd/conf.d/zabbix.conf

        # php_value date.timezone Europe/Riga
        php_value date.timezone Asia/Tokyo

SELinuxの無効化

# cp -p /etc/selinux/config /etc/selinux/config.org

/etc/selinux/config

#SELINUX=enforcing
SELINUX=disabled

Zabbix インストール

# Zabbix yumリポジトリの登録
# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent

自動アップデートされないよう、Zabbixリポジトリを無効化
/etc/yum.repos.d/zabbix.repo

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

設定ファイルの変更

  • Server: ZabbixサーバのIPアドレス
  • ServerActive: ZabbixサーバのIPアドレス
  • Hostname: Zabbixエージェントが稼働するホスト名
  • ListenPort: コメントアウトを明示的に外しておく。デフォルト10050を利用。
  • ListenIP: Zabbixエージェントが使うIPアドレス

/etc/zabbix/zabbix_agentd.conf

# Server=127.0.0.1
Server=11.11.11.11

Zabbix Agent 起動

# service zabbix-agent start
# chkconfig zabbix-agent on

zabbix 用 DB の作成

# rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# yum install mysql-community-server
# mysql --version
mysql  Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using  EditLine wrapper

# 文字コードの設定
# vi /etc/my.cnf
character-set-server=utf8

# service mysqld start
# ps aux | grep mysql

# 一時的な root ユーザーのパスワード確認 
# grep 'temporary password' /var/log/mysqld.log

# mysql_secure_installation

# chkconfig mysqld on

“zabbix_server.conf”において DBHost, DBName, DBUser, DBPasswordを適宜設定する。
/etc/zabbix/zabbix_server.conf

# cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.org

文字コードの確認

mysql> show variables like "%char%";
+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | utf8                       |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | utf8                       |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
9 rows in set (0.00 sec)
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'xxx';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> select Host, User from mysql.user;
+-----------+---------------+
| Host      | User          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
| localhost | zabbix        |
+-----------+---------------+
4 rows in set (0.00 sec)

# zcat /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz | mysql -u zabbix -p zabbix

# check package version
# rpm -q zabbix-server-mysql

Zabbixの起動

# systemctl start zabbix-server
# systemctl status zabbix-server

# vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Tokyo

自動起動の設定

# systemctl enable zabbix-server
# systemctl start httpd
# chkconfig httpd on

Grafana

# yum install wget
# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
# yum localinstall grafana-4.2.0-1.x86_64.rpm

# grafana-cli plugins install alexanderzobnin-zabbix-app
# systemctl restart grafana-server
# chkconfig grafana-server on

管理画面から grafana ユーザーを作成。ユーザー (グループ) は読み取り権限を付与しておく。
http://xxx:3000/login へアクセス。※ 初期 User Password は admin である。
“Edit data source” の “config” を適宜設定する。

http://xxx/grafana でアクセスできるように、ApacheのReverseProxyを利用。

# vi /etc/httpd/conf.d/grafana.conf
---
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off
ProxyPass /grafana http://127.0.0.1:3000
ProxyPassReverse  /grafana http://127.0.0.1:3000
---

# systemctl restart httpd

# vi /etc/grafana/grafana.ini
---
[server]
root_url = http://localhost:3000/grafana ※追加
---

# systemctl restart grafana-server

Amazon LinuxでのZabbixインストール時にRequiredエラーとなる

Amazon Linuxの場合、下記のように”systemd”パッケージをインストールすることが出来ない為、直接wgetでアーカイブを持ってくるしかない(17/09時点)。

$ yum --enablerepo=zabbix install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese.noarch zabbix-get
--> 依存性解決を終了しました。
エラー: パッケージ: iksemel-1.4-2.el7.centos.x86_64 (zabbix-non-supported)
             要求: libgnutls.so.28(GNUTLS_1_4)(64bit)
エラー: パッケージ: zabbix-server-mysql-3.4.1-1.el7.x86_64 (zabbix)
             要求: systemd
エラー: パッケージ: zabbix-get-3.4.1-1.el7.x86_64 (zabbix)
             要求: libpcre.so.1()(64bit)
エラー: パッケージ: iksemel-1.4-2.el7.centos.x86_64 (zabbix-non-supported)
             要求: libgnutls.so.28()(64bit)
エラー: パッケージ: zabbix-server-mysql-3.4.1-1.el7.x86_64 (zabbix)
             要求: libpcre.so.1()(64bit)
エラー: パッケージ: zabbix-server-mysql-3.4.1-1.el7.x86_64 (zabbix)
             要求: libnetsnmp.so.31()(64bit)
 問題を回避するために --skip-broken を用いることができます。
 これらを試行できます: rpm -Va --nofiles --nodigest

必要なPHPモジュール/
https://www.zabbix.com/documentation/3.4/manual/installation/requirements

Zabbixの削除

$ yum remove zabbix-release
$ yum clean all

参考サイト

Zabbix Documentation 3.0
Zabbix3.4 必要要件