zabbix で net.tcp.service[https] が ZBX_NOTSUPPORTED となる件

zabbix で net.tcp.service[https] が ZBX_NOTSUPPORTED となってしまった時の対処をメモ。

 

環境: RHEL 6.3, zabbix 2.2

 

$ zabbix_get --host target --key net.tcp.service[https]
ZBX_NOTSUPPORTED

 

という状態だった。

公式ドキュメント(1 Zabbixエージェント [Zabbix Documentation 2.2])には

> httpsおよびtelnetサービスは、Zabbix 2.0からサポートされています。

と書いてあるし、なんぞ。

 

そんなとき、Zabbix 2.0.1 and https - ZABBIX Forums にたどり着く。

httpsのサービス監視をするためには、zabbix_agentのビルドオプションに `--with-libcurl` をつける必要があったらしい。

というわけで、--with-libcurlをつけてビルドしなおしたところ、

$ zabbix_get --host target --key net.tcp.service[https]

1

キタワァ.*・゜゚・*:.。..。.:*・゜(n‘∀‘)η゚・*:.。. .。.:*・゜゚・*!!!!!☆

 

ちなみに、ビルドしなおし前後のldd結果は以下のとおり。

<before>

$ ldd `which zabbix_agent`
    linux-vdso.so.1 =>  (0x00007fff607ff000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003b57800000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000003b56c00000)
    librt.so.1 => /lib64/librt.so.1 (0x0000003b57400000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003b59000000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003b56800000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003b56400000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003b57000000)

 

<after>
$ ldd `which zabbix_agent`
    linux-vdso.so.1 =>  (0x00007ffffc5ff000)
    libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x0000003355200000)
    libm.so.6 => /lib64/libm.so.6 (0x0000003354200000)
    libdl.so.2 => /lib64/libdl.so.2 (0x0000003353600000)
    librt.so.1 => /lib64/librt.so.1 (0x0000003353e00000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003355600000)
    libc.so.6 => /lib64/libc.so.6 (0x0000003353200000)
    libidn.so.11 => /lib64/libidn.so.11 (0x0000003355e00000)
    libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x0000003357e00000)
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x000000335ba00000)
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x000000335be00000)
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x000000335ca00000)
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003358a00000)
    libz.so.1 => /lib64/libz.so.1 (0x0000003354600000)
    libssl3.so => /usr/lib64/libssl3.so (0x000000335b600000)
    libsmime3.so => /usr/lib64/libsmime3.so (0x000000335c600000)
    libnss3.so => /usr/lib64/libnss3.so (0x0000003356e00000)
    libnssutil3.so => /usr/lib64/libnssutil3.so (0x0000003359600000)
    libplds4.so => /lib64/libplds4.so (0x0000003359a00000)
    libplc4.so => /lib64/libplc4.so (0x000000335a600000)
    libnspr4.so => /lib64/libnspr4.so (0x000000335a200000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003353a00000)
    libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x0000003356a00000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003352e00000)
    liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x0000003357600000)
    libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003359e00000)
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x000000335ce00000)
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x000000335c200000)
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x000000335e600000)
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003357a00000)
    libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003358600000)
    libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003354e00000)
    libfreebl3.so => /lib64/libfreebl3.so (0x0000003359200000)

libssl, libcryptoらへんが必要だったという認識。

 

 

 

solr キャッシュ

solrのキャッシュについて調べたのでメモ。

キャッシュの種類

  • queryResultCache 検索結果キャッシュ:

    検索結果のキャッシュ。

    キャッシュキーは3つ。検索式q、ソート条件sort、フィルタクエリfq

     これらの要素をキーとして、検索結果に含まれるドキュメントのIDの順序を保持するリストをキャッシュデータとして保存している。

    ドキュメントIDとは、solr内部で利用している管理用のID。 

 

  •    filterCache フィルタキャッシュ :

      フィルタクエリの結果のキャッシュ。

  フィルタクエリ結果に含まれるドキュメントIDの集合をキャッシュされる。

 

  •    documentCache ドキュメントキャッシュ :

  ドキュメントのキャッシュ。

  検索結果として返すドキュメントをドキュメントIDをキーとしてをキャッシュする。

 

  •     filedValueCache フィールド値キャッシュ:

         multiValued='true'フィールドのファセットの検索の際に利用されるらしい。multivaluedフィールドがちょっとよくわからない。

 

  •     ユーザ定義キャッシュ :

     solrconfig.xmlで独自に設定して登録したキャッシュ。

自動ウォームアップ

 キャッシュで使用しているドキュメントIDという内部用IDは、インデックスが更新されるとつかえなくなる。インデックスが更新されると、ドキュメントIDも変わるため。なので、キャッシュはインデックス更新時に基本的に破棄される。

 が、それではキャッシュヒットが維持できないので、インデックス更新時にもキャッシュを引き継いで利用できるようにするための機能が「自動ウォームアップ(auto warmup)」。

 これまでキャッシュで使用していたキーで検索して、キャッシュを再生成する。

 

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)

 

 

【Linux】ミドルウェアもろもろ バージョン確認方法

メモ。

 

■ntp

ntpd --version

 

■zabbix agent

zabbix_agent --version 

 

postfix

/usr/sbin/postconf  | grep mail_version

 

sendmail

sendmail -d0.101

 

ffmpeg

ffmpeg -version

 

php

php -v

 

apache

/usr/local/apache2/bin/httpd -v

 

■redis

redis-server --version  

 

■memcache

memcached -h の1行目

 

Redis入門 インメモリKVSによる高速データ管理 (アスキー書籍)

Redis入門 インメモリKVSによる高速データ管理 (アスキー書籍)

 

 

【ntpd】cap_set_proc() failed to drop root privileges: Operation not permitted

レンタルサーバ上のCentOS6.4にて、ntpdをインストール後、起動しようとすると、下記のエラーが/var/log/messageに出力されていた。

cap_set_proc() failed to drop root privileges: Operation not permitted 

 

suz-lab - blog: EC2(CentOS)で時刻同期(NTP)

を参考にし、/etc/sysconfig/ntpdを以下のように修正したところ、解決。

修正前:OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"

修正後:OPTIONS="-x -p /var/run/ntpd.pid"

 

【MySQL】ERROR 1064 (42000) at line XXX: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STATS_PERSISTENT=0' at line XX

実践ハイパフォーマンスMySQL 第3版

MySQL5.6でmysqldump --no-data したテーブル定義を事情によりMySQL5.0にインポートすることになった。

結果、以下のエラーが出て、そのままではインポートできず。

ERROR 1064 (42000) at line XXX: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'STATS_PERSISTENT=0' at line XX 

 

ググったところ、この「STATS_PERSISTENT」とは、MySQL5.6からのパラメータらしく、5.5にインポートしてエラーとなっている人もいた。

MySQL5.6からdumpしたデータをMySQL5.5に入れたらエラー出た - FAT47の底辺インフラ議事録

 

というわけで、mysqldumpで吐き出した定義ファイルから、STATS_PERSISTENT部分を削除し、再度インポートしたらエラーは出なくなった。

 

ただし、「STATS_PERSISTENT」が何たるかはググったけどわからず。。

このやり方で移行して、大丈夫なのか。。