Zabbix 3.x & RTX1200/1210 PP/TUNNEL対応 Template

RTX1200 と RTX1210 で Tunnel I/FのOIDが違うので
その辺も含めて一緒くたにした Zabbix の RTXテンプレートを作成してみた


PP や TUNNEL I/F まで包括したものがなかったので Items だけ登録しているので
使用している機種や環境によって Item をDisableにして貰えれば


あと、Trigger も登録はしていないので、その辺は好きな閾値で設定してください


というか、RTX1210では確認できたけど
RTX1200の TUNNEL I/F の確認が出来てない(リプレースして外したので)
誰か適用して間違ってたら教えて (≧Д≦)y-~~


<前提条件>
RTX1200 / 1210
・タグVLANを使用していない
・LAN1分割機能を使用していない
snmp yriftunneldisplayatmib2 on
YAMAHA Private MIBをZabbixに導入済み

RTX1200
・Rev10.01.32以降

基本は YAMAHAのサイトの インターフェース対応リストから拾ってきてポチポチしただけなので
OIDの番号と名称変更すればI/F増加させるのも簡単かと

RTX12x0 Zabbix Template

<2018/10/14 追記>
LLDを使用した新しいTemplate作成したのでこちらは削除
tkx.hatenablog.jp

RTXの Tunnel I/FをZabbixで監視する

RTX 1200/1210 (RTX12x0) は標準設定では、SNMPで Tunnel I/Fの転送量を監視できないので
設定変更を行い監視できるようにする

ちなみにTunnel I/Fの番号は、先の記事参照

1. RTX12x0の設定変更
# snmp yriftunneldisplayatmib2 on

Zabbix Server で Tunnel I/F番号が見えるようになっているか確認

# snmpwalk -v 1 -c public <RTX12x0のIP> -m /usr/share/snmp/mibs/yamaha-rt-interfaces.mib.txt ifTable

余談だけど、設定変更前にも実行しておくと、どんなI/Fが見えるようになるか判るのでお薦め
2. ZabbixにTunnel I/Fの ifInOctets と ifOutOctets を登録

指定すべき I/Fは機種と環境にもよるので、その辺はヤマハのサイトで確認して欲しい

# snmpwalk -v 1 -c public <RTX12x0のIP> -m /usr/share/snmp/mibs/yamaha-rt-interfaces.mib.txt ifDescr
実行すれば、一応名称でてくる

RTXのI/F番号とsnmp I/F番号の対応表

SNMPのインタフェース番号とRTのインタフェースの関係
FAQ for YAMAHA RT Series / SNMP

これを見ると
RTX 1210 : タグVLAN未使用 : LAN1未分割 の構成だと

Index インタフェース 備考
1~3 LAN1~LAN3  
4 WAN1  
5 BRI1  
6~105 PP01~PP100 snmp yrifppdisplayatmib2 on設定時にMIB2の範囲でも有効
106~208 PP Anonymous snmp yrifppdisplayatmib2 on設定時にMIB2の範囲でも有効
209~308 TUNNEL01~100 snmp yriftunneldisplayatmib2 on設定時にMIB2の範囲でも有効
309 NULL  
310~318 Loopback01~09  
319 BRIDGE1  
320 Mobile1  
100,000,000~199,999,999 スイッチ1~ snmp yrifswitchdisplayatmib2 on設定時にMIB2の範囲でも有効

RTX12x0をZabbixで監視する

1. RTX12x0のsnmpを有効化

RTX12x0にログインして、config を修正

# snmp host <ZabbixサーバのIP> public
# snmp trap host <ZabbixサーバのIP> public
2. RTX Private MIBファイルの配置

Zabbix ServerにRTXのPrivate MIBファイルを配置

ちなみにRTXのMIBファイルはYAMAHAのサイトで配布されている
-> YAMAHA private MIB

# wget http://www.rtpro.yamaha.co.jp/RT/docs/mib/yamaha-private-mib.tar.gz
# tar xvzf yamaha-private-mib.tar.gz -C /usr/share/snmp/mibs

