Ubuntu Maverick Meerkat 10.10 Server Edition
VMWareとかVirtualBoxとかにUbuntuServerをインストールしてある
OpenSSH を導入しリモートログイン出来るようになっている
Apache2, MySQL, PHP5 がインストールしてある
ターミナルエミュレーターから接続して操作する
(01)Nagiosをインストールする
Nagiosをインストールする
$ sudo apt-get install nagios3
インストール途中でnagiosadminのパスワードを聞かれる
nagios_passwdとした
(02)Nagiosにアクセスしてみる
http://server.ip.address/nagios3/(03)Nagiosでsshを監視できるように設定を変更する
監視対象が ssh ログイン可能かどうか確認する
/usr/lib/nagios/plugins/check_ssh -p 22 -t 5 -H localhost
ssh のポート番号を標準から変更しているなら、変更先を指定して確認する
/usr/lib/nagios/plugins/check_ssh -p 65535 -t 5 -H localhost
プラグインの設定ファイルを見てオプションを確認する
$ sudo nano /etc/nagios-plugins/config/ssh.cfg
ポート番号を指定して監視する場合はこうなっている
# 'check_ssh_port' command definition
define command{
command_name check_ssh_port
command_line /usr/lib/nagios/plugins/check_ssh -p '$ARG1$' '$HOSTADDRESS$'
}
ローカルネットワーク上の全ての仮想マシンは、ボート番号 65535で有ると仮定
/etc/nagios-plugins/config/ssh.cfg を参考に
/etc/nagios3/conf.d/services_nagios2.cfg へ、環境にあう設定を書き込む
$ sudo cp /etc/nagios3/conf.d/services_nagios2.cfg /etc/nagios3/conf.d/services_nagios2.cfg.backup
$ sudo nano /etc/nagios3/conf.d/services_nagios2.cfg
以下の部分は全てコメントアウトする
ssh port 22 を監視に行き、ポートが開いてないのでエラーになるため。
# 'check_ssh_myport' command definition
define service {
hostgroup_name ssh-servers
service_description SSH
check_command check_ssh
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
以下の内容を追記する(port_numberは環境に合わせて変更すること)
# 'check_ssh_myport' command definition
define service {
hostgroup_name ssh-servers
service_description MySSH
check_command check_ssh_port!65535
use generic-service
notification_interval 0 ; set > 0 if you want to be renotified
}
設定ファイルにエラーが無いか確認する
$ sudo /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
エラーが無ければ再起動
$ sudo service nagios3 restart
(04)NagiosでMySQLを監視できるように設定を変更する
MySQLにnagiosアカウントを作る
mysql>GRANT ALL PRIVILEGES ON *.* TO 'nagios'@'%' IDENTIFIED BY 'nagios_db_passwd' WITH GRANT OPTION;
MySQLがローカルホスト以外を受け付けるようにする
$ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.backup2
$ sudo nano /etc/mysql/my.cnf
以下の部分をコメントアウト
bind-address = 127.0.0.1
他のipからも繋がるようにする
#bind-address = 127.0.0.1
設定後、MySQLを再起動
$ sudo service mysql restart
MySQLがLISTEN しているか確認
$ sudo netstat -tlpn
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 12527/mysqld
となっていれば良い
コマンドラインから監視できるかテスト
/usr/lib/nagios/plugins/check_mysql -H server.ip.address -u nagios -p nagios_db_passwd
Uptime: 842 Threads: 1 Questions: 878 Slow queries: 0 Opens: 2097 Flush tables: 1 Open tables: 64 Queries per second avg: 1.42
等と返ってくれば良い
/etc/nagios-plugins/config/mysql.cfgをみて 引数等を確認
全てのサーバーがMySQLを起動していないが、localhostではMySQLを起動しているので
設定するファイルは
/etc/nagios3/conf.d/localhost_nagios2.cfg
になる
localhostを監視する設定ファイルを変更する
$ sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg /etc/nagios3/conf.d/localhost_nagios2.cfg.backup
$ sudo nano /etc/nagios3/conf.d/localhost_nagios2.cfg
以下追記
define service{
use generic-service ; Name of service template to use
host_name localhost
service_description MySQL
check_command check_mysql_cmdlinecred!nagios!nagios_db_passwd
}
設定ファイルにエラーが無いか確認する
$ sudo /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
エラーが無ければ再起動
$ sudo service nagios3 restart
確認してみる
http://server.ip.address/nagios3/
ユーザー名 : nagiosadmin
参考
Ubuntuのmysqlに外部から接続 - クライミング好きプログラマーのプログラミング日記
http://d.hatena.ne.jp/gac777/20090916/1253107772
0 コメント:
コメントを投稿