「遅かれ早かれ、すべてのシステム管理者の生活の中で、目と手がすべてのサーバーを追跡するのに十分ではない瞬間が訪れます。あちこちにいくつかの問題があります。 そして、ここで彼らは救助に来ます-偉大で恐ろしい監視システムです。」(
C )
xanfこの状況は私にとって起こりました。すべてを追跡することは常に不可能です。たくさんのスクリプトを書くことも選択肢ではありませんが、さまざまなクラッシュにすばやく対応し、いくつかのパラメーターの履歴を保持する必要があります。 そのため、監視システムを設置することにしました。 Zabbixが選択されました。 ハブでzabbixを使用するためのいくつかのレシピがありますが、インストールのトピックはカバーされていません。 私は独創的であるふりをしません、説明された方法は非常に簡単で、インターネットと公式文書から情報を蓄積します。 だから。 私と友人が支援する:
PostgreSQL DBMSとNginx + PHP-FPM経由のWebマズルを使用したZabbix 1.8のインストールオプション。
UPD:バージョンzabbix 3.4用に更新このガイドでは、すべてのコンポーネントが1つのサーバーにインストールされます。 必要に応じて、データベースを備えた別のサーバー、Webインターフェイス用の別のサーバー、およびzabbixサーバー自体を使用できます。 この場合、zabbixサーバーはデータベースに接続する必要があり、Webインターフェースはデータベースとzabbixサーバーに接続する必要があります。
1. FreeBSDをインストールします。 (mc、bash、およびその他の味)
2. zabbix-serverをインストールします
最初は、SQLiteにインストールしようとしましたが、ソースからの./configureはすべてを正常に定義していましたが、バージョン3.0.0より上のシステムにはSQLiteがないと信じていました。 ソリューションはsqlite3.hヘッダーファイルにありましたが、検索された場所にはありませんでした。 しかし、私は気にしませんでした zabbixサイトのドキュメントには、バージョンzabbix 1.8はSQLiteをサポートしていないと書かれています。 PostgreSQLを使用することに決めたのは、MySQLよりもPostgreSQLを使用したからです。
cd / usr / ports / net-mgmt / zabbix-server
インストールをクリーンにする(Postgresqlを選択)
3. PostgreSQLをインストールする
zabbix-serverによってインストールされたpostgres-clientと同じバージョン。
バージョンを確認します。
pkg_info | grep postgr
postgresql-client-9.5.9 PostgreSQLデータベース(クライアント)
cd / usr / ports /データベース/ postgresql95-server /
インストールをクリーンにする
postgresql_enable = "YES"を/etc/rc.confに追加します
4.次に、zabbix-serverのベースを作成します。
私はwebmord操作エラーがありました、彼女はデータベースの権利を持っていませんでした、なぜなら 最初にユーザーpgsqlからデータベースとテーブルを作成してから、ユーザーzabbixを起動しました。 私は彼にフルテーブルを与え、webmordを獲得しました。 この記事では、この瞬間を考慮に入れました。
su pgsql
/ usr / local / bin / initdb -D / usr / local / pgsql / data
/usr/local/etc/rc.d/postgresql start
su pgsql
psql -d template1
psql>データベースzabbixを作成します。
psql> CREATE USER zabbix with password 'tmppassword'(zabbixサーバーのユーザーを作成します)
psql>データベースzabbixのすべての特権をzabbixに付与します。
psql> \ q
cd / usr / local / share / zabbix34 / server / database / postgresql /
cat schema.sql | psql -U zabbix zabbix
psql -U zabbix zabbix <images.sql
psql -U zabbix zabbix <data.sql
(バージョン1.8では順序が異なりました。最初にdata.sql、次にimages.sql)
5. zabbix-serverを設定します。
cp /usr/local/etc/zabbix34/zabbix_server.conf.sample /usr/local/etc/zabbix34/zabbix_server.conf
以下を指定する必要があります。
Dbuser = zabbix、Dbpassword = tmppassword(データベースに接続するユーザー)
DBSocket = / tmp / .s.PGSQL.5432またはDbport = 5432(デフォルトではmysqlにあります)
ソケットを介した接続を使用します(すべてが同じマシン上にあるため)。 残りはそのままです。
行zabbix_server_enable = "YES"を/etc/rc.confに追加して開始します
echo 'zabbix_server_enable = "YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/zabbix_server start
6. Zabbix-Frontend(webmord)をインストールします。
cd / usr / ports / net-mgmt / zabbix-frontend
インストールをクリーンにする
PGSQLオプションを選択します
•FPMおよびPostgresqlをサポートするPHPをインストールします
UPD:現在のポートでは、これをwebmordの依存関係としていますが、何か問題がある場合は、
cd / usr / ports / lang / php5
削除する(すでにインストールされているが、異なるパラメーターを使用している場合)
config install clean(PHP_FPMを選択)
cd / usr / ports / lang / php5-extensions
make config install clean(Postgresqlを選択)
ここでも、ソケットを使用して作業します(そうでない場合は、すべてをそのままにします)、config:/usr/local/etc/php-fpm.conf、編集:
listen = /tmp/php-fpm.sock
「php_fpm_enable = "YES"」という行をファイル/etc/rc.confに追加し、開始します
echo 'php_fpm_enable = "YES"' >> /etc/rc.conf
サービスphp-fpm start
私たちはチェックします:
sockstat | grep php
Webマズルは通常Apacheを介して設定されますが、nginxで設定しました。 構成はよりシンプルで、リソースの消費も少なくなります。 彼は、Apacheほど悪くないこのタスクに対処すると思います。
cd / usr / ports / www / nginx
インストールをクリーンにする
構成/usr/local/etc/nginx/nginx.confを編集します。 私はこれを得ました:
http {
mime.typesを含めます。
default_type application / octet-stream;
#コメント解除
log_format main '$ remote_addr-$ remote_user [$ time_local] "$ request"'
'$ステータス$ body_bytes_sent "$ http_referer"'
'"$ http_user_agent" "$ http_x_forwarded_for"';
#Webサーバーへのアクセス試行のログ記録(コメント解除してパスを変更)
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
#圧縮を有効にする
gzip on;
サーバー{
80を聞きます。
server_name ZABBIX_SERVER_IP_OR_NAME; #以下について
#zabbix-server'a webmordへのアクセスログのみ
access_log /var/log/nginx/zabbix.access.log main;
#Mordファイルフォルダー
場所/ {
root / usr / local / www / zabbix;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
場所= /50x.html {
root / usr / local / www / nginx-dist;
}
#NginxとPHP-FPMの友達
場所〜\ .php $ {
ルートhtml;
fastcgi_pass unix:/tmp/php-fpm.sock; #または127.0.0.1:9000(php-fpm構成が修正されなかった場合)
fastcgi_param SCRIPT_FILENAME / usr / local / www / zabbix $ fastcgi_script_name;
fastcgi_param QUERY_STRING $ query_string;
fastcgi_paramsを含めます。
}
#zabbixファイルへのアクセスを拒否する
場所〜* /(?:api | conf | include)/ {
return 301 ht_p://zabbix.local/index.php;
}
}
server_nameについて。 まず、ローカルホストをそこに残しました。 すべてうまくいきましたが、列(ホストのリストなど)でソートしようとすると、URLはlocalhostから作成されました。 私はこのレーキに長い間zabbixの設定とコードを登るのに苦労しましたが、役に立ちませんでした。 私は記事を書くときにこのパラメーターに注意を引き、それが機能しました。 誰かがその理由を説明できますか? :)
ログファイルへのパスも変更したため、ログファイル用のディレクトリを作成します。
mkdir / var / log / nginx
chown www:www / var / log / nginx
/etc/rc.confに行nginx_enable = "YES"を書き、開始します:
/usr/local/etc/rc.d/nginx start
次に、ht_p://ブラウザーでzabbix_server_ipに移動し、ウィザードを使用してインストールを続行します。
ステップ3で、PHPパラメーターがチェックされ、ファイル/usr/local/etc/php.iniで修正されます。
ファイルが存在しない場合は、php.ini.developmentまたはphp.ini.productionからコピーできます。
ルール:
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = "アジア/イルクーツク"
php-fpmを再起動した後
/usr/local/etc/rc.d/php-fpm restart
ステップ4で、PostgreSQLを選択し、ユーザーとパスワードを入力してzabbixデータベースにアクセスします(この場合、zabbix \ tmppassword)。 サーバーアドレスはlocalhost、tkのままにします。 PostgreSQLはwebmordと同じマシンにインストールされ、デフォルトでlocalhostからの接続を受け入れます。
UPD1: webmordがソケットを介してPostgreSQLに接続するために、localhostの代わりに/ tmp /(.s.PGSQL.5432を持つフォルダーへのパス)を書き込みます。 または、ファイル/usr/local/www/zabbix/conf/zabbix.conf.phpに$ DB ["SERVER"] = '/ tmp';と記述します。 (オプション)PostgreSQLへのtcp / ip接続を完全に無効にできるようになりました。
ステップ7で、クリックして構成をダウンロードし、ダウンロードしたファイルの内容を含むファイル/usr/local/www/zabbix/conf/zabbix.conf.phpを作成しますセキュリティの問題は解決されていません。 基本的に、これは設定ファイルへのアクセス、特にパスワードが置かれている場所へのアクセスを制限し、フォルダへのWebサーバーアクセスと外部からのデータベースへのアクセスを制限します。 構成に重大な欠陥がある場合(ほとんどすべての構成がデフォルトで使用されます)、これを指摘してください。
zabbix-agentのインストールとデバイス監視の設定を検討することは、このメモの範囲外です。
PS:使用したコンポーネントの構成と保守に関する経験と知識があまりないので、コメントと推奨事項を喜んでいます。