MIBファイルを配置したら、Zabbix Serverの再起動
# systemctl restart zabbix-server
# systemctl status zabbix-server
3. snmpwalkで確認

MIBファイルを格納し、Zabbix Serverを再起動した後にPrivate MIBで値を取得できるか確認

# snmpwalk -v 1 -c public <RTX12x0のIP> yrIfPpInUtil

上記だと Unknown Object Identifier と言われてしまったので、MIBファイルを指定
# snmpwalk -v 1 -c public <RTX12x0のIP> yrIfPpInUtil -m /usr/share/snmp/mibs/yamaha-rt-interfaces.mib.txt
4. Zabbixに RTX12x0のテンプレートを適用して修正

元ネタのテンプレートはコチラから

自宅のL2 Switch

Catalyst 2960S (WC-2960S-24TS-L)を買ったはいいけど
やっぱファンの音五月蠅いからお蔵入り・・・

Catalyst 2960Gの時も、結局ファンの音に我慢できずにお蔵入りしたな(遠い目

Ruckus APあるので、PoE Switchで 16Portクラスが欲しいのだけど
16Port PoEになると、高い、ファン付きになるということで
Netgear GS116v2 + GS108PEv3 の組み合わせに戻った・・・

PoE Switch使わずに、ACアダプターかPoE Injector使えば?となるが
どうせコンセント1口使うなら、スイッチでいいやと

GS116v2はこのクラスにしてはbuffer sizeが大きく512KB/Portと
大きなファイル転送でもそれなりのパフォーマンスを発揮してくれるので
(安いスイッチだと 512KB/unitとか普通にあるので)

Nginxの fastcgi_temp Warning対策とPHP-FPMの接続にUNIX Socketを使用する

Nginx と PHP-FPMの接続は http://127.0.0.1:9000/ を使用しているので
UNIX Socketに変更するとスマートになるんではないかなと

/etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

に変更して、再起動してソケットファイルの確認

# systemctl restart php-fpm
# ls -la /var/run/php-fpm/
total 4
drwxr-xr-x  2 root  root   80 Sep 21 04:20 .
drwxr-xr-x 25 root  root  720 Sep 21 04:20 ..
-rw-r--r--  1 root  root    5 Sep 21 04:20 php-fpm.pid
srw-rw----  1 nginx nginx   0 Sep 21 04:20 php-fpm.sock

nginx の conf を

fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;

に修正して、reload

# systemctl reload nginx

アクセスしてみて問題なければOK

ちなみに自分専用のWebサイトレベルなので、レスポンスタイムが短縮したなんて事は体感できず(苦笑

ついでにアクセスするたんびに出力されていた

an upstream response is buffered to a temporary file /var/cache/nginx/fastcgi_temp/7/00/0000000007 while reading upstream, client: xxx.xxx.xxxxxx, server: xxx.xxx.jp, request: "GET /index.php HTTP/2.0", upstream: "fastcgi://127.0.0.1:9000", host: "xxx.xxx.jp", referrer: "https://xxx.xxx.jp/"

も消えた\( ̄∇ ̄)/
(まあ、理由考えれば当然なんだろうけど)

ZabbixのHTTPを httpd -> Nginxに変更する

一通り CentOS7 + MySQL 5.7 + Zabbix 3.4 + PHP 7.x で構築できたので
今更な Apache(httpd)じゃなくて、他のサーバーでも使っている Nginx に変更

1. Zabbix Server と httpd の停止
# systemctl stop zabbix-server
# systemctl stop httpd
2. Nginxのインストール

Nginxのサイトにしたがい https://nginx.org/en/linux_packages.html#mainline
mainlineのレポジトリを追加

# cat > /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1
<ここで Ctrl+D で出力終了>
# chmod 644 /etc/yum.repos.d/nginx.repo
#
# yum install nginx

nginxを起動してWelcomページが表示されるか確認

# systemctl start nginx

ブラウザから、サーバーのIPを叩いて表示されること
https://i.imgur.com/tD0jR4Y.png

3. PHPのモジュールをインストール

既に入っているものもあるが、次回構築時に判るようにするために

# yum install php-mbstring php-pdo php-xml php-zip php-fpm php-mysqlnd
4. PHP-fpmの設定変更

apach向けになっているので、Nginxに変更

# vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx

セッションファイルのディレクトリのパーミッション変更

# chown -R nginx:nginx /var/lib/php/session/

PHP-fpmの起動

# systemctl start php-fpm
5. Nginxの設定変更

/etc/nginx/conf.d 以下のdefault.conf をコピーして修正する
default.conf については、conf.bak などにリネームしておかないと /zabbix/ では失敗する

http://www.hogehoge.com/ で表示させる場合と
httpd の時と同様に http://www.hogehoge.com/zabbix/ で表示させる方法があるのだが
どちらが良いのかイマイチわからない

取り敢えず今回は後者の config

# cp -p /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/zabbix.conf
# vi /etc/nginx/conf.d/zabbix.conf
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /zabbix {
        alias   /usr/share/zabbix;
        index  index.php;
        if (!-e $request_filename) {
            rewrite ^/zabbix(.+)$ /zabbix/index.php?q=$1 last;
            break;
        }
    }

    location ~ ^/zabbix/.+\.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_split_path_info ^/zabbix(.+\.php)(.*)$;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/zabbix$fastcgi_script_name;
        include        fastcgi_params;
    }

パーミッションを変更

# chown nginx:nginx /etc/zabbix/web
# chown nginx:nginx /etc/zabbix/web/zabbix.conf.php
6. Nginx再起動とZabbix Server起動
# systemctl reload nginx
# systemctl start zabbix-server
7. 自動起動設定
# systemctl disable httpd
# systemctl enable nginx
# systemctl enable php-fpm
8. http://www.hogehoge.com/ で起動する nginx conf

こちらで運用する場合もあるので記述

# vi /etc/nginx/conf.d/zabbix.conf
    location / {
        root   /usr/share/zabbix;
        index  index.php;
    }

    location ~ \.php$ {
        root           /usr/share/zabbix;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

こっちのほうがお手軽なので、これでもいいかなあと

CentOS7をZabbixで監視する

Zabbix Serverの構築はできたので
取り敢えず Linux (CentOS) Agentを入れて、Linux Templateまで適用してみようかと

1. Zabbix Repositoryを導入

https://www.zabbix.com/jp/download ここから、Repositoryを選択して

# rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.VSZpP1: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
#
# yum repolist
zabbix/x86_64                Zabbix Official Repository - x86_64                                223
zabbix-non-supported/x86_64  Zabbix Official Repository non-supported - x86_64                    4
2. Zabbix Agentのインストール
# yum info zabbix-agent
Available Packages
Name        : zabbix-agent
Arch        : x86_64
Version     : 3.4.14
Release     : 1.el7
Size        : 367 k
Repo        : zabbix/x86_64
Summary     : Zabbix Agent
URL         : http://www.zabbix.com/
License     : GPLv2+
Description : Zabbix agent to be installed on monitored systems.
#
# yum install zabbix-agent

GPG KEYの警告がでるけど、「Y」をおして Agentをインストール

3. zabbix_agentd.conの修正

環境に合わせて以下を修正する

# vi /etc/zabbix/zabbix_agentd.conf
server=<Zabbix Server IP>
ServerActive=<Zabbix Server IP>
HostnameItem=system.hostname <- 有効化
4. Zabbix Agentの起動と自動起動設定
# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
#
# systemctl start zabbix-agent
# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-09-18 02:21:12 JST; 1s ago
  Process: 2480 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 2482 (zabbix_agentd)
   CGroup: /system.slice/zabbix-agent.service
           tq2482 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
           tq2483 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           tq2484 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
           tq2485 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
           tq2486 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
           mq2487 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Sep 18 02:21:12 rep2 systemd[1]: Starting Zabbix Agent...
Sep 18 02:21:12 rep2 systemd[1]: PID file /run/zabbix/zabbix_agentd.pid not readable (yet?) a...art.
Sep 18 02:21:12 rep2 systemd[1]: Started Zabbix Agent.
Hint: Some lines were ellipsized, use -l to show in full.
#
# systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
#
# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-09-18 02:21:12 JST; 3min 12s ago
 Main PID: 2482 (zabbix_agentd)
   CGroup: /system.slice/zabbix-agent.service
           tq2482 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
           tq2483 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           tq2484 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
           tq2485 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
           tq2486 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
           mq2487 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Sep 18 02:21:12 rep2 systemd[1]: Starting Zabbix Agent...
Sep 18 02:21:12 rep2 systemd[1]: PID file /run/zabbix/zabbix_agentd.pid not readable (yet?) a...art.
Sep 18 02:21:12 rep2 systemd[1]: Started Zabbix Agent.
Hint: Some lines were ellipsized, use -l to show in full.
#
5. Zabbix Server <-> Agentの疎通確認

zabbix_get コマンドを使用して、Agentと通信できることを確認する
Zabbix Serverで以下を実行

# zabbix_get -s <Agent IP> -k system.hostname <- Agentのホスト名
# zabbix_get -s <Agent IP> -k agent.version <- AgentのVer
6. Zabbix Serverに登録

あとはよしなに

CentOS7 + Zabbix + MySQL その3

Zabbixの起動画面は辿り付いたので
取り敢えず Setupを実行してみる
https://i.imgur.com/6yM2fqH.png

Check of pre-request で PHPのパラメーターで Failしているので、PHPの設定を変更する
https://i.imgur.com/QiYHDWg.png

/etc/php.ini をZabbixが要求する値に修正して httpdを再起動

# vi /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Tokyo
#
# systemctl restart httpd

https://i.imgur.com/7c34QGR.png

MySQLの設定を入力
https://i.imgur.com/KUBxo9I.png

https://i.imgur.com/CTY1v0R.png

https://i.imgur.com/c0Ppp1R.png

インストール完了\( ̄∇ ̄)/
https://i.imgur.com/xURC8qA.png

デフォルトは
Username : Admin
Password : zabbix
でログインしましょう!
https://i.imgur.com/vxMMmKu.png

CentOS7 + Zabbix + MySQL 本題その2

1. Zabbixリポジトリを追加

で、ようやく本題のZabbixインストールまでたどり着いたわけだが(苦笑

標準/EPELリポジトリのZabbixはVerが古い為にZabbixのサイトからリポジトリを追加
https://www.zabbix.com/jp/download

Zabbix Ver : 3.4
OS : CentOS
OS Ver : 7
Database : MySQL
リポジトリを選択

# rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.ZQQqQO: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY

Signature Warningが出るが問題は無し

# yum repolist
zabbix/x86_64                       Zabbix Official Repository - x86_64                          223
zabbix-non-supported/x86_64         Zabbix Official Repository non-supported - x86_64              4

Zabbix Official RepoがInstallされていることを確認

2. Zabbix Server / Agentインストール

zabbix-web-japaneseは、Webで日本語フォントを使えるようにする為に必要
zabbix-getは、zabbix-agetとの疎通確認にも使うのでいれておくrp

# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
# yum install zabbix-web-japanese
# yum install zabbix-get
3. MySQLのZabbix初期設定
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<パスワード>';
mysql> quit; 
4. 初期データとスキーマのインポート
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter Password:
#
5. Zabbix Server と MySQLの接続設定

/etc/zabbix/zabbix_server.conf のDBPasswordを設定
125行目あたりに追記

DBPassword=<パスワード>
6. PHPのTIMEZONE変更

/etc/httpd/conf.d/zabbix.conf の PHP TIMEZONEを修正

# php_value date.timezone Europe/Riga

これを

php_value date.timezone Asia/Tokyo
7. Zabbix Server/Agent起動
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd 
8. http://Server IP or Hostname/zabbix/ にアクセス

https://i.imgur.com/6yM2fqH.png