P31のようなメールが着た。ディスクのIOwaitが43.39%にもなっている。
でもこれが着たのは第一日曜日の午前3時過ぎ。この時間は何をしているかと言うと、月に1回の全てのホストのフルバックアップをbaculaで取っている。
また,私はリストアを簡単にするために、各ホストの各パーティション毎にバックアップしているので、JOBの数が上がっていて、なおかつフルバックアップなので発生していると思われる。なので他の日は発生していないので、次の日曜日には増分でなく差分を取るので、少しロードが上がる筈。その時の様子見にする。
2016年4月24日追記:差分を取る日曜日にはエラーが出ていない。又、他の曜日は増分なのでもっと書き込みが少ない
又、P32の様に同じホストだが、違う時間で同じようなメールが着た。この原因はclamd(アンチウィルス・プログラム)がフルスキャンをしている時間だ。うーむどうしようか考え中、毎日来ると思うがどうやってロードを下げようか?
2016年4月24日追記:2ー3日に1回位の割合でエラーが発生している
ちなみに、何故このホストだけ来るかは、他のホストはCPUのコアを複数割り当ててあり、このホストだけ1つだけの割り当てだから。でもDiskは短時間んで一つしかアクセスできない。それなのにCPUの数で違って来るのかな??私には解らない。(ちなみにディスクはSSDなので早いはずだが)
表示が見にくい時はブラウザの横幅を変更して見てください。
P27の様なメールが着た。Zabbixのデフォルトでは5分間の平均のプロセス数が300を越えるとこのエラーを出す見たい。早速google先生に尋ねると、
http://www.zabbix.jp/node/1111に回答があった。
ここによるとCPUのロードアベレージが問題なければ、このトリガーを変更してもいいそうな。そもそも、この300という値はサンプルみたい。
でもデフォルトで登録されているトリガーは変更できなそうなので、
6:エラーメールが着たーディスクスの空きが少ない と同じように、デフォルトの分は無効にして、このホスト用に新しいトリガーを作る。
設定→ホストとクリックし、表示されたホストリストの Zabbix server の所の トリガーをクリックした時の表示がP28です。
ここで、Too many processes on {HOST.NAME} の行のステータスが有効(画面は無効ですが、これは設定後なので)になっていますので、そこをクリックすると無効に変わります。
次にP28の右上の方の トリガーの作成 をクリックして表示されるウィンドウがP29です。
名前を適当に入力し、追加 をクリック、
すると、P30が開きます。ここでアイテムの所はその右の 選択 をクリックするとウィンドウが開きますので、そこの下の方にある Number of processes をクリックするとアイテムに反映します。関数はその右の方にある▼(ドロップダウン)をクリックするとリストが表示されますので、その中から 期間Tの値の平均値>N を選ぶと関数に反映します。
最新の(T)には 5m と入れ、Nの所は 350 と入力し、挿入をクリックすると、P29に戻り、条件式が反映していますので、軽度の障害を選び、有効にチェックマークが入っているのを確認後、追加 をクリックして、トリガーを有効にします。
P23のようなディスクのフリースペースが少ないと言うエラーメールが着た。
これはKVMのサブホストとして動いている(zabbix上の名前 smb)に独立したパーティションとしてマウントしてある /Backup のフリースペースが19.74%しかないと言っている。でもこの /Backup の容量は610GB割り当ててあり、これでもフリースペースは120GBもある。
ここはいろいろなホストのバックアップ用の領域なので、全部フルバックアップを取ったとしても30GBも要らないのは過去のデーターから解っているので、もっと少ない容量でトリガーを出す。
ただし、デフォルトで設定のあるトリガーのレベルの変更は出来ないので、このトリガーを無効にして、この領域用に新しくトリガーを作る。
まず、設定→ホストとクリックし、表示されたホストのリストで、smb を選び、
表示されたウィンドウのホストリストの真ん中辺のトリガーをクリックした画面がP24です。
この、該当する項目の(画面は見にくいですが)ステータスが 有効 になっている所をクリックすると無効になります。
P24の右上の方にある、トリガーの作成 をクリックすると、
P25が表示されます。この画像は設定した後で、テキストボックスは空白です。
名前の所にわかりやすい文で入力し、
追加をクリックすると
P26が開きます。この画像も設定の後ですが、最初はテキストボックスは空白です。
選択をクリックし、開いたウィンドウから、Free disk space on /Bakcup (percentage) をクリックすると、アイテムに反映されます。
関数の所は右の方のドロップダウンリスト(▼)をクリックし、期間Tの値の最小値 < N をクリックすると、関数に反映します。
最新の(T)には10と入力し(この意味は10分間)、
Nのテキストボックスに設定したいパーセンテージを数字だけ(%は入れない)入力後、
挿入をクリックすると元の画像P25に戻り、条件式が反映しています。
深刻度を警告にして、有効にチェックマークが入っているのを確認後、追加(画面は更新になっていますが)をクリックすると反映します。
追記:後日調べると毎月第一日曜日に、全てのフルバックアップを取っているのですが、今日調べると約50GB強ありましたので、警告のレベルを10%から15%に変更しました。
少しすると、エラーメールが届いた。内容は画像P21を見ていただきたい。プロセスが100%になっている(P22)
グラフが見にくいですが、100%に張り付いています(これはあくまでzabbix関連のプロセスが100%になっているだけで、CPUのloadが100%という意味では無い。
しかし、エラーメールが来るのは、大切なエラーを見過ごしかねないので、ロードを下げる。
http://confignote.blogspot.jp/2014/05/zabbix-discoverer-processes-more-than.html
に回答があった。早速 /etc/zabbix/zabbix-server.conf に StartDiscoverers=3 (元は1だった)にして、zabbix-server を再起動したら出なくなった。
基本的には3:zabbix-agentの設定と同じですが、設定ファイルの /etc/zabbix/zabbix-agentd.conf の修正した所は(抜粋)
Server=zabbix-serverが動いているホストのIP
ListenIP=設定するホスト自身のIP
ServerActive=zabbix-serverが動いているホストのIP
Hostname=このホストの名前、後で設定するWEB上のホスト名と合わせる事。
そして、zabbix-agentをスタートし、zabbix server をインストールしたホストに移り(私はKVM)ブラウザから locahost/zabbixにアクセスし、ホストの設定をしていきます。注:この時点ではWEB上でホストの設定をしておりませんので、var/log/zabbix にある zabbix_agentd.log には ”4902:20160402:115404.867 no active checks on server [192.168.xxx.xxx:10051]: host [xxxx.kinryokai.net] not found”のようにエラーが表示されますが、WEBからホストの設定をすると問題なくなりますので、無視してください
P17の様に設定→ホスト→ホストの作成とクリックするとP18が開きますので、ホスト名(agentd.confに設定した名前と合わせる事)、表示名(何でも良い)を入力し、所属グループはその右にある、その他のグループから選択し、《 をクリックし、設定します。後はデフォルトでいいので、
テンプレートをクリックし、(P19)選択をクリック、すると新しいウィンドウが開き、そこから使いたいテンプレートにチェックマークを入れ、選択をクリックし、元の画面で追加をクリックすると名前の下に反映します(この画面は選択した後のものです)。最後に追加をクリックすると、P20の様にホストが追加されます。エージェントの状態も時間が経つと Z 状のアイコンが緑になります。
表示が見にくいようなら、ブラウザの横幅を調整すると見やすくなります。
いよいよ、メンバーであるホストを設定していきますが、zabbix-server が動いているサーバー(KVMの親サーバー)自身も監視するので、これにも設定していきます。zabbixーagentは最初ににインストールしてあります。
# gedit /etc/zabbix/zabbix_agentd.conf
修正した所は(抜粋)
Server=127.0.0.1
ListenIP ←コメントアウトのまま、ただしこれはzabbix-server自身でもある為、zabbix-agentのみの時は自身のIPを入れる
ServerActive=127.0.0.1 → 2016-4-1追記、下記参照
Hostname=このagent(serverでもある)が動いているhostname。後で設定するWEB上のホスト名と合わせる事。
Serverに設定するIPはもちろんzabbix-serverが動いているホストのIP。今回は127.0.0.1。これは各ホストのチェックの時、サーバー側からRQを出し、それにエージェント側のホストが返答する。(パッシブチェック)
ServerActiveも同じIPだが、これはこの設定を一度すると、最初にエージェントがサーバーにチェックに行き、その後はエージェント自身がサーバーにデーターを渡す。(アクティブチェック)
つまりパッシブだけならServerActive の設定はいらないので、コメントアウトのまま。
実は未だに理解が出来ていないが、これを設定すると、ホストが見つからないとエラーが出ていた。パッシブチェックでも問題ないのでコメントアウトのままにしている。
928:20160331:140604.308 no active checks on server [127.0.0.1:10051]: host [Zabbix server] not monitored
# service zabbix-agent start
# chkconfig zabbix-agent on
でzabbix-agentをスタートさせる。
次にWEBから設定していきます。
localhost/zabbixにアクセスし、P15の様に設定、ホストとクリックすると、Zabbix sever(agentd.confのHostnameに設定した名前)が表示されますが、ステータスが無効になっていますので、そこをクリックすると、P16の様に有効になります。又、エージェントの状態の一番左側の Z みたいなアイコンは少し時間が経つと緑色に変わります。もし、これが赤なら何か問題が有りますので、再度設定をチェックしてください。
表示が見にくいようなら、ブラウザの横幅を調整すると見やすくなります。
WEBにアクセスして、設定をしていきますが、その前に selinux を disabled にしておきます。selinuxの設定は
# getenforce
で見れます。これが disabled になっていない時はhttps://www.kinryokai.net/modules/news/article.php?storyid=207を参考に設定してください。(permissiveでもいいと思いますが、未確認)
その後、ブラウザから localhost/zabbix/ にアクセスします(P1)(もしログイン画面が出た場合はユーザー名 admin、パスワード zabbix で入れます)画面では setup.php も表示されていますが、一番最初にアクセスすると、自動的にsetup.phpに飛びます。Nextをクリックすると
P2の表示がでますので、すべてOKになっているのを確認後、Next をクリック。
P3が表示されたら、User と Password を入れますが、これらはデフォルトでそれぞれ admin zabbix になっています。その後、Test connection をクリックし、OKが表示されたら、Next をクリック。
P4が表示されたら、Name に このホストの hostname を入力しましたが、ここはブランクでもかまわないようです。そして、Next をクリック。
P5が表示され、データーを確認後、Next をクリック。
P6が表示され、Created が OK になっているのを確認後、Finish をクリック。
P7の表示になり、Username と Password をデフォルトの admin と zabbix と入力後、Sign in をクリック。
P8が表示されます。この画面で、Zabbix server is running がOKになっているのを確認します。
私はここがどうしてもOKにならず、だいぶ時間を無駄にしましたが、原因はselinuxがdisabledになっていませんでした。
あまり良い事ではないとは思いますが、私は常々selinuxをdisabledにしているので、このホストではenableになっているのに気がつくのが遅れました。
教訓:設定は必ず一から確認する事。
そして、設定をしていきますが、先ずはデフォルトで設定されているadminの削除ですが、その前にsuper adminを作らないといけないので、
タブにある administration、Users とクリックし、CONFIGURATION OF USERS にあるドロップダウンリストで、Users を選び、Create user をクリックします。(P9)
P10が開き、入力の必要なテキストボックスを入れていきますが、Groups の所はその右にある add をクリックすると、新しいウィンドウが開きその中に
zabbix administrators が有りますので、チェックマークを付けた後、select をクリックすると、Groupsに反映されます。
又、Laungagesは Japanese (ja JP)がいいでしょう。その後、上のタブにある Media をクリックすると
P11が開きます(この画面はP12も同じ画面に入っています)P11にある Add をクリックすると、P12が開きますので、
Typeがemail、Send to にはメールを受け取りたいメアド、すべてにチェックマークが付いている事、enabled になっていることを確認後、
Add をクリックするとMediaとしてe-mailが追加されます。
そして、上のタブのPermissions をクリックすると、P13が開きますので、ドロップダウンリストで Zabbix super admins を選び、
Add をクリックすると、ユーザーが追加されます。
その後、ログアウトして、新しい super adminとして追加したユーザーでログイン後、元々有ったAdminをdeleteしますが、見当が付くと思いますので、画像は載せません。
次に使わない media(障害の連絡に使う)が有りますので、disabled にしておくために、Administrations、Media types とクリックすると、
P14が開きますので、Jabber と SMS にチェックを入れ、ドロップダウンリストで Disable selected を選び Go をクリックするとこれらはdisableされます。
参考URL:http://changineer.info/server/monitoring/monitoring_zabbix.html#MySQL_innodb
http://www.server-world.info/query?os=CentOS_6&p=zabbix&f=1
zabbixを動かすためには、WEBサーバー(apache)、PHP、データーベース(mysql)、が要りますが、その設定は終わっているものとします。apache,mysql等のデーター場所はデフォルトのままです。
まずは、ZABBIXに必要なPHP関連をインストールする。
# yum install php-mysql php-gd php-xml php-bcmath
次にZABBIXのレポジトリーを導入します。
# yum install http;//repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
(XOOPSが悪さをするので:を;に変えてある)
そうすると /etc/yum.repos.d にzabbix.repo が出来ますが、enableになっていますので、変更し、disableにしておきます。
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/
enabled=0 ← 1を0に変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
enabled=0 ← 1を0に変更
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
ありゃー、エラーが出る
エラー: パッケージ: zabbix-web-japanese-2.4.7-1.el6.noarch (zabbix)
要求: zabbix-web = 2.4.7-1.el6
インストールしています: zabbix-web-1.8.22-1.el6.noarch (epel)
zabbix-web = 1.8.22-1.el6
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest
# yum remove zabbix-web
再度インストール
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
またしてもエラー。今度は
エラー: パッケージ: zabbix-server-2.4.7-1.el6.x86_64 (zabbix)
要求: fping
エラー: パッケージ: zabbix-server-2.4.7-1.el6.x86_64 (zabbix)
要求: iksemel
エラー: パッケージ: zabbix-server-mysql-2.4.7-1.el6.x86_64 (zabbix)
要求: libiksemel.so.3()(64bit)
問題を回避するために --skip-broken を用いることができません
これらを試行できます: rpm -Va --nofiles --nodigest
これらは標準のレポジトリーではインストール出来ないが、EPELにある。私はEPELのレポジトリーはインストール済みだが、disable しているので、
# yum --enablerepo=epel install iksemel fping
libiksemel.so.3はiksemel を入れると一緒に入れるみたい。と言うのもiksemel をインストール後 updatedb して locate libiksemel.so.3 をすると、 /usr/lib64 に入っていた。
またまた、インストール
# yum install --enablerepo=zabbix zabbix zabbix-get zabbix-server zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-mysql zabbix-web-japanese
やっとインストール出来た。次にデーターベースにzabbixのDBを作成します。
# mysql -u root -p
パスワードを入力後
mysql> create database zabbix;
mysql> grant all privileges on zabbix.* to zabbix@'localhost' identified by '使いたいパスワード';
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by '使いたいパスワード';
mysql> flush privileges;
mysql> exit
お分かりだとは思いますが、DB名:zabbix、ユーザー名:zabbix、パスワード:使いたいパスワード になります。これらは後でserverの設定で使用します。
データーベースに初期データーを投入します。
# cd /usr/share/doc/zabbix-server-mysql-*/create/
# mysql -u root -p zabbix < schema.sql
# mysql -u root -p zabbix < images.sql
# mysql -u root -p zabbix < data.sql
それぞれパスワードの入力が必要です。
今回私は /etc/my.cnf の設定を変更しています。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysql/mysqld.log
character-set-server=utf8
default-storage-engine=InnoDB
innodb_buffer_pool_size=512M
innodb_log_file_size=16M
innodb_log_files_in_group=2
#skip-grant-tables これは [ERROR] Can't open the mysql.plugin table が出た時に使った
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set=utf8
但し、mysqlのインストール後にログのサイズを変更したため、mysqld を止めてから /var/lib/mysqlにある、ib_logfile0 と ib_logfile1 を消すその後 mysqld を起動する。(mysqlが自動で作る)
clientのキャラクターセットは
# mysql -u root -p -e 'show variables like "character%"'
で表示される、character_set_client等の値がutf8になっていなかった為。変更したので再起動
# service mysqld restart
サーバー設定(/etc/zabbix/zabbix_server.conf)
変更したのは DBPassword= を記入しただけ、これ以外に DBName= DBUser= もあるがデフォルトでzabbix になっており、mysqlに設定をしたものと同じである。
サーバーを起動
# service zabbix-server start
# chkconfig zabbix-server on
zabbixはWEBを前提としていますので、WEBからも設定しますが、yum でインストールした時に /etc/httpd/conf.d/ に zabbix.conf が出来ています。
基本的には何もしなくてもいいのですが、私はメモリーをたくさん積んでいるので一部下記の様に変更しました。
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 512M
php_value post_max_size 32M
php_value upload_max_filesize 16M
php_value max_input_time 300
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
</IfModule>
# service httpd graceful
次はWEBから設定をしていきます。