:::: MENU ::::

Zabbixサーバとエージェントの通信が取れないよくある症状

Zabbixサーバーが既に稼働してあるものとして、情報を取りたいエージェント(Agent)側にzabbix agentをインストールすることが多々あります。

そのままインストールして、デフォルトのまま起動すると、大抵、サーバー側と通信取れないことがよくあるのでメモしておきます。
Zabbix Agentのインストール手順については割愛します。(yum,aptでzabbix agentをインストールするだけなので)

確認事項と対応

ファイヤーウォール

  • 使用しているOSのファイヤーウォールが起動しているのか?
  • ファイヤーウォールでポートがブロックされていないか?
  • SELinuxが起動していないか?

SELinuxやファイヤーウォール(iptables)が起動していたら、一旦無効にしてみましょう。(手っ取り早いので)

zabbix_agentd.confの設定

デフォルトでは、#Server = 127.0.0.1となっているので、ここをZabbixサーバーのIPに変更しましょう。

デフォルトのままの設定で通信出来ない場合は、下記のようなログが残っているはずです。

failed to accept an incoming connection: connection from “xxx.xx.xx.xx" rejected, allowed hosts: "127.0.0.1"

PIDが作成出来ないエラーの場合

稀に、zabbix agent起動時に、PIDファイルが作成出来なくて、起動に失敗する場合があります。

ログを確認すると、下記のようなエラー

zabbix_agentd [890]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [2] No such file or directory

これは、OSを再起動した際に、tmpfsの影響により、ディレクトリやファイルが消される場合があります。
この場合には、/var/run/zabbixのディレクトリがあるか確認することとパーミッションを確認しましょう。

# mkdir /var/run/zabbix
# chown zabbix:zabbix /var/run/zabbix

この後に、zabbix agentを再起動し、/var/run/zabbix/zabbix_agentd.pidが作られていることを確認

その他

現在のZabbix最新版は3.xであり、以前からzabbixを利用していれば2.x以前を利用している場合もあるかと思います。
バージョンによる不具合も起きるかもしれませんので、なるべくバージョンは合わせたほうが良いでしょう!


Debian8へZabbix 3.x Agentのインストール

Debian8へZabbix 3.xのインストール

Debianデフォルトのzabbixパッケージは、2.xと古いので、3.xのリポジトリを追加してインストールする手順です。

リポジトリ追加

# wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix-release/zabbix-release_3.0-1+jessie_all.deb
# dpkg -i zabbix-release_3.0-1+jessie_all.deb
# apt-get update

zabbix-agentインストール

# apt-get install zabbix-agent

サーバー先の設定

zabbix agentはサーバーへ情報を送るプログラムなので、情報を送るサーバーIPを記述する必要があります。

# vi /etc/zabbix/zabbix_agentd.conf
....
Server=127.0.0.1  <--このIPを修正します
....

保存後に、zabbix agentを再起動

# systemctl restart zabbix-agent.service

Zabbixサーバー

ちなみに、Zabbixサーバーをインストールするには下記でインストール

# apt-get install zabbix-server-mysql zabbix-frontend-php

今回のZabbix agentを含め、Debianにかぎらず、サーバーをインストールした後には、設定ファイルやPHP環境を変更する必要があるので、下記公式の記事を参照です。
https://www.zabbix.com/documentation/3.0/manual/installation/install_from_packages#debianubuntu


3Wareドライバーの在り処

Debianで動作していたLinux機が起動出来なくて、OS再インストールした際に、RAIDカードの3ware製ドライバーのリンク先が変更されていたようで、結構手間取ってしまった。

以前は、3ware.comでしたが、下記URLに変更されていたんですね。

http://www.avagotech.com/support/download-search

せっかくなので、ついでにインストールのメモ

3DMのインストール

上記URLから該当するRAID Controllerを検索し、Software欄で、Linux版の3DM2 CLI Linux from the 10…..をダウンロード

解凍とインストール

# unzip 3DM2_CLI-linux_***.zip
# chmod 755 install.sh
# ./install.sh -i


..........
Press Y to accept the License Agreement or N to decline (and exit) then press 'Enter Key': Y
(Yを入力する)

3ware CLI &amp; 3DM2 installation, configuration and removal script.
(c) 2010 LSI, Inc. All rights reserved.

Script version: v3.00.00.021
*******************************


3DM2 supports two modes of operation.
-------------------------------------
0 - 3DM2 with WEB interface
1 - 3DM2 Error/Event Logger only

Which version of 3DM would you like configured? (0|1) 0 (0を入力)
*** 3DM2 selected. ***

*** Installing 3DM2 and CLI ***


Press 'Enter Key' to continue with installation or Control C to exit.

