Nagiosのインストール

 統合監視システム「Nagios」(ナギオス)を自宅のCentOS6.3(VMWare Player上)にインストールしました。
 
 インストールは下記の本を参考にしました。この本の手順に従えばインストールできます。
 標準プラグインのインストールが上手く行かなかったのですが、OpenSSL入れて再度実行しなおしたらうまくインストールできました。NRPEもインストール。
 
 
 
 この本には書いてないけど、NRPEを使う場合はFirewallの設定変更が必要です。ポート5666を開ける必要があります。
 
 いざ監視設定。ホストの追加がわかりにくいんですが、まずは/usr/local/nagios/etc/objects配下に、「ホスト名.cfg」の設定ファイルを作ります。Nagiosユーザで作りました。Ping監視するのであれば以下のとおり。

#--------------------------------------------------
# Router.cfg
#--------------------------------------------------
define host{
use             generic-switch
host_name       Router
alias           Router
address         192.168.xxx.xxx
hostgroups      switches
}
 
define hostgroup{
hostgroup_name  switches                ; The name of the hostgroup
alias           Network Switches        ; Long name of the group
}
 
define service{
use                     generic-service
host_name               Router
service_description     PING
check_command           check_ping!200.0,20%!600.0,60%
normal_check_interval   5
retry_check_interval    1
}
#--------------------------------------------------

 続いて、この「Router.cfg」を読みこませるために、/usr/local/nagios/etcにあるnagios.cfgに以下を追記します。
 
cfg_file=/usr/local/nagios/etc/objects/Router.cfg
 
 設定にミスがないかチェックするために以下のコマンドを実行。
 
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
 
 結構長く出力されますが、最終的に
 
Total Warnings: 0
Total Errors: 0
 
Things look okay – No serious problems were detected during the pre-flight check
 
 が表示されればOK。誤記あると以下のようなエラーになります(しっかりとやってしまいました)。
 
***> One or more problems was encountered while processing the config files…
 
Check your configuration file(s) to ensure that they contain valid
directives and data defintions. If you are upgrading from a previous
version of Nagios, you should be aware that some variables/definitions
may have been removed or modified in this version. Make sure to read
the HTML documentation regarding the config files, as well as the
‘Whats New’ section to find out what has changed.
 
 エラーなければNagios再起動。
 
# service nagios restart
 
 これでホストの監視が実行されます。
 
 しかしながら、
 
 ・ホスト追加・設定追加がGUIでできない。
 ・サービス再起動(あるいはHUPシグナル送り)が必要。
 
 という点で、Zabbixでいいんじゃないかなー、という気がします。
 
 本は今年61冊目。

Continue reading “Nagiosのインストール”

Windows PowerShellでメール送信

 Windows PowerShellでメール送信するスクリプトを書いてみました。
 @ITの「[運用]Windows PowerShellコマンド&スクリプティング入門(後編)」を参考にしました。
 
 .NET Frameworkのクラスを用いているのですが、そもそも私プログラマしていたのは10年以上前で、なおかつWindows系のプログラミングはほぼやったことがない。Googleで色々と調べたりしましたが、クラスライブラリの説明はMSDNにあります。ここをまず確認するべきでした。
 
 以下、スクリプトです。
 「★★★」のところには適切な値を入れてください。
 
# --------------------------------------------------
# 各種設定
# --------------------------------------------------
 
# メール情報。宛先は;で複数記載することが可能となる。
$smtp = “★★★” #SMTPサーバ(必須項目)
$targets = @(“★★★”,”★★★”) #送信先(必須項目・複数指定可能)
$from = “★★★” #送信元(必須項目)
$replyTo = “★★★” #ReplyTo先(オプション項目。一つだけ設定。NullでもOK)
$bcc = “★★★” #BCC先(オプション項目。一つだけ設定。NullでもOK)
 
# メールサブジェクトと本文。
$subject = “★★★”
# 本文はヒアドキュメントで記載。
$body = @”
★★★
★★★
★★★
“@
 
# --------------------------------------------------
# メール送信処理
# --------------------------------------------------
 
