Zabbix-server(FreeBSD、PostgreSQL、Nginx)のインストール方法

「遅かれ早かれ、すべてのシステム管理者の生活の中で、目と手がすべてのサーバーを追跡するのに十分ではない瞬間が訪れます。あちこちにいくつかの問題があります。 そして、ここで彼らは救助に来ます-偉大で恐ろしい監視システムです。」( Cxanf

この状況は私にとって起こりました。すべてを追跡することは常に不可能です。たくさんのスクリプトを書くことも選択肢ではありませんが、さまざまなクラッシュにすばやく対応し、いくつかのパラメーターの履歴を保持する必要があります。 そのため、監視システムを設置することにしました。 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:使用したコンポーネントの構成と保守に関する経験と知識があまりないので、コメントと推奨事項を喜んでいます。



All Articles