2010年12月15日水曜日
サーバ証明書の有効期限日までの日数をもとめよ
----- ここから -----
#!/usr/bin/perl
use Date::Parse;
use Net::SSLeay qw{ sslcat };
$host = "ホスト名";
$port = 443;
$request = "";
($reply, $err, $server_cert) = sslcat($host, $port, $request);
$asn1_utctime = Net::SSLeay::X509_get_notAfter($server_cert);
$date_string = Net::SSLeay::P_ASN1_UTCTIME_put2string($asn1_utctime);
$cert_notafter_time = Date::Parse::str2time($date_string);
$time_diff = $cert_notafter_time - time;
print $time_diff / (60 * 60 * 24) . "\n";
----- ここまで -----
エラー処理していないのでよしなに。
ホスト名とかポート番号とかを引数で指定できるようにすれば汎用的になります。
で、Zabbixと組み合わせてサービスとして売る。(爆)
2010年11月27日土曜日
CentOS 5.5 + MySQL 5.1.53 + Zabbix 1.8.3
CentOS 5.5標準のMySQLではバージョンが古いため、新しいバージョンで実装された機能を利用することができません。
ZABBIX-JPのフォーラムを見ていて、MySQL 5.1.53でInnoDB Pluginを利用した環境を構築したいという要望が挙っていたので、どうすれば簡単に構築できるか検証してみました。
極力標準のRPMそのままか、共存できることを意識して構築を進めることとします。
InnoDB Pluginを利用するメリットに関しては、検索すればすぐ出てくるので検索してみてください。
ただし、以下の手順は十分な試験を行っていませんので、ご自身で責任を持ってトライしてください。
----------
1.MySQL 5.1.53のインストール
MySQLのパッケージを
http://dev.mysql.com/downloads/mysql/
からダウンロードします。
ダウンロードするのは、
MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm
MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm
MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm
です。
この後の手順で、MySQLのライブラリを利用したコンパイルを行うので、develパッケージも必要です。
ダウンロードしたら、これらのパッケージをインストールします。
# rpm -ivh MySQL-server-community-5.1.53-1.rhel5.x86_64.rpm MySQL-client-community-5.1.53-1.rhel5.x86_64.rpm MySQL-devel-community-5.1.53-1.rhel5.x86_64.rpm
インストール後、MySQLの設定を変更するため、一度サービスを停止します。
# service mysql stop
InnoDBのエンジンとしてInnoDB Pluginを利用するため、ベースとなる設定ファイルに変更します。
# cp /usr/share/mysql/my-small.cnf /etc/my.cnf
/etc/my.cnfのmysqldセクションに、以下のような設定を追加します。
---
[mysqld]
...
ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.so
default-character-set=utf8
innodb_file_per_table
...
---
設定追加後、サービスを起動します。
# service mysql start
確認方法は、mysqlコマンドで接続してshow pluginsコマンドを実行すると以下のように表示されます。
---
mysql> show plugins;
+------------+----------+----------------+---------------------+---------+
| Name | Status | Type | Library | License |
+------------+----------+----------------+---------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | ha_innodb_plugin.so | GPL |
+------------+----------+----------------+---------------------+---------+
10 rows in set (0.01 sec)
mysql>
---
----------
2.phpパッケージの作成
事前に、MySQLのライブラリを利用したビルドができるよう、リンクを作成しておきます。
# ln -s /usr/bin/mysql_config /usr/lib64/mysql/
RPM作成用のアカウントを作成して、そのアカウントでRPMを作成するためのディレクトリを作成します。
$ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
次に、~/.rpmmacrosを作成して、以下の記述を行います。
---
%_topdir /home/ユーザー名/rpm
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS
---
CentOSのミラーサイトから、phpのSRPMをダウンロードし、RPM作成用のアカウントでインストールします。
$ rpm -ivh php-5.1.6-27.el5.src.rpm
そのままでは、コンパイル時にエラーとなってしまうので、ソースのtarball内のソースの一部を書き換えて、またもとのtarballに作成し直して置き換えます。
$ cd ~/rpm/SOURCES/
$ tar zxvf php-5.1.6.tar.gz
$ cd php-5.1.6/ext/mysqli
mysqli_api.c内の「gtpr」を「char*」に変更します。
$ cd ~/rpm/SOURCES/
$ mv php-5.1.6.tar.gz php-5.1.6.tar.gz.org
$ tar zcvf php-5.1.6.tar.gz php-5.1.6
置き換えたら、RPMのビルドを実行します。
足らないビルド用のRPMが不足していたら随時インストールします。
# yum install bzip2-devel curl-devel db4-devel expat-devel gmp-devel aspell-devel httpd-devel libjpeg-devel libpng-devel pam-devel openssl-devel sqlite-devel zlib-devel pcre-devel krb5-devel libc-client-devel cyrus-sasl-devel openldap-devel postgresql-devel unixODBC-devel libxml2-devel net-snmp-devel libxslt-devel libxml2-devel ncurses-devel gd-devel freetype-devel
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --define 'dist .el5' php.spec
----------
3.Zabbixパッケージの作成
Zabbixのパッケージを作成するために必要なパッケージをインストールします。
# yum install gnutls-devel OpenIPMI-devel
以下のパッケージに関しては、ZABBIX-JPが公開しているRPMをダウンロードしてインストールしておきます。
# wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/fping-2.4b2-16.el5.JP.x86_64.rpm
# wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/iksemel-1.2-13.el5.JP.x86_64.rpm
# wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/iksemel-devel-1.2-13.el5.JP.x86_64.rpm
# wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/libssh2-1.2.5-1.el5.JP.x86_64.rpm
# wget http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/libssh2-devel-1.2.5-1.el5.JP.x86_64.rpm
# rpm -ivh fping-2.4b2-16.el5.JP.x86_64.rpm iksemel-1.2-13.el5.JP.x86_64.rpm iksemel-devel-1.2-13.el5.JP.x86_64.rpm libssh2-1.2.5-1.el5.JP.x86_64.rpm libssh2-devel-1.2.5-1.el5.JP.x86_64.rpm
RPM作成用のユーザでZabbixのSRPMをインストールしてビルドを実行します。
$ rpm -ivh zabbix-1.8.3-1.el5.JP.src.rpm
$ cd ~/rpm/SPECS/
$ rpmbuild -bb --define 'dist .el5' zabbix.spec
----------
4.Zabbixのインストール
Zabbixをインストールするために必要なパッケージを事前にインストールします。
# yum install php php-bcmath php-gd php-mbstring php-xml php-common php-pdo
独自に作成したphp-mysqlをインストールします。
# cd ~RPM作成用ユーザ/rpm/RPMS/x86_64/
# rpm -ivh php-mysql-5.1.6-27.el5.x86_64.rpm
Zabbixをインストールします。
# rpm -ivh zabbix-1.8.3-1.el5.x86_64.rpm zabbix-agent-1.8.3-1.el5.x86_64.rpm zabbix-server-1.8.3-1.el5.x86_64.rpm zabbix-server-mysql-1.8.3-1.el5.x86_64.rpm zabbix-web-1.8.3-1.el5.x86_64.rpm zabbix-web-mysql-1.8.3-1.el5.x86_64.rpm
以降、DBの作成などは通常のZabbixのインストールと同様です。
----------
2010年11月3日水曜日
Zabbix 1.8.4rc2リリースノート(てきと~訳)
Zabbix 1.8.4の変更点 :: Zabbix APIの一貫性向上
:: DB2のサポート
:: Web監視のためのNTLM認証
:: Ez Textingサービスを利用してSMS通知を送信します
:: ユーザマクロの改善
:: Zabbix 1.8.4rc2でのバグフィックスと改善
:: すべての改善とバグフィックスの一覧
インストールとアップグレード方法 インストール
アップグレード
リリース前のテスト Zabbixサーバ
Zabbixエージェント
商用サポート
参考
|
2010年10月22日金曜日
一般ユーザでrpmbuild(AWS)
簡単にインストールするならZABBIX-JPのRPMでっしょ。
と思い立ち、そのままRHEL5用のRPMをインストールしようとしたら、色々と依存関係にひっかかってインストールできませんでした。
SRPMからなら行けるだろうと思って、いつものテキトーな方法でrpmbuildしようとSRPMの展開で失敗。
お行儀良くrpmbuildするなら、ちゃんと設定しないといけなかったのねん。
ということで、
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/952rpmbuild.html
を参考に、ビルド用のユーザを作成して、以下のようにフォルダと設定ファイルを作成してからSRPMをインストールすればよかった模様。
$ mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
次に、~/.rpmmacrosを作成して、以下の記述を行う。
-----
%_topdir /home/ユーザー名/rpm
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS
-----
あとは、fping、iksemel、iksemel-develのRPMはRHEL5用をZABBIX-JPから持ってきて、他のビルドに必要な*-develパッケージをインストールすれば、あとは、rpmbuild -bb zabbix.specだけっす。
2010年10月3日日曜日
Opsview 3.9.0の日本語化
内部のNagiosも日本語化すると以下のようになります。
でも、OpsviewからNagiosを呼び出す部分に問題があって、最初に開いたときにNagiosの部分が文字化けしてしまいます。
画面によっては、リフレッシュを実行できるのですが、リフレッシュを実行すれば正常に表示できるようになります。
く~、あともうちょっとなのに~。
こんなレベルでもパッチが欲しい人いるかな?
Nagiosのパッチは、以下のURLで公開されていたものを参考にしました。
http://www.momo-i.org/chapter5/nagios-3x.html
ありがとうございました。