# New-Opjectコマンドレットで.NETクラスをインスタンス化。
$mail = New-Object Net.Mail.MailMessage
$mail.From = $from
$mail.ReplyTo = $replyTo
$mail.Subject = $subject
$mail.Body = $body
 
# エンコーディング。System.Text.Encodingの静的メンバにアクセスするため::を用いている。
$mail.SubjectEncoding = [Text.Encoding]::GetEncoding(“ISO-2022-JP”)
$mail.BodyEncoding = [Text.Encoding]::GetEncoding(“ISO-2022-JP”)
 
# To設定。複数設定可能。
foreach($to in $targets){ $mail.To.Add($to) }
 
# Bcc設定。設定なしも可。
if($bcc -ne “”){ $mail.BCC.Add($bcc) }
 
# ReplyTo設定。設定なしも可。
if($replyTo -ne “”){ $mail.ReplyTo = $replyTo }
 
# New-Opjectコマンドレットで.NETクラスをインスタンス化。
$sc = New-Object Net.Mail.SmtpClient($smtp)
# 送信。
$sc.Send($mail)
$mail.Dispose()

Continue reading “Windows PowerShellでメール送信”

Microsoft Office 2010のWord,Excel,Powerpointを安価に入手する

 Microsoft Office 2010のWord,Excel,Powerpoint(ついでにOneNote)を安価に入手する方法は、なぜか日本では販売されていない「Microsoft Office2010 Home&Student」エディションをゲットすることであります。ライセンス的にパーソナルな利用に限定される点に注意が必要ですけど。
 
 輸入版がAmazonで3,400円(!)くらいで売っています。
 
 
 
 これを買うとライセンスだけ入っているパッケージが送られてきます。
 Microsoft Officeの英語サイトに行って、試用版の「Microsoft Office2010 Home&Student」エディションをダウンロード。インストールするときのインストールキーに、パッケージに入っていたキーを入力します。インストール終わるとライセンス認証画面になるので、電話での認証を選んで、日本のフリーダイヤル窓口に電話するとIVR(自動音声応答装置)が応答してくれて、指示に従って行くとライセンス認証が完了して使えるようになります。
 
 日本語化したい場合は別に言語パックなんかを買う必要があるそうですが、英語の勉強を兼ねて英語版のまま使うことにします。
 
 以上、ご参考まで。

Continue reading “Microsoft Office 2010のWord,Excel,Powerpointを安価に入手する”

寺島広大『Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用』

 寺島広大『Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用』を読みました。
 
 
 
 VMWare上のCentOS6.3にZabbix入れたり設定するときのリファレンスとして使っていましたが、あらためて通読してみました。運用上のヒントも多く、参考になります。
 
 Zabbixに関してはネットにも多くの情報がありますし、ムックにも取り上げられることも多いですが、やはり一度は本書を読んでおくべきと考えます。
 
 今年60冊目。

Continue reading “寺島広大『Zabbix統合監視「実践」入門 ~障害通知、傾向分析、可視化による省力運用』”

Zabbixフロントエンド「ざびたん」のセットアップ

 Zabbixのフロントエンド「ざびたん」導入完了~。
 
 
 
 「ざびたん」については、「サーバ擬人化ユーザ会」のページを参照。
 障害発生と復旧を声とバルーンと表情で教えてくれます。
 
 
 
 具体的な設定方法は、「俺のZabbixがこんなに可愛いわけがない(おかわり)」のスライドを見ればいいのですが、ポイントはリモートコマンドの引数です。
 
host:”C:\SSPDIR\ghost\zabitan2-suzu\zabbi-msg.py” “{HOSTNAME}:{TRIGGER.NAME}:{TRIGGER.SEVERITY}:{TRIGGER.VALUE}:{ITEM.VALUE}”
 
 というように5つの引数を渡します。前掲のスライドだと4つになっているので、そのままだとエラーになります。バージョンが違うんでしょうね。
 
