Fluentd + Elastichsearch + Kibana(1)CentOS7で環境構築する

Fluentdで収集したログをElastichsearch + Kibanaに入れて可視化する。ここを参考にしながら、まずはCentOS7に環境構築してみる。

Elastichsearch

OpenJDKのインストール

Elasticsearchは、インストールにJAVA7以降(Java8 Update 20以降、もしくはJava7 Update 55以降)のJDKを必要とする。Oracle JavaもしくはOpen JDKがサポートされているようなので、今回はOpenJDK8をインストールする。

sudo yum -y install java-1.8.0-openjdk

Elastichsearch のインストール

RPMからElastichsearchをインストールする。

sudo rpm -ivh https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.5/elasticsearch-2.3.5.rpm

インストールが終わると以下のように忠告されるので、

### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service

言われた通りにコマンドを実行し、Elastichsearchを起動。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Fluentd

Fluentdをインストール

自動インストールスクリプトが用意されているので、これを実行する。現在、Fluentdは2.X系で開発が進められているので、td-agent2を指定してインストールを行う。

sudo curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

FluentdとElastichsearchとの連携

FluentdからElastichsearchへデータを受け渡すためのプラグインをインストールする。

sudo yum -y install gcc libcurl-devel
sudo td-agent-gem install fluent-plugin-elasticsearch

Fluentdを起動

sudo systemctl enable td-agent
sudo systemctl start td-agent

Kibana

Kibanaのインストール

Elastichsearchのリポジトリを追加する。

sudo vi /etc/yum.repos.d/elastic.repo

[kibana-4.4]
name=Kibana repository for 4.4.x packages
baseurl=http://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

yumからインストールする。

sudo yum install kibana -y

Kibanaを起動

sudo systemctl enable kibana
sudo systemctl start kibana

Kibanaを起動

これでインストール作業が全て完了。
インストールしたサーバの5601ポートにアクセスするとこんなページが見れるはず。

http://XXX.XXX.XXX.XXX:5601

Kibana

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にインストール