2010年9月30日木曜日
Opsviewのインストールメモ
ま、RPMでならインストールは簡単ですな。
以下、詳細です。
1.OSのインストール
2.ユーザとグループの作成
nagiosユーザを作成し、nagiosグループとnagcmdグループに所属させる。
# useradd nagios
# groupadd nagcmd
# usermod -G nagcmd nagios
3.必要パッケージのインストール
mysql-server
java-1.6.0-openjdk
4.MySQL設定の追加
/etc/my.cnfに以下の設定を追加する。下の2行は推奨ではあるが特に
最後のinnodb_buffer_pool_sizeは、稼動させるサーバ上の実メモリ
サイズを考慮して指定すること。
---
default-character-set=utf8
skip-character-set-client-handshake
innodb_file_per_table
# innodb_flush_log_at_trx_commit=2
# innodb_buffer_pool_size=1G
---
5.rpmforgeリポジトリの追加
6.Opsviewリポジトリの追加
--- /etc/yum.repos.d/opsview.repo
[opsview]
name = Opsview
baseurl = http://downloads.opsera.com/opsview/yum/community/centos/5/$basearch
enabled = 1
protect = 0
gpgcheck = 0
---
7.Opsviewのインストール
# yum install opsview
8.MySQLサーバの起動
# service mysqld start
# chkconfig mysqld on
9.nagiosアカウントの環境用設定を追加
~nagios/.bash_profileに以下を追加。
---
test -f /usr/local/nagios/bin/profile && . /usr/local/nagios/bin/profile
---
10.nagiosユーザに切り替え
# su - nagios
11.DBアカウントのパスワード変更
/usr/local/nagios/etc/opsview.conf 内の「changeme」となっている
パスワードを変更する。
12.
$ /usr/local/nagios/bin/db_mysql -u root -p password
$ /usr/local/nagios/bin/db_opsview db_install
$ /usr/local/nagios/bin/db_runtime db_install
$ /usr/local/nagios/bin/db_odw db_install
$ /usr/local/nagios/bin/db_reports db_install
$ /usr/local/nagios/bin/rc.opsview gen_config
$ /etc/init.d/opsview-web start
http://IPアドレス:3000/
13.Apache経由でアクセス可能に設定
# cd /etc/httpd/conf.d
# cp /usr/local/nagios/installer/apache_proxy.conf opsview.conf
# vi opsview.conf
DocumentRootをコメントアウト
# vi /etc/httpd/conf/httpd.conf
# usermod -G nagcmd apache
username: admin
password: initial
14.ConfigurationのReload
画面上部の「Configuration status」が黄色の場合は、設定が反映
されていないので、クリックして「Reload Configuration」ボタン
をクリックして反映する。
おまけ:
メッセージの日本語化は、RPMでインストールした場合は、
/usr/local/opsview-web/lib/Opsview/Web/I18N/
ディレクトリに各言語用のファイルが配置される。
日本語版の言語ファイルは無いので、i_default.poをコピーして
ja.poを作成し、各メッセージを翻訳する。文字コードはUTF-8。
変更したら、
/etc/init.d/opsview-web restart
を実行すること。
マルチランゲージ対応と聞いていたから期待していたのに、内部はNagiosそのままだから、Nagiosは別途日本語化しないと駄目。
ま、これは「マルチランゲージ対応とは言えない」が私の結論。
でもまぁ、素のNagios使うよりはよさそう。ichingaとも比較してみないとね。
2010年9月27日月曜日
Zabbix Install for English speaker(from source)
But, this document is supprt in Japanese only.
文法がとかいう私の英語力に対するつっこみは受け付けません。
At first, Please read offical manuals.
http://www.zabbix.com/documentation/1.8/manual/installation
---
1. Install OS
---
First, CentOS 5 or RHEL 5 install to box with develop environment.
---
2. Install depends libraries
---
Install from install DVD or official repositry.
mysql-devel, net-snmp-devel, curl-devel
Download and Install from rpmforge.
iksemel-devel
http://packages.sw.be/iksemel/
---
3. Download Zabbix tarball
---
Download from offical site.
http://www.zabbix.com/download.php
File name is 'zabbix-1.8.3.tar.gz'.
---
4. Expand that tarball
---
# tar zxvf zabbix-1.8.3.tar.gz
---
5. Create database
---
# cd zabbix-1.8.3
# service mysqld start
# mysql -uroot
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> flush privileges;
mysql> quit
# mysql -uzabbix -ppassword zabbix < create/schema/mysql.sql
# mysql -uzabbix -ppassword zabbix < create/data/data.sql
# mysql -uzabbix -ppassword zabbix < create/data/images_mysql.sql
---
6. Configure sources & make install
---
# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
# make
# make install
---
7. Create config files
---
# cd /etc
# mkdir zabbix
zabbix_server.conf and zabbix_agentd.conf copy to /etc/zabbix.
# cd zabbix-1.8.3
# cp misc/conf/zabbix_agentd.conf misc/conf/zabbix_server.conf /etc/zabbix
Edit config files.
zabbix_server.conf:
'DBUser' and 'DBPassword' must change to your database for zabbix in zabbix_server.conf.
zabbix_agentd.conf:
'Server' must change to zabbix server's IP Address.
'Hostname' must change to hostname that zabbix_agentd running.
This hostname use on host infomation of Web frontend.
---
8. Create start/stop script for init
---
Sample file are under misc/init.d/redhat/8.0.
Copy to /etc/init.d and edit if you want.
progdir="/usr/local/zabbix/bin/" to progdir="/usr/local/sbin/"
# chmod +x /etc/init.d/zabbix*
---
9. Start Server and Agent
---
# useradd -s /sbin/nologin zabbix
# service zabbix_server start
# service zabbix_agentd start
---
10. Web frontend setting
---
Install from install DVD or official repositry.
httpd, php, php-bcmath, php-gd, php-mbstring, php-xml, php-mysql
# cd zabbix-1.8.3/frontends
# cp -r php /var/www/html/zabbix
# cd /var/www/html/zabbix
# chown -R apache:apache conf
# chmod 775 conf
some php setting change in /etc/php.ini.
ex.
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_execution_time = 300
max_input_time = 300
mbstring.func_overload = 6
date.timezone = Asia/Tokyo
# service httpd start
Access to http://ip-addr/zabbix/