C:\>cmd /C “”C:\SSPDIR\ghost\zabitan2-suzu\zabbi-msg.py” “host:Ping:High:1″”
Traceback (most recent call last):
File “C:\SSPDIR\ghost\zabitan2-suzu\zabbi-msg.py”, line 146, in
main()
File “C:\SSPDIR\ghost\zabitan2-suzu\zabbi-msg.py”, line 48, in main
trigger_keys[4] = trigger_keys[4].decode(‘shift-jis’)
IndexError: list index out of range
 
 ちなみに、「host」はざびたんインストールされているPCのホスト名で、Zabbixにホスト登録されていないとダメです。

Continue reading “Zabbixフロントエンド「ざびたん」のセットアップ”

Zabbixでシンプルチェック「icmpping」がうまく動かない

 Zabbix1.8で、シンプルチェック「icmpping」がうまく動かなくて悩んでおりました。
 色々と調べて、fpingの設定とかも確認しましたが、問題なし・・・。
 
 ようやく「ルートビアっておいしいよね。」というブログの「zabbixサーバ側の諸設定」という記事に行き着きました。
 
 ・・・SELinuxが原因でした。
 
# echo 0 > /selinux/enforce
 
 で、うまく動きました!
 
 /etc/selinux/configも無論修正しておきます。
 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – SELinux is fully disabled.
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted – Only targeted network daemons are protected.
# strict – Full SELinux protection.
SELINUXTYPE=targeted
 
 うーん、ハマった。
 SELinuxの設定とかわかるまではOffにしておこう。

Continue reading “Zabbixでシンプルチェック「icmpping」がうまく動かない”

辻真吾『Pythonスタートブック』

 辻真吾『Pythonスタートブック』を読みました。
 
 
 
 仕事で急遽使わなくてはならなくなったので、入門書から読んでみました。
 わかりやすい。初心者向けで、プログラミング経験者には物足りないかもしれません。
 
 サンプルのコードも書いてみました。インデントで字下げすることでブロックを表現するというのが新鮮。美しく見えますね。
 
 もっとレベルの高い本も読んでみよう。
 
 今年59冊目。

Continue reading “辻真吾『Pythonスタートブック』”

ZabbixサーバとZabbixエージェント間の通信ができなかった件(zabbix_agentd.conf設定)

 VMWare Playerを使っておりまして、ホストOS=Windows 7、ゲストOS=CentOS 6.3としております。
 
 CentOS 6.3にZabbixサーバー、Windows 7にZabbix Agentを入れて動かしたのですが、Windows 7が監視できませんでした。というか、CentOSから、
 
$ telnet Win7のIPアドレス 10050
 
 としてもすぐ切られる状況でした。
 (CentOSってデフォルトだとtelnet無いのね。入れました)
 
 Zabbix上でも、
 
 Got empty string from [Win7のIPアドレス]. Assuming that agent dropped connection because of access permissions
 unable to connect [111]: Connection refused
 
 といったエラーが出ておりました。
 
 まず疑うべきはWindows 7のファイアウォール機能です。こちらは受信ポートとして、10050,10051をオープンにしました。これでもダメ。ここから道が長かった・・・。
 
 Win7のzabbix_agentd.confのデバッグレベルを上げ(DebugLevel=4)、しばらく放置。zabbix_agentd.logを見ると以下のエントリがありました。 
 
3460:20120812:090113.099 Listener error: Connection from [ホストOS(Win7)のIPアドレス] rejected. Allowed server is [ゲストOS(CentOS)のIPアドレス]
 
 ???
 
 ものは試しということで、zabbix_agentd.confのServer部分を変更。
 
Server=ゲストOS(CentOS)のIPアドレス
 
 を、
 
Server=ゲストOS(CentOS)のIPアドレス,ホストOS(Win7)のIPアドレス
 
 としてAgent再起動。そしたらなんと動きました!
 
 よくわからん・・・。なぜでしょう。誰か教えてください(T_T)
 VMWareの仕様を確認しないといけないな。

Continue reading “ZabbixサーバとZabbixエージェント間の通信ができなかった件(zabbix_agentd.conf設定)”