Creating installation tmp directory /tmp/3ware... done.

Extracting installation files to /tmp/3ware... done.

Changing directory to /tmp/3ware to continue installation done.
Creating 3dm2 configuration directory (/etc/3dm2)... done.
Creating 3dm2 install path (/opt/3ware/3DM2)... done.
Creating 3dm2 message file install path (/opt/3ware/3DM2/msg)... done.
Creating 3dm2 help file install path (/opt/3ware/3DM2/help)... done.
Creating CLI install path (/opt/3ware/CLI)... done.

******************************************
**** Installing 3DM2 files for x86_64
******************************************

Copying install.sh to /opt/3ware... done.
Installing 3dm2u binary to /opt/3ware/3DM2... done.
Setting runtime permissions for /opt/3ware/3DM2/3dm2... done.
Installing 3dm2 message files to /opt/3ware/3DM2/msg... done.
Installing 3dm2 help files to /opt/3ware/3DM2/help... done.
Installing 3dm2 configuration file to /etc/3dm2... done.
Installing 3dm2 logo file to /etc/3dm2... done.
Installing /etc/init.d/tdm2 script... done.
Setting runtime permissions for /etc/init.d/tdm2... done.

******************************************
**** Installing CLI files for x86_64
******************************************

Installing CLI binary to /opt/3ware/CLI/tw_cli... done.
Setting runtime permissions for /opt/3ware/CLI/tw_cli... done.
Installing CLI html help to /opt/3ware/CLI... done.
Installing CLI man page to /usr/share/man/man8... done.

***************************************
**** Configuring CLI &amp; 3DM2
***************************************

Creating /usr/sbin/3dm2 symbolic link to /opt/3ware/3DM2/3dm2... done.
Creating /usr/sbin/tw_cli symbolic link to /opt/3ware/CLI/tw_cli... done.
Setting runtime permissions for /etc/3dm2/3dm2.conf... done.

***************************************
**** Finishing Installation
***************************************


*** Starting 3DM2 using configuration found in /etc/3dm2/3dm2.conf ***
[ ok ] Starting tdm2 (via systemctl): tdm2.service.

今回は、対話モードでのインストールでしたが、対話無しで一気にインストールする場合は、下記で。

# ./install.sh --install -fN0

確認

ps aux|grep 3dm
root 14492 0.0 0.0 77220 2744 ? Sl 09:21 0:00 /usr/sbin/3dm2

接続

http://localhost:888/
Administratorでログインする
初期パスワードは3ware

補足

自Linux上のFirefoxからlocalhost:888にアクセスしても、接続出来ないので、ファイヤーウォールやらポート確認してみましたが、問題ないので、他端末のGoogle Chromeでアクセスしたところ、無事にアクセスすることが出来た。

Firefoxだけの原因のようで、下記の何れかに該当するのかもしれません。

https://support.mozilla.org/ja/kb/firefox-cant-load-websites-other-browsers-can

追記:私の環境の場合、httpsでアクセスした際に証明書の問題のようで、「例外を追加」することでアクセス出来るようになりました。

https://support.mozilla.org/ja/kb/secure-connection-failed-error-message


HomebrewでGUIなWiresharkをインストール

Mac上でWiresharkを使う仕事があったので、Homebrewでインストールしてみた。

$ brew wireshark

ところが、CUIなtsharkがインストールされただけで、グラフィカルなWiresharkではありません。

GUIなWiresharkをインストールするには、オプション(引数)指定してインストール必要があるようです。
一旦、インストールしたwiresharkをアンイストールして、再インストールです。

$ brew remove wireshark
$ brew install wireshark --with-qt
$ brew cask install wireshark-chmodbpf
$ brew linkapps wireshark

これで、/Applicationsフォルダにもリンクされたwiresharkが置かれるので、通常のアプリのようにGUIでwiresharkが起動します。


Mac OS Xでcronが使えない

Mac OS X上でcronを使う場合、Unix/Linux同様に、下記コマンドで編集・設定が出来ます。

$ crontab -e

デフォルトのエディタが起動し、編集画面となりますが、エディタがvimの場合で、保存しようとすると、下記のエラーが表示されることがあります。

crontab: no crontab for foo – using an empty one
crontab: temp file must be edited in place

どうやら、tempファイルを作成する場所に問題があるようなので、.vimrcに下記を追加

