ラベル zabbix jp の投稿を表示しています。 すべての投稿を表示
ラベル zabbix jp の投稿を表示しています。 すべての投稿を表示

2017年5月1日月曜日

Job Arranger 一般設定 Zabbix 通知

Job ArrangerはZabbixへ通知する機能があります。
Job Arrangerから実行したジョブが異常になるとZabbixへ通知します。その通知された単語からZabbixがアクションを起こすことができます。
それではその通知機能を設定して見ます。


1.Job Arranger Managerの設定


















Job Arranger Managerの一般設定タブをクリックします。
・Zabbix通知はありにします。
・Zabbix IPアドレスにはZabbix Serverが動くサーバーのIPを設定します。
・Zabbixポート番号はZabbix サーバーのPort番号を書きます。
・Zabbix SenderコマンドにはZabbix Senderのパスを書きます。
  yumでインストールした場合はzabbix_senderだけ書いても特に問題あります。
  zabbix_senderがあるかはJob Arranger Serverがあるサーバーから
   which zabbix_sender発行してみてください。
  なかった場合はyum zabbix_senderをインストールしてください。
  ●zabbix_senderパス確認
[root@localhost jobarranger]# which zabbix_sender
/usr/bin/zabbix_sender
[root@localhost jobarranger]#
・メッセージ通知先ZabbixホストにはJob Arrangerから通知した内容を受けるサーバー
  Zabbixに登録するか既にあるホストを書きます。

僕の場合はjobarg_serverをZabbixに登録しました。(※2.Zabbixへホスト登録参照)
・アイテムキーはJob Arrangerから受取るアイテムの名前です。一般的にはjasenderを使っています。(※3.アイテム設定参照)
・Zabbix通知再送はもし、Zabbixサーバーが受け取らなかった場合再送することです。
・再送回数は再送ができなかった場合の回数です。
・再送インターバルは再送する期間の秒です。

設定が全部完了すると右下にある変更ボタンをクリックしてJob Arrangerサーバーを再起動します。


2.Zabbixへホスト登録





















Job Arrangerからメッセージを受取るjobarg_serverのホストをZabbixへ登録します。



3.アイテム設定


jobarg_serverホストにて、アイテムを登録します。
・名前には判りやすい名を書きます。
・タイプはZabbixトラッパーです。
・キーはjasenderです。
・データ型はログを選択します。

4.確認

これで登録が全部揃えるとJob Arrangerからジョブの実行が失敗すると
下記のようにエラーが文字がZabbixに通知されることが確認できます。


ログからERROR文字を引っ張りしてトリガーを設定すると
アクションを使うこともできますので
ご利用ください。

以上です。

2017年4月1日土曜日

Zabbix 通信の暗号化(PSK) windows用

この内容はZabbix 3.0を基準にします。
Linuxに関して多数ありますがWindows用は少ない見たいのでここではwindowsを基準にします。
しかし、Linux用とWindows用はことなるところはDownloadするところだけです。
Zabbix ServerとZabbix agent間通信の暗号化に関して説明します。
暗号化はご存知名よう、Zabbix ServerとZabbix Agentが通信することを見えないようにするし、許可されてないホストからのリクエストを拒否される目的があります。

ZabbixにPSK (Pre-Shared Key/事前共有鍵)を使用してみます。

1.PSKを作成する

# psktool -u zabbix -p zabbix.psk -s 32
もし、psktool がない場合は
-bash: psktool : コマンドが見つかりません
# yum install gnutls-utils -y
をインストールします。

2.zabbix.pskを編集する

viで中にあるzabbix:部分を削除します。
Zabbix:の意味はユーザーを表すものです。

3.windows用Zabbix Agent download

https://support.zabbix.com/browse/ZBXNEXT-3047
にあるZabbix-agent-3.0.1-with-OpenSSL-1.0.2c-WinAll.zipファイルをDownloadします。
その後適当な場所で解凍します。
フォルダ名はzabbixにした方法後見やすくなります。


4.windows マシンにzabbix.pskを配置

適当なら場所にzabbix.pskを配置します。
僕の場合はZabbixを解凍したところに起きました。
C:\tmp\zabbix\confです。

5.zabbix-agent.win.confファイルを修正

TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=zabbix ##zabbix.pskを作成する時入れたユーザー名です。
TLSPSKFile=C:\tmp\zabbix\conf\zabbix.psk   ##zabbix.pskファイルがある場所

