Zabbix 2.4 の構築から監視、メールの設定まで
はじめに
諸事情あり、Zabbixの2.4.6を構築して一通りの監視業務を行おうということになった
2.4.6はすでにサポートが切れているバージョンであり、
今更誰得な情報なのかというところもあるが、
自分の作業記録と、
いつかの誰かの役に立てればと思い記録する
使用するソフト
CentOS 6.8 :Zabbixを載せる用
Zabbix server 2.4.6: 監視用サーバー
Zabbix agent 2.4.6: 被監視用クライアント
Postfix 2.6.6 メール送信用サーバー
PHP 5.3.3
MySQL 5.1
必要なパッケージのダウンロード
Zabbix 2.4.6
はZabbix公式のページから取得することはすでにできない
※コメントをいただいて修正
インストールに必要なパッケージは公式リポジトリからも取得可能
公式リポジトリ
今回はZabbix-serverについては、Zabbixが用意しているソースをダウンロードし、
Zabbix-agentについてはリポジトリからインストールというやり方でやっていく
まずソースを取得するにはSourceForge.netなどからダウンロードまたはwgetする
zabbix-2.4.6.tar.gz
ダウンロードしたパッケージをCentOS上の好きなところに置き解凍する
$ tar -zxvf zabbix-2.4.6.tar.gz
Zabbixユーザーの作成
$ groupadd zabbix
$ useradd -g zabbix zabbix
Zabbix構築のための必要なソフトのインストール
$ groupadd zabbix
$ useradd -g zabbix zabbix
Zabbixを構築するにはいくつか追加のインストールが必要
##gcc
$ yum -y groupinstall "Development tools"
##mysql
$ yum -y install mysql-server mysql-devel
$ chkconfig mysqld on
$ service mysqld start
##apache
$ yum -y install httpd php
$ chkconfig httpd on
$ service httpd start
##zabbixインストール時に利用
$ yum -y install libxml2 libxml2-devel net-snmp net-snmp-devel curl libcurl libcurl-devel
また、セキュリティはガバガバになるが、
SELINUXとfirewallを無効化する
このあたりは実際の運用にあわせて細かく設定を加えていくこと
今回はとりあえず動かすというのを目標にしている
$ iptables -F
$ setenforce 0
Zabbix用データベースの作成
zabbix-2.4.6.tar.gz
を解凍してできたディレクトリの中にdatabase
というディレクトリがあるはずで、
その中のmysql用のクエリを流し込む
##database作成
$mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
$ mysql zabbix < ~/zabbix-2.4.6/database/mysql/schema.sql
$ mysql zabbix < ~/zabbix-2.4.6/database/mysql/images.sql
$ mysql zabbix < ~/zabbix-2.4.6/database/mysql/data.sql
インストールファイルの作成
準備ができたらZabbixのインストールファイルを作成する
コマンドはzabbix-2.4.6
直下のパスで行う
『./configure』のコマンドで何かしらパッケージが足りないといわれた際は、
参照先のページやgoogle先生に確認する
$ ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
$ make install
設定ファイルの確認
今回は内容を編集はしないが、ファイルの場所だけ確認しておく
##zabbiz serverファイル
/usr/local/etc/zabbix_server.conf
##zabbiz agentファイル
/usr/local/etc/zabbix_agent.conf
Zabbixサービスの開始
今回のバージョンの場合は、serviceコマンドで操作ができないようである
サービスの開始は以下のコマンドのみで可能
コマンドの実行結果は何もなし
$ zabbix_server
$ zabbix_agentd
Web用ファイルの用意
make installした際にできたファイルをWeb用パスに配置する
$ mkdir /var/www/html/zabbix
$ cd ~/zabbix-2.4.6/frontends/php/
$ cp -a . /var/www/html/zabbix/
$ chown -R apache:apache /var/www/html/zabbix/
Web画面を見るためにhttp://<サーバーのアドレス>/zabbixへアクセスする
web画面にてログイン
スクショは割愛
ログイン途中でphpの設定が不備といわれた際は、
php用の設定をしてhttpdサービスの再起動
$ vi /var/www/html/zabbix/.htaccess
php_value post_max_size 16M
php_value max_execution_time 300
php_value max_input_time 300
php_value date.timezone Asia/Tokyo
$vi /etc/httpd/conf/httpd.conf
##ファイル内のAllowOverride部分をすべてAllに変える
##必要なソフトをインストール
$ yum -y install php-mysql php-bcmath php-mbstring gd gd-devel php-gd php-xml
$ service httpd restart
順調に進んだら
User:Admin
pass:zabbix
でログインする
ちなみに自分がやったときはZabbixサーバーのログは/tmp/以下に作られていた
Zabbixのクライアントを追加
Zabbix agentのインストール
監視対象となるマシンにZabbix agentをインストールする
$ rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-2.4.6-1.el6.x86_64.rpm
$ rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-agent-2.4.6-1.el6.x86_64.rpm
$ yum -y install zabbix-agent
##agentの設定を変更
$ vi /etc/zabbix/zabbix_agentd.conf
EnableRemotecommands = 1
Server = [サーバーのIPアドレス]
ListenPort = 10050
ServerActive = [サーバーのIPアドレス]
Hostname = [任意の名前]
AllowRoot = 1
続いてfirewallの設定
vi /etc/sysconfig/iptables \\下記追加
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 10051 -j ACCEPT
agentのサービス開始
$ service iptables restart
$ service zabbix-agent start
$ chkconfig zabbix-agent on
Zabbix serverに登録
Webコンソール画面から[設定]→[ホストグループ]にて[ホストグループの作成]を選択
グループ名:任意
[ホスト]ページにて、[ホストの作成]を選択
名前:任意(agent側の設定と合わせる)
、グループ:先ほど作ったグループを選択
、エージェントのインターフェイス:該当のエージェントのアドレスを指定
ステータスが有効になっていることや、エラーなどが出ていないことを確認
メール設定
Zabbixに付き物のアラートメールを飛ばせるようにする
イメージとしてはPostfixでGamilのsmtpサーバーを利用し、
Zabbixでメールを飛ばすときにlocalhostのメールサーバーを使うようにする
Gmailの設定
Zabbix専用のGmailアカウントを作ってもいいし、
普段自分の使ってるアカウントを使ってもいい
アカウントのセキュリティは下がるから、運用の上では注意して
メール送信に使用するGoogleアカウントのセキュリティページで、
『安全性の低いアプリのアクセス』をオンにする
Postfixの設定
smtp認証用のソフトをインストール
$ yum -y install cyrus-sasl-plain cyrus-sasl-md5
設定ファイルを書き換える
$ vi /etc/postfix/main.cf
##デフォルトで書かれている部分を書き換える
myhostname = zabbix.example.com
mydomain = example.com
myorigin = $mydomain
inet_protocols = ipv4
mynetworks = 127.0.0.0/8
relayhost = [smtp.gmail.com]:587
##新規に追記
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_loglevel = 1
上記で追記したパスワードファイルを作成する
$ vi /etc/postfix/gmail
[smtp.gmail.com]:587 [email protected]:password
パスワードファイルを適用
$ postmap /etc/postfix/gmail
サービスの停止、開始
$ /etc/init.d/sendmail stop
$ chkconfig sendmail off
$ chkconfig postfix on
$ /etc/init.d/postfix restart
この段階でメールを飛ばすだけならできるはず
$ sendmail -f zabbix.example.com(送信者) -t [email protected](受信者)
To: [email protected] (あて先)
Subject: test (タイトル)
testtest (本文)
. (.で入力終了)
ちなみにメールのログには、Gmailのsmtpに認証できました、とかいうようなメッセージがあるはず
$ tail /var/log/maillog
Apr 10 09:33:58 zabbix postfix/smtp[2521]: setting up TLS connection to smtp.gmail.com[64.233.187.108]:587
Apr 10 09:33:58 zabbix postfix/smtp[2521]: certificate verification failed for smtp.gmail.com[64.233.187.108]:587: untrusted issuer /OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
Apr 10 09:33:58 zabbix postfix/smtp[2521]: Untrusted TLS connection established to smtp.gmail.com[64.233.187.108]:587: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Zabbixの設定
Webコンソール画面上で[管理]→[メディアタイプ]→[Email]と移動する
下記のように自分のメールサーバーを見るように設定
名前:Email
タイプ:メール
SMTPサーバー:127.0.0.1
SMTP helo:127.0.0.1
送信元メールアドレス:zabbix.example.com
[管理]→[ユーザー]→[adminユーザー]に移動し、
メディアタブ内で「追加」を選択し、以下を設定「追加」で
タイプ:Email
送信先:[受信したいアドレス]
[設定]→[アクション]に移動し、「アクションの作成」を選択
以下のように設定
##アクションタブ
名前:任意
件名・メッセージを好きなように
有効:オン
##アクションの実行内容
[新規]を選択し、
ユーザー:追加で先ほどのユーザーを選択
次のメディアのみ使用:Email
最後に[追加]を選択
これで何か異常を検知したらメールを飛ばすはず
監視の設定
ひとまず簡単にPingを使って死活監視をしてみる
Zabbixでping監視をするためにはfpingのインストールが必要
$ yum -y install epel-release
$ yum -y install fping
[設定]→[テンプレート]から[テンプレートの作成]を選択、以下を設定
テンプレート名:ping
、ホスト:任意のユーザー追加
[アイテム]ページにて以下を設定
名前:任意
、タイプ:シンプルチェック
、キー:icmpping[,5,5000,64,4000]
、値のマッピングの使用:Service state
[トリガー]ページにて以下を設定
名前:ping
、条件式:{ping-monitor:icmpping[,5,5000,64,4000].last()}=0
、深刻度:任意
これで完了
エージェントクライアントに対してあえて
ネットワークを切ったりしてエラーを起こさせるとメールが飛んでくるはず
はまったところ
Zabbixをインストールした後にWeb画面が真っ白である
mysqlの設定や/var/www/html/zabbix/のファイルなどを見返してみたが、
結局firewallをすべて無効化したら表示された
通常運用の時にはしっかりポートの設定をしておいたほうがいい
サーバーからメールを飛ばすことはできるが、Zabbixエラー検知時にメールが飛ばない
メールアクションのログを確認した
コンソール画面上の[監視]→[イベント]→発生しているイベントの『時間』(アクション項目でエラーになっていた)→[message actions]の部分でエラー内容の確認
またサーバーのログでも確認
両方共に以下のメッセージ出力
10493:20190410:101501.543 cannot connect to SMTP server "localhost": cannot connect to [[localhost]:25]: [111] Connection refused
これはIPv4とIPv6にかかわるエラー
最初はメディアタイプのEmailページで、
SMTPサーバー:localhost
SMTP helo:localhost
と設定しており、メールサーバー接続先が間違えていたよう、
IPv6を無効化するという解決方法もあるようだが、
今回は明示的にアドレス指定して解決となった
参考ページ
zabbix Document
Zabbixをインストールして簡単に動作確認を行う
PostfixからGmailへリレーする方法と受信したメールがSOFTFAILになる対策
Zabbixでメールを送信出来るようになるまで
Author And Source
この問題について(Zabbix 2.4 の構築から監視、メールの設定まで), 我々は、より多くの情報をここで見つけました https://qiita.com/tsukasa1301/items/be1364ff9f9d5179c0e8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .