Zabbix(2)初期設定

前回、Zabbixのインストールと関連する設定を行った。今回はWeb上で行う各種設定を確認する。

ログイン

標準のログインアカウントは、

  • User: Admin
  • Password: zabbix

なので、ログイン後適宜変更する。

Zabbixログイン

エラーメール設定

管理 > ユーザ > メディア からユーザと送信先メールアドレスの紐付けを行う。

送信先メールアドレスの設定

また、送信元アドレスの設定を、管理 > メディア > Email から行う。今回は、ローカルのpostfix経由でメールを送信するので、SMTPサーバをlocalhostとしている。

送信元メールアドレスの設定

最後に、どのタイミングでエラーメールを送信するかを設定するために、設定 > アクションから新たなアクションを作成する。メンテナンス期間外、かつ障害発生時(「情報あり」ステータスも障害に含む)に、Adminユーザにメールを送信する場合は、以下の通りの設定とする。

アラートアクションの設定
アラートアクションの設定
アラートアクションの設定

Zabbix(1)CentOS7にZabbix3.0をインストールする

サーバ

サーバの構築環境は、CentOS7、およびZabbix Server 3.0とする。また、サーバにもエージェントをインストールし、自身を自身で監視する体制とする。Zabbixを設定する際には、FirewallやSElinuxの設定にも変更が必要となる。ただし、今回は閉じたネットワーク内で監視を行うことを想定して設定するため、FirewallもSElinuxも無効にしている。

Zabbixサーバの設定

  • Zabbixリポジトリの追加
sudo yum install http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
  • パッケージのインストール
sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
sudo yum install mariadb-server
  • MariaDBを設定
    文字コードの設定を追記

    sudo vi /etc/my.cnf.d/server.cnf
    
    [mysqld]
    character-set-server = utf8
    collation-server     = utf8_bin
    skip-character-set-client-handshake
    innodb_file_per_table
    

    SQLサーバを起動

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    

  • MariaDBを初期化
    データベースとユーザの追加

    mysql -u root
    
    create database zabbix;
    grant all privileges on zabbix.* to zabbix@localhost identified by 'password' ;
    exit;
    

    初期データのインポート

    zcat /usr/share/doc/zabbix-server-mysql-3.0.4/create.sql.gz | mysql -uroot zabbix
    

  • Zabbixサーバの設定を変更

    sudo vi /etc/zabbix/zabbix_server.conf
    
    # データベースのパスワードを設定
    DBPassword=password
    # Zabbix discoverer processes more than 75% busyが発生する場合は以下を設定
    StartDiscoverers=3
    

  • Apacheの設定を変更
    タイムゾーンの設定

    sudo vi /etc/httpd/conf.d/zabbix.conf
    
    php_value date.timezone Asia/Tokyo
    

  • サービスの起動

    sudo systemctl start zabbix-agent
    sudo systemctl start zabbix-server
    sudo systemctl start httpd
    sudo systemctl enable zabbix-agent
    sudo systemctl enable zabbix-server
    sudo systemctl enable httpd
    

関連するサービスの設定

ログの時刻を正確な値にするため、定期的にNTPによる時刻合わせを行う

sudo yum install -y ntpdate
sudo crontab -e

0 * * * *       /usr/sbin/ntpdate XXX.XXX.XXX.XXX

エラーメールを送信するためのSMTP設定を行う

myhostname = XXX.surbiton.jp
relayhost = [XXX.XXX.XXX.XXX]

メールサーバ起動

sudo systemctl start postfix
sudo systemctl enable postfix

エージェント

監視対象のサーバにはエージェントをインストールする。サーバの構築環境は、CentOS6、およびZabbix Server 2.4とする。

Zabbixエージェントの設定

  • Zabbixリポジトリの追加
sudo yum install http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
  • パッケージのインストール
sudo yum install -y zabbix-agent-2.4.8-1.el6
  • エージェントの設定を変更
    sudo vi /etc/zabbix/zabbix_agentd.conf
    
    # ZabbixサーバのIPアドレス
    Server=XXX.XXX.XXX.XXX
    # アクティブチェック用のZabbixサーバのIPアドレス
    ServerActive=XXX.XXX.XXX.XXX
    # ホスト名
    Hostname=hoge
    

  • サービスの起動

    sudo systemctl start zabbix-agent
    sudo systemctl enable zabbix-agent
    

参考URL

Zabbix 3.0をCentOS 7にインストール

AWS CloudWatch(1)CloudWatchとは何なのか

CloudWatchとは

CloudWatchは、AWSの各リソースを監視することのできるサービスである。AWSでシステム構築を行う場合、基本的にはこのCloudWawtchのみの監視で十分なことが多く、Zabbixなどの他の監視環境を構築する必要がない。フルマネージドのサービスの場合は自ら監視環境を構築することができないため、CloudWatchによる監視が必須となる。また、CloudWatch Logsを用いることで、各リソースのLogデータをCloudWatchで監視することが可能になる。CloudWatch Logsは、ログデータを無期限で保存する

CloudWatchは、NameSpaceと呼ばれるAWSサービス単位の項目とMetricsと呼ばれる監視内容から構成され、これらを組み合わせて指定することで任意の項目を確認することが可能となる。CloudWatch上のデータ(CloudWatch Logsのデータを除く)は最長2週間保存され、データの更新間隔は最短1分となっている。また、アクション機能を用いて、各アラームに対する通知やAutoRecovery, AutoScaleなどのアクションを規定することも可能である。

CloudWatch Logs Agentのインストール

EC2インスタンスにCloudWatch Logs Agentをインストールすることで、任意のログをCloudWachに送信することが可能となる。AmazonLinuxを使用する場合には、以下の手順でインストールする。

CloudWatch Logs Agentのインストール

CloudWatch Logs Agentはyumから簡単にインストールできる。

yum update -y
yum install -y awslogs

CloudWatch Logs Agentの設定

監視対象のログはconfファイルで設定する。

sudo vi /etc/awslogs/awslogs.conf

標準で/var/log/messagesの情報は送られる設定になるようである。
その下に下記のように設定を追記することで、任意のログを送ることが可能となる。

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /var/log/messages

[test-app-log]
file = /home/ec2-user/test-app/process_log
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = /home/ec2-user/test-app/process_log

CloudWatch Logsのログデータをエクスポートする

CloudWatch Logsに蓄積したログデータは、S3に一括エクスポートすることができる。詳しくは、「CloudWatch コンソールを使用してログデータを Amazon S3 にエクスポートする」を参照のこと。