6.ホストの作成

Zabbix WEBページから
設定 → ホスト → ホスト作成ボタンをクリックするか既存のホストをクリックします。
暗号化をクリックします。

ホストへの接続からPSKをクリックします。
ホストからの接続にはPSKをクリックします。
PSKアイデンティティにはzabbix.pskファイルを作成するときのユーザー名を書きます。
PSKにはファイルに書いている内容をそのまま書きます。
pskファイルを作成したときにはzabbix:部分は入れないようにご注意ください。

その後更新をクリックします。
ホストメイン画面を見ると
この表示が見られます。

7.Zabbix Agent起動

WindowsのサービスからZabbixを起動します。
windows用のZabbix Agent起動は
ここをご参照ください。

8.Agentの確認

   zabbix_getを利用して確認します。
# zabbix_get -s 192.168.137.139 -k "agent.ping"
zabbix_get [3689]: Get value error: ZBX_TCP_READ() failed: [104] Connection reset by peer
zabbix_get [3689]: Check access restrictions in Zabbix agent configuration
このエラーはpskを利用しているのにも関わらずpskファイルを利用してないのでエラーが起きました。
# zabbix_get -s 192.168.137.139 --tls-connect psk --tls-psk-identity zabbix --tls-psk-file zabbix.psk -k "agent.ping"
1
これで完了しました。

もし、Zabbix Agent側から
active check configuration update from [192.168.137.138:10051] started to fail (TCP successful, cannot establish TLS to [[192.168.137.138]:10051]: SSL_connect() returned SSL_ERROR_SSL: file .\ssl\s3_pkt.c line 1472: error:1409445B:SSL routines:ssl3_read_bytes:reason(1115): SSL alert number 115: TLS read fatal alert "unknown PSK identity")
エラーの場合はTLSPSKIdentityに作成ユーザーがあるか確認ください。

また、Zabbix Agent側から
failed to accept an incoming connection: from 192.168.137.138: unencrypted connections are not allowed
エラーの場合は6.ホストの作成のホストへの接続がPSKに選択できているかを確認ください。

以上です。


2017年3月25日土曜日

MaxHousekeeperDeleteについて

MaxHousekeeperDeleteに関して説明します。

MaxHousekeeperDeleteはdefaultが5000になっています。
これはHousekeepingFrequencyに設定した時間に削除する最大値と思うと一部は正しい、一部は間違いです。
HousekeepingFrequencyを24にしてHousekeeperをすると一日削除する最大値が5000行になりそれ以上のデータは削除はできなくなります。正しいでしょうか?そしたら、データは積み重なっていつかDBが溢れます。
ですのでMaxHousekeeperDeleteはHousekeeperには関係があるですが私たちが知っている処理ではなく、ITEMが削除された場合実行されるパラメタです。
今まで、削除対象になるITEMのデータが1000万件だとすると一気に削除するならDBに大きい負荷がかかります。
そこで使われているものがMaxHousekeeperDeleteになります。
削除されたITEMのデータは一回に多くてもMaxHousekeeperDelete以上は削除しないことです。

この作業を確認するためにはITEMを削除してみてください。
そうするとhousekeeperテーブルに削除したITEMがInsertされます。
このITEMはデータが全部削除されるとテーブルからなくなります。

私がMaxHousekeeperDeleteに説明する理由は
Housekeeperが重くなっていることでMaxHousekeeperDelete調整する人がいます。そこで削除したITEMがある場合は効果的ですが、削除したITEMがなかった場合はDBのチューニングお願いいたします。
ご参考まで

以上です。

2017年3月22日水曜日

ZabbixのHousekeeperについて

Housekeeperとは、Zabbixにてアイテムが収集したデータをいつまで保存するかを決めてそれ以上古くなったデータを削除するプロセスを言います。
この説明はzabbix 3.0を基準にします。

1.アイテムの保存期間設定

アイテムことに設定ができます。


















赤い丸のところにヒストリ保存期間とトレンド保存期間があります。
各アイテムことに保存期間を設定することができます。

2.データ保存期間の一括更新

データの保存期間を一括で管理した場合は
管理 → 一般設定 → 右上のデータの保存期間を選択します。
















