タグ: centos

ssh でログイン時に Authentication refused

ちょっと、というか結構ハマった。

鍵交換方式でクライアントからログインしようとすると弾かれる。
鍵を作りなおしてもauthorized_keysを作りなおしても弾かれる。
authorized_keysのパーミッションを700とか600にしても弾かれる。

secureのログを確認すると毎回、

Authentication refused: bad ownership or modes for directory /root/.ssh

って言われてる。
確かに[ .ssh ] ディレクトリのパーミッションは777だけど。。。

結構投げやりに変更。

chmod 700 .ssh/

行けたよ・・・

ログの確認は大事。。。

ssh ログインを公開鍵秘密鍵方式に限定する

まずは公開鍵秘密鍵の生成に書いてあるとおりに秘密鍵と公開鍵を設定しておきます。
サーバ側で

vi /etc/ssh/sshd_config

と入力し、sshd_configを編集します。
60行目辺りに

PasswordAuthentication yes

とあるので、これを

#PasswordAuthentication yes
PasswordAuthentication no

と書き換えて、パスワードでログインすることを不可に設定して保存。

/etc/init.d/sshd restart

でsshdをリスタート。

TeraTermで秘密鍵を使ってログインできることを確認します。
ログインできたら今度はパスワードでのログインが出来ないことを確認して完了。

PoderosaやWinSCPだと、Putty Private Key Files形式しか受け付けてくれないようなので汎用性は低い?かも。
自分はTeraTermなので問題ありませんが。

Zabbix の Web Interface 日本語化

Web Interface のセットアップが終わると、自動的にログイン画面になる。
デフォルトの Username と Password はそれぞれ [ admin ] と [ zabbix ] なのでこれを使って [ Sign in ]。
Zabbix01

ログインするとデフォルトが英語表記なので、右上の[ Profile ]をクリック。
Zabbix02

Languageから[ Japanese (ja_JP) ]を選択して[ Save ]をクリック。
Zabbix03

これで日本語表記になる。
あとはホストの追加とか、いろいろやっていく。
Zabbix04

Zabbix の Web Interface 導入

Server の導入Agent の導入が終わっても裏側で動いているだけで状況を確認することが出来ない。
ので、 Web Interface を導入します。

Web Interface を入れるサーバにはApacheとPHPが必要なので事前にインストールしておく。

入れ方は単にインストールディレクトリ内の[ frontends/php/ ]にあるファイルを
Webサーバとしてアクセスできるところにコピーするだけ。

コピーしたディレクトリにアクセスすると、セットアップ画面が出るので[ Next ]で次へ。
Installation01

PHPの要件を満たしているかチェック画面が出るので、NG部分をphp.iniで修正していく。
すべてOKになったら[ Next ]で次へ。
Installation02

MySQLの要件チェック。データベースは事前に作成して、インストール用のSQLを実行しておく必要があります。
必要項目を入力して[ Test Connection ]をクリックしてOKが出たら[ Next ]で次へ。
Installation03

ZabbixサーバのIPアドレスとポート名を聞いてきます。
サーバと同一場所でWeb Interfaceを起動する場合は何も入力する必要ないです。
このまま[ Next ]で次へ。
Installation04

今まで入力したものの確認画面です。
確認して[ Next ]で次へ。
Installation05

zabbix.conf.php が作成できるか確認しています。
NGが出る場合は該当ディレクトリのパーミッションなどを確認します。
OKが出たら[ Finish ]でインストール完了です。
Installation06

「Zabbix agent on {HOST.NAME} is unreachable for 5 minutes」って

Zabbix agent on {HOST.NAME} is unreachable for 5 minutes

てなんじゃらほい。
他のところは問題無さ気なのにこれがエラーになってることで情報が取得できてない。

。。。

原因はzabbix_agentd.confにあった。

vi /usr/local/etc/zabbix_agentd.conf

で123行目辺りにある[ ServerActive ]にサーバ側のIPアドレスを指定していなかったので

ServerActive=192.168.1.10

を設定して保存。
いったんagentdを探してkill。

ps -ef | grep zabbix
kill *****

その後、

/usr/local/sbin/zabbix_agentd

で再度agentdを起動する。

ふぅ、エラー消えた。

zabbix_agentd.conf の編集

同一ディレクトリに zabbix_agent.conf と zabbix_agentd.conf があるけど、編集するのは zabbix_agentd.conf だけで大丈夫。
zabbix_agentd.confの編集。

vi /usr/local/etc/zabbix_agentd.conf

最低限2箇所かなぁ?

#Server=127.0.0.1
Server=192.168.1.11

#ServerActive=127.0.0.1
ServerActive=192.168.1.11

で、現行したら保存して終了。

zabbix用のユーザとグループを作成しておく。
作成しておかないとAgentdが起動できないので。

groupadd zabbix
useradd -g zabbix zabbix

Agent起動します。

/usr/local/sbin/zabbix_agentd

で、起動。

zabbix_server.conf の編集