$ cat ~/.vimrc
 set backupskip=/tmp/*,/private/tmp/*

再度、crontabで設定し、反映されていることを確認

$ crontab -l

また、デフォルトのエディタがvimでなはく、viになっている場合には下記のエラーが出ることもあります。

crontab: no crontab for username – using an empty one crontab: “/usr/bin/vi” exited with status 1

この場合には、環境でエディタを別のエディタに指定しましょう。
vimである必要がなく、nanoでもemacsでも良いでしょう。

export EDITOR=/usr/bin/vim

一時的に環境変数を変更しても良いですが、頻繁に使用するのであれば、~/.bashrcや.zshrcなどに明記しておくと良いでしょう。


PHP構文内でHTMLのエスケープシーケンスがエラーになる

PHP構文内にHTML記述する場合には、特殊文字はエスケープシーケンスを使う必要があります。

例えば、PHP構文内で、HTMLにてURLやパスを指定する場合

print(" <frame src=\"index.php\" name=\"head\" scrolling=\"no\">");

このように、HTML内の”は¥”で記述します。

それで、このような記述で、サーバーによって、正常に起動する場合と、エラーになる場合が発生しました。

エラーになる場合は、そのままのエスケープシーケンスが混入しているため、src=”index.php”…となるところが、src=¥”index.php¥”となっているのが原因です。
正常に動作するサーバーとエラーとなるサーバーをApache,PHPの設定で比較した所、short_open_tagが原因でありました。

# vim /etc/php.ini
....
short_open_tag = On  #<--OffからOnへ変更
....

エラーとなるサーバーでは、short_open_tag = Offであったため、これをOnの設定にし、Apacheを再起動したとこ、エラーが解消され、正常に動作となりました。

 


1Passwordの警告によるブラウザーの設定

しばらく前から、Google Chrome上に、Macアプリの1Password機能拡張を入れていたら、下記の警告が出るようになっていたので対処。

1Password can’t verify the identity of your web browser

ヘルプを参照記事を見れば、対処方法が載っています。
https://support.1password.com/code-signature/

私の環境の場合は、Homebrew caskによるGoogle Chromeを起動していたからでした。

アプリケーションフォルダにブラウザーアプリを入れろとの事ですので、Homebrewではなく、正式にGoogle Chromeをダウンロードして、アプリケーションフォルダに入れて解決です。

尚、アプリを変更しても、タブやクッキー、機能拡張などの全ての設定は、~/Library/Application Support/Google/Chrome内に保存されていますので、安心して引き継がれます。


WEBページの文字化けはApacheの設定だけではなかった

CentOS7にて、yumでインストールしたApacheで、以前の設定のまま稼働状態になっていたにも関わらず、なぜかUTF-8以外のページが文字化けしていた。

UTF-8以外のページは、charsetの文字コードも記述しているにも関わらず、ブラウザー(Safari,Firefox,Google Chrome)で自動認識されない症状。

Apacheの設定では、このようば文字化けに関する設定は、/etc/httpd/httpd.conf内のAddDefaultCharが関係しているので、

#AddDefaultCharset UTF-8
AddDefaultCharset Off

このどちらかを記述していれば問題ないはず。

さらには、conf.d内のバーチャルホスト等の設定も、これらの記述は書かれていないことを確認。
設定を変更したならば、Apacheを再起動することで有効になるが、これでも文字化けは解決せず。

かなり、時間を費やして、ページや設定を弄りましたが、どうやら、この問題はApacheだけではなかったようです。

それは、PHPの設定

PHPの設定でも、以前から全く変更はしていませんでしたが、/etc/php.ini内のdefault_charsetを空白にする必要があるようです。

;default_charset = "UTF-8"
default_charset = ""

これで、Apacheを再起動したところ、文字化けが解消されました。

文字化けしてたページ内では、ごく普通なHTMLで、PHP構文は使ってないにも関わらず、 PHPが関係していたのです。


SSH接続後にCan’t open display等でXが起動出来ない

sshで接続先のX Windowsを利用したGUIアプリを起動すると、よく下記のエラーなどで陥る罠

Error: Can't open display:
unable to open X server `'
unable to open display :0.0
Warning: No display specified. You will not be able to display graphics on the screen.

Xの環境変数やら、ディスプレイ番号も絡んで来ると思いきや、SSH接続でX転送が有効になっていない事が多々あるのでメモ

$ ssh -Y <remote_host>

接続後に、リモートホスト側のXアプリを起動。


CORESERVERのmysqlとmysqldumpのパス

CoreServerで動かしているWordPressでDBのバックアップが取られていない事に、今更気づいたので、確認した所、mysqlmysqldumpが見つかりませんとの表示が出ていた。

CoreServerでは、mysqlとmysqldumpのパスが違う所にあるようなので、下記のパスに設定

mysqldump : /usr/local/mysql/bin/mysqldump
mysql : /usr/local/mysql/bin/mysql

これでOKです。

せめて、/usr/local/bin下にでも入れてくれればいいのにね。


ページ:1234567...24