データの削除処理を有効のところにチェックを入れると
ZabbixのHousekeeperが動作することになります。
ここには見えないですが上のページの下の部分を見るとヒストリのところとトレンドのところがあります。
アイテムのヒストリ(またはトレンド)の保存期間を上書きをチェックすると各アイテムで書いた保存期間が上書きされます。一括更新にはよいと思います。

保存期間を急に短くしても、データの量は急激にはならないです。
その理由はZabbixの処理がDBに負荷をかけないよう徐々に削除するからです。
計算式は
rule->min_clock = MIN(keep_from, rule->min_clock +
HK_MAX_DELETE_PERIODS * CONFIG_HOUSEKEEPING_FREQUENCY * SEC_PER_HOUR);
です。

計算式の解説:
zabbix_server.confファイルにあるHousekeepingFrequencyがあります。上の式CONFIG_HOUSEKEEPING_FREQUENCY を意味します。
HousekeepingFrequencyはHousekeeperのサイクル周期です。単位は時間になります。
HousekeepingFrequencyが1のことは1時間に1回の作業です。2の場合は2時間に1回の作業です。
HK_MAX_DELETE_PERIODS は4です。
SEC_PER_HOURは1です。
min_clockは削除対象になるデータ中に一番古いものです。
keep_fromはWEBページにて設定した保存期間の数字になります。

例)今まで保存期間30日のものを20日に変更した場合どうなるか?HousekeepingFrequency=1にする。

解説:この計算はunix timeになります。現在が一番高い数字になります。
結局20日までくるために、一番古いデータの日付(30日前)+(HousekeepingFrequency*4))時間にして削除しますので、10日分を削除するために60時間かかることになります。
20日より古いデータがなくなるとその日からは20日が基準になり1時間分のデータが削除されます。

3.手動作成

データの削除処理を有効のチェックを外します。
または、HousekeepingFrequency=0セットします。
そうするとHousekeeperは自動削除は停めることになります。
保存データを手動削除する対象になるテーブルは
history, history_str, history_log, history_uint, history_text, trends, trends_uint, service_alarms, auditlog, events, sessions になります。
定期的にこのテーブルを削除するとHousekeeperと同様な作業ができます。
作業内容は
http://naiggy.blogspot.com/2017/03/zabbix-housekeeper.html
ご参照ください。

定期的に削除するためにはJob Arrangerをお勧めします。
Job ArrangerのMysql用は
https://naiggy.blogspot.jp/2017/03/job-arranger-install.html

PostgreSQL用は
https://naiggy.blogspot.jp/2017/03/job-arranger-install-centos-7-postgresql.html
ご参照ください。

以上です。

Zabbix Housekeeper 手動実行

Zabbix Housekeeper に関して
http://naiggy.blogspot.com/2017/03/zabbixhousekeeper.html
参考ください。

手動実行は
僕の場合は60日以前のデータを削除するスクリプトです。
60のところだけを修正して必要な数字を入れてください。

Mysql

delete from history where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_str where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_log where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from history_text where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from trends_uint where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from service_alarms where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from auditlog where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from events where clock < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));
delete from sessions where lastaccess < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 60 day));

PostgreSQL

delete from history where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_str where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_log where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from history_text where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from trends_uint where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from service_alarms where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from auditlog where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from events where clock < extract('epoch' from current_timestamp - interval'60 days') ;
delete from sessions where lastaccess < extract('epoch' from current_timestamp - interval'60 days') ;

2017年3月16日木曜日

centos7 Zabbix Agent AllowRootについて

下記の情報はCentOS7, RHEL7を対象にしています。

ZabbixのAllowRootはZabbix Agentを誰で起動するかを決めることです。
Defaultは0ですがこれはZabbixユーザーで起動することです。
1の場合はrootでZabbix Agentを起動することです。

しかし、Zabbix Agentをインストールした後、zabbix_agentd.confのAllowRootに1を入れて起動するとあがらないです。
エラーは
# systemctl start zabbix-agent
Job for zabbix-agent.service failed because a configured resource limit was exceeded. See "systemctl status zabbix-agent.service" and "journalctl -xe" for details.

# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: resources) since 木 2017-03-16 21:50:17 JST; 7s ago
  Process: 2254 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)

 3月 16 21:50:17 test1 systemd[1]: zabbix-agent.service never wrote its PID file. Failing.
 3月 16 21:50:17 test1 systemd[1]: Failed to start Zabbix Agent.
 3月 16 21:50:17 test1 systemd[1]: Unit zabbix-agent.service entered failed state.
 3月 16 21:50:17 test1 systemd[1]: zabbix-agent.service failed.