今回はログをMySQLで保存していくのmysqlサーバに[ zabbix ]という名前でDBを作成しておきます。
名前のデフォルトが[ zabbix ]なのでこれで作成したけど
あとでconfを編集するときにも指定が出てくるので、最悪なんでもよし。

DBを作成したらこのDBにデフォルトのsqlを読み込ませておきます。
MySQL用のSQLはインストールディレクトリ内の[ database/mysql/ ]にあるかと。
ここに

  • schema.sql
  • images.sql
  • data.sql

の3つがあるのでこの順番に読み込ませます。
この順番じゃないとエラーが出るので。

zabbix_server.conf を編集していきます。

vi /usr/local/etc/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix
DBUser=root
DBPassword=**********

ぐらい変えておく。いや、DBNameはこれでデフォルトか。

zabbix用のユーザとグループを作成しておきます。
作成しておかないと次のzabbix_serverが起動できないので。

groupadd zabbix
useradd -g zabbix zabbix

で、zabbix_server起動します。

/usr/local/sbin/zabbix_server

で起動できればOK。

zabbix

監視したい、とのことなのでzabbixを入れてみる。
同一サーバ内でMySQLが稼働しているので、ここにログを入れ込むようにしたい。
ついでに、Web Interface を使いたいときはhttpd+phpが動作していないといけないっぽい。
要はLAMP環境を作っておけ、と。

zabbix 2.0.4 サーバをインストールしてみる

まず、ダウンロード。

wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz

で、ダウンロードしてくる。
ダウンロードしたら、

tar -zxvf zabbix-2.0.4.tar.gz

で解凍する。
次に

cd zabbix-2.0.4

で、解凍先のディレクトリに移動して

./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-ssh2

で、configureをかける。
Zabbix Agent のみの場合は

./configure --enable-agent

だけで良いみたい。
途中で

configure: error: in `/root/zabbix-2.0.4':
configure: error: no acceptable C compiler found in $PATH

解決策 → yum install gcc

とか

configure: error: Not found mysqlclient library

解決策 → yum install mysql-devel

とか

configure: error: Curl library not found

解決策 → yum install libcurl

とか

configure: error: SSH2 library not found

解決策
↓
yum install libssh2*
※ RPMforgeリポジトリが必要。RPMforgeリポジトリの追加参照。

とか

configure: error: Invalid NET-SNMP directory - unable to find net-snmp-config

解決策 → yum install net-snmp-devel

とか出たら、その都度足りないものをインストールしてやり直し。

Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              gcc
  Compiler flags:        -g -O2  -I/usr/include/mysql  -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -fasynchronous-unwind-tables -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv       -I/usr/include/rpm -I/usr/local/include -I/usr/include/gdbm -I/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE -I. -I/usr/include/net-snmp  -I/usr/include

  Enable server:         yes
  Server details:
    With database:         MySQL
    WEB Monitoring via:    cURL
    Native Jabber:         no
    SNMP:                  net-snmp
    IPMI:                  no
    SSH:                   yes
    ODBC:                  no
    Linker flags:          -rdynamic      -L/usr/lib/mysql -L/usr/lib      -L/usr/kerberos/lib  -L/usr/lib -L/usr/lib/lib  -L/usr/lib -L/usr/lib/lib -L/usr/lib 
    Libraries:             -lm -lrt  -lresolv    -lmysqlclient       -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz  -lnetsnmp -lcrypto -lm -lwrap -lcrypto  -lnetsnmp -lcrypto -lm -lwrap -lcrypto -lssh2

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    Linker flags:          -rdynamic     -L/usr/kerberos/lib
    Libraries:             -lm -lrt  -lresolv    -lcurl -ldl -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lidn -lssl -lcrypto -lz

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

とか出たらconfigure完了です。ふぅ。
で、次は書いてあるとおりに

make install

する。
とりあえずのインストールだけ完了かな?

次に

vi /etc/services

zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

の4行を追記しておく。
zabbixが使用するポートです。

crontab で rsync をまわす

バックアップサーバからcrontabで毎日昼間にrsyncをかける。
事前にバックアップから本番にアクセスできるよう公開鍵を事前に本番サーバに仕込んでおく。

0 10 0 0 0 rsync --delete -auz root@192.168.1.12:/mnt/D/ /mnt/F/
0 12 0 0 0 rsync --delete -auz root@192.168.1.12:/mnt/E1/ /mnt/G/
0 14 0 0 0 rsync --delete -auz root@192.168.1.12:/mnt/E2/ /mnt/H/

こんなカンジかな?

date.timezone を設定しておく

デフォルトのままで始めると phpinfo() を置いて見ただけでWARNINGを出してくれる。

You are *required* to use the date.timezone setting or the date_default_timezone_set() function.

とりあえずTimezoneをセットしろという事なので、php.iniでコメントアウトされている

;date.timezone =

のコメントアウトを外して

date.timezone = Asia/Tokyo

とする。
もしくは、PHP書き始めたら頭に

<?php
date_default_timezone_set('Asia/Tokyo');
・・・

を書いておく。