このエラーの対策は
vi /etc/selinux/config
SELINUX=disabled
にしてください。
その後rebootも忘れないよう。

その後
# systemctl start zabbix-agent
すると問題なくあがります。

以上です。

2017年3月14日火曜日

Zabbix ESXi監視

Zabbix Serverにて、vSphere APIを利用してESXiを監視します。
CentOS7, Zabbix 3.0を基準にします。












これを監視して見ます。

1.zabbix_server.confファイルを修正

vi /etc/zabbix/zabbix_server.conf
StartVMwareCollectors=1 ##1以上にします。

zabbix 再起動
# systemctl restart zabbix-server

2.監視対象のホストの登録

Zabbix WEB ページから
設定 → ホスト → 右上にあるホストの作成ボタンをクリックします。
ホスト名にはESXiのポスト名以外を入れます。
IPアドレスにはESXiがインストールされているIPを書きます。
















3.監視対象のホストにマクロ登録

ホスト登録画面からマクロタブをクリックします。
{$USERNAME}にはESXiログインするときのユーザーを書きます。
{$PASSWORD} には{$USERNAME}のパスワードを書きます。
{$URL}にはhttps://ESXiのホストIP/sdkを書きます。













4.template追加

ホスト登録画面からテンプレートをクリックします。
選択からTemplate Virt VMwareを選択します。
ほかのものを選択しないでくたさい。












もし、Template Virt VMware, Template Virt VMware Guest, Template Virt VMware Hypervisorを全部入れた場合はエラーになります。
Unknown hypervisor uuid.と言うエラーはTemplate Virt VMware Guest, Template Virt VMware Hypervisor両方選択によるエラーです。
Template Virt VMware Guest, Template Virt VMware Hypervisorから削除してください。
作成したホストには必ずTemplate Virt VMwareだけ選択してください。



完了画面







以上です。



2017年3月12日日曜日

10分で終わるZabbix Install (CentOS7, PostgreSQL)

CentOS 7を基準にZabbix 3.0をインストールします。
Zabbix 3.0の場合はLTSです。
サポート期間は2019/2までです。
ご参考お願いいたします。
http://www.zabbix.com/jp/life_cycle_and_release_policy


1.アプリをインストールします。

# yum -y update #これは選択条件です。
# yum -y install httpd
# yum -y install php php-pgsql php-gd php-bcmath php-common php-mbstring php-xml
# yum -y install postgresql postgresql-server postgresql-contrib
# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# yum -y install zabbix-server-pgsql zabbix-agent zabbix-get zabbix-sender
# yum -y install zabbix-web zabbix-web-pgsql

# systemctl enable postgresql
# systemctl enable httpd

Selinuxをdisabled設定
   これのしない場合はZabbix Server認識ができないです。
# vi /etc/selinux/config
 SELINUX=enforcing => SELINUX=disabled
 reboot


2. DB設定

# su - postgres
-bash-4.2$ initdb –encoding=UTF8 —no-locale
-bash-4.2$ exit
# systemctl restart postgresql
# cd /usr/share/doc/zabbix-server-pgsql-3.0.8/
# psql -U postgres postgres
postgres=# create user zabbix password 'zabbix';
postgres=# create database zabbix owner=zabbix;
postgres=# \q
# zcat create.sql.gz | psql -U zabbix zabbix


3. firewalldのport設定

  WEB Port開放
# firewall-cmd --add-port=80/tcp --zone=public --permanent
    Zabbixサーバー → Zabbixエージェント:10050
# firewall-cmd --add-port=10050/tcp --zone=public --permanent
    Zabbixエージェント → Zabbixサーバー:10051
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
    firewalld設定後再起動
# firewall-cmd --reload
 内部ネットワークでfirewalldがいらない場合は
# systemctl stop firewalld
# systemctl disable firewalld

4. PHP timezone設定

# vi /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
# systemctl restart httpd

5. WEB Page接続

http://localhost/zabbix

①セットアップ画面

②モジュールチェック画面














date.timezoneを設定してない場合は上のようなエラーが起きます。
4. 番の修正をお願いいたします。

③DBセットアップ画面

















④サーバー名設定
NameのところはInstallが完了すると右上にあるサーバー名になります。
僕の場合はZabbix 3.0になります。


これ以上は
MySQLのインストールと同様ですのでご参照ください。

以上です。

2017年3月1日水曜日

AWS ZabbixとJob Arrangerのインストール

AWSでZabbixとJob Arrangerをインストールするなら大変だと思います。
皆さんのお悩みを解決するAMIがありますので紹介します。

■MySQL用
 OS:amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
 DB:MySQL5.7 
 Zabbix: 3.0.7
    Job Arranger: 3.2
    AMI ID:ami-739be014

■ PostgreSQL用
 OS:amzn-ami-hvm-2016.09.1.20161221-x86_64-gp2
 DB:Postgresql9.5
 Zabbix: 3.0.7
    Job Arranger: 3.2
    AMI ID:ami-c6a7dca1

以上です。

2017年2月28日火曜日

Zabbix 日本語が文字化け 超簡単直し

Zabbix インストール後グラフまたはマップを見ると日本語が化けているように見えます。

日本語文字化けを超簡単に修正します。
# yum install ipa-pgothic-fonts
# mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org
# cp /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/zabbix/fonts/graphfont.ttf













修正完了です。
以上です。

2017年2月26日日曜日

10分で終わるZabbix Install MariaDB/MySQL (CentOS7 MariaDB 10.1)

CentOS 7を基準にZabbix 3.0をインストールします。
Zabbix 3.0の場合はLTSです。
サポート期間は2019/2までです。
ご参考お願いいたします。
http://www.zabbix.com/jp/life_cycle_and_release_policy
MariaDBとMySQLを同じにしてインストールします。

1.yum updateは選択になります。
# yum update -y

2.MariaDBのrepo登録
# vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Gpgcheck=1

3.各アプリインストール(MariaDB, apache, zabbix)
# yum install mariadb mariadb-server -y
# yum install httpd -y
# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    Zabbix バージョンをアップしたい場合はhttp://repo.zabbix.com/zabbix/から選択してください。
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
# yum install zabbix-get zabbix-sender -y

4.MariaDBセットアップ
①MariaDB起動
# systemctl start mariadb
②DBユーザー作成
# mysql -uroot
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit
③Zabbix Dataセットアップ
   -urootではなく-uzabbixでします。
# zcat /usr/share/doc/zabbix-server-mysql-3.0.7/create.sql.gz | mysql -uzabbix zabbix -p
Enter password: zabbix

5.MariaDBとApache自動起動設定
# systemctl enable mariadb
# systemctl enable httpd

6.Selinuxをdisabled設定
  これのしない場合はZabbix Server認識ができないです。
# vi /etc/selinux/config
SELINUX=enforcing => SELINUX=disabled
reboot

7.firewalldのport設定
  WEB Port開放
# firewall-cmd --add-port=80/tcp --zone=public --permanent
    Zabbixサーバー → Zabbixエージェント:10050
# firewall-cmd --add-port=10050/tcp --zone=public --permanent
    Zabbixエージェント → Zabbixサーバー:10051
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
    firewalld設定後再起動
# firewall-cmd --reload
 内部ネットワークでfirewalldがいらない場合は
# systemctl stop firewalld
# systemctl disable firewalld

8.PHP timezone設定
# vi /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo

9.Apache 再起動
# systemctl restart httpd

10.WEB Page接続
http://localhost/zabbix

①セットアップ画面

















②モジュールチェック画面

















date.timezoneを設定してない場合は上のようなエラーが起きます。
8.番の修正をお願いいたします。

③DBセットアップ画面


Passwordには4番で書いたPasswordを入れてください。
僕の場合はzabbixでした。

④サーバー名設定
NameのところはInstallが完了すると右上にあるサーバー名になります。
僕の場合はPark.Zabbixになります。



Defaultはユーザー名:Admin
Password:zabbix



 黄色部分の
Zabbix server is not running:
Zabbixサーバーが動作していません:
が表示される場合はチェック項目は
ⅰ:Zabbix Serverを起動している確認。 
 ⅱ:6番のselinuxを確認
まだ、Zabbix Serverを起動してないなら
# vi /etc/zabbix/zabbix_server.conf
DBPassword=zabbix

# systemctl start zabbix-server
# systemctl enable zabbix-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent


これでZabbix Installを完了します。
もし、日本語の文字化けがある場合は
ご参照ください。
Zabbixへ最適化したジョブ管理ツールがあります。
ご参考ください。