×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
splunkのようなログ解析ツールにgraylogというのがあるらしい。
それを動かすには2つの方法があり、1つは仮想アプライアンスで
出来合いのものを動かす方法。
もう一つは、rpm等を使ってサーバにインストールする方法だそうだ。
仮想アプライアンスは後で試すとして、とりあえず、CentOS7にインストールしてみる。
インストールする際には、JDKとElasticsearch、MongoDBのインストールが必要らしい。
1.JDKのインストール
まず、jdk-8u101-linux-x64.rpmのダウンロード
# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.rpm
ダウンロードしたらインストールする
# rpm -ihv jdk-8u101-linux-x64.rpm
2.elasticsearchのインストール
次にElasticsearchをインストールする。
まず、リポジトリを追加
それを動かすには2つの方法があり、1つは仮想アプライアンスで
出来合いのものを動かす方法。
もう一つは、rpm等を使ってサーバにインストールする方法だそうだ。
仮想アプライアンスは後で試すとして、とりあえず、CentOS7にインストールしてみる。
インストールする際には、JDKとElasticsearch、MongoDBのインストールが必要らしい。
1.JDKのインストール
まず、jdk-8u101-linux-x64.rpmのダウンロード
# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.rpm
ダウンロードしたらインストールする
# rpm -ihv jdk-8u101-linux-x64.rpm
2.elasticsearchのインストール
次にElasticsearchをインストールする。
まず、リポジトリを追加
# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
# cat << EOF > /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
用意ができたらインストール
# systemctl enable elasticsearch
確認してみる。
用意ができたらインストール
# yum install elasticsearch
# systemctl daemon-reload# systemctl enable elasticsearch
確認してみる。
# systemctl list-unit-files | grep elastic
elasticsearch.service enabled
elasticsearchの設定変更
elasticsearchの設定変更
# cp /etc/elasticsearch/elasticsearch.yml{,.bk}
# cat <<EOF >> /etc/elasticsearch/elasticsearch.yml
cluster.name: graylog
script.inline: false
script.indexed: false
script.file: false
EOF
elasticsearch再起動
elasticsearch再起動
# service elasticsearch restart
ちゃんと起動しているかどうか確認
# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
3.MongoDBのインストール
ちゃんと起動しているかどうか確認
# curl -X GET http://localhost:9200
{
"name" : "Fallen One",
"cluster_name" : "graylog",
"cluster_uuid" : "XWGjyKT6QaOSixynaJLG_A",
"version" : {
"number" : "2.4.4",
"build_hash" : "fcbb46dfd45562a9cf00c604b30849a6dec6b017",
"build_timestamp" : "2017-01-03T11:33:16Z",
"build_snapshot" : false,
"lucene_version" : "5.5.2"
},
"tagline" : "You Know, for Search"
}
# curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
{
"cluster_name" : "graylog",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
#
3.MongoDBのインストール
# cat <<"EOF" > /etc/yum.repos.d/mongodb-org-3.2.repo
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
EOF
# yum install mongodb-org
サービス起動
サービス起動
# systemctl start mongod
# systemctl enable mongod
4.graylogのインストール
リポジトリの取得
4.graylogのインストール
リポジトリの取得
# wget https://packages.graylog2.org/repo/packages/graylog-2.0-repository_latest.rpm
リポジトリをインストール
# rpm -ivh graylog-2.0-repository_latest.rpm
# yum install graylog-server
リポジトリをインストール
# rpm -ivh graylog-2.0-repository_latest.rpm
# yum install graylog-server
# yum -y install epel-release
# yum -y install pwgen
# sed -e "/^password_secret/c password_secret = $(pwgen -N 1 -s 96)" \
-e "/^root_password_sha2 /c root_password_sha2 = $(echo -n P@ssw0rd | sha256sum | awk '{print $1}')" \
-e "/^#root_email/c root_email = root@localhost" \
-e "/^root_timezone/c root_timezone = Japan" \
-e "/^elasticsearch_discovery_zen_ping_unicast_hosts/c elasticsearch_discovery_zen_ping_unicast_hosts = $(hostname -I | xargs -n 1 | xargs -I{} echo {}:9300 | tr '\n' ',' | sed 's/,$//g')" \
-e "/^elasticsearch_max_docs_per_index/c elasticsearch_max_docs_per_index = 20000000" \
-e "/^elasticsearch_shards/c elasticsearch_shards = 1" \
-e "/^elasticsearch_replicas/c elasticsearch_replicas = 0" \
-e "/^rest_listen_uri/c rest_listen_uri = http://192.168.1.10:12900/" \
-e "/#web_listen_uri/c web_listen_uri = http://192.168.1.10:9000/" \
-i.bk /etc/graylog/server/server.conf
設定できたらサービスの再起動
設定できたらサービスの再起動
# systemctl daemon-reload
# systemctl restart graylog-server
# systemctl enable graylog-server
# systemctl enable elasticsearch
firewallの穴あけをする
firewallの穴あけをする
# firewall-cmd --permanent --zone=public --add-port=9000/tcp
# firewall-cmd --permanent --zone=public --add-port=12900/tcp
# firewall-cmd --permanent --zone=public --add-port=1514/tcp
# firewall-cmd --reload
ブラウザで、
http://192.168.1.10:9000 にアクセスする。
ID/パスワードは admin と P@ssw0rd ← 上で設定したパスワードにする
ブラウザで、
http://192.168.1.10:9000 にアクセスする。
ID/パスワードは admin と P@ssw0rd ← 上で設定したパスワードにする
PR
rsyslog.confの設定を変更する
# vi /etc/rsyslog.conf
# vi /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
# 送信元を限定設定の追加
# 送信元を限定設定の追加
# Sender
$AllowedSender UDP, 127.0.0.1, 192.168.1.0/24
$AllowedSender TCP, 127.0.0.1, 192.168.1.0/24
設定が終了したら、Firewalldの設定を変更と、rsyslogdの再起動
# firewall-cmd --permanent --add-port=514/tcp # firewall-cmd --permanent --add-port=514/udp # firewall-cmd --reload # systemctl restart rsyslog
syslogクライアント側の設定
# vi /etc/rsyslog.conf
# systemctl restart rsyslog
syslogデータは /var/log/messages に保存される。
これだと、ログが混在してしまうので、IPアドレス毎に分離する。
以下の2行を追加。
# vi /etc/rsyslog.conf
$template ClinetMessage,"/var/log/rsyslog/%fromhost%/messages.log"
*.* -?ClinetMessage
さらに日ごとに分けるなら、/var/log/rsyslog以下を
/var/log/rsyslog/%fromhost%/%$year%%$month%%$day%_messages.log
とする。
設定が終了したら、Firewalldの設定を変更と、rsyslogdの再起動
# firewall-cmd --permanent --add-port=514/tcp # firewall-cmd --permanent --add-port=514/udp # firewall-cmd --reload # systemctl restart rsyslog
syslogクライアント側の設定
# vi /etc/rsyslog.conf
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
$ActionQueueFileName fwdRule1 # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
*.* @192.168.1.10:514
*.* @@192.168.1.10:514
# systemctl restart rsyslog
syslogデータは /var/log/messages に保存される。
これだと、ログが混在してしまうので、IPアドレス毎に分離する。
以下の2行を追加。
# vi /etc/rsyslog.conf
$template ClinetMessage,"/var/log/rsyslog/%fromhost%/messages.log"
*.* -?ClinetMessage
さらに日ごとに分けるなら、/var/log/rsyslog以下を
/var/log/rsyslog/%fromhost%/%$year%%$month%%$day%_messages.log
とする。
家ネットワークを大きく見直した。
コンセプトは以下のとおり
ここまでやったこと
コンセプトは以下のとおり
- ブロードバンドルータ-DMZ-FW-プライベートNW という構成に変更
- DMZ内にサーバを設置
- syslogを一か所に集めるため、syslogサーバを立てる
- syslog管理をするため何か(splunkまたはkibana)を設定する
- Webサーバで公開する内容は、音データ、blogデータ、アクセスログデータ
ここまでやったこと
- 家のネットワーク構成修正(済)
- サーバ系はDMZに設置(済)
- CentOS6を新規仮想サーバとして作成
- selinuxの設定をdisableに設定
- iptables で、sshとsyslog(udp,tcp)を許可
- syslogサーバを設定
- Webサーバの再構築
- blogサーバ構築
- 音楽データ配信用設定
- Webalizerの設定
- kibanaを試す
- CentOS6のデータ領域が小さい→大きくするか?新規に作り直すか?
- blogサーバはwiki?wordpress?tdiary?
- データ配信用に特別な設定をするか?今のようにWebサーバの機能で行くか?
- splunkは再度インストールできないものか?
- メールサーバはどうするか?
- DNSサーバはどうするか?
postfixのmain.cfを編集
relayhost = [xx.yy.auone-net.jp]:587 ←xyはsmtpサーバによって異なる
最終行に追加
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN
# vi /etc/postfix/smtp_passwd ←新規作成
xx.yy.auone-net.jp a123456789:password ←a123456789 はアカウント passwordは設定したパスワード
# yum -y install cyrus-sasl-plain cyrus-sasl-md5 ←これを入れないと怒られる
# /etc/init.d/saslauthd restart
# /etc/init.d/postfix restart
# mail test@example.com ←テストメールを自分のメールアドレスに送付
# /etc/init.d/dovecot restart
再起動で立ち上がるように設定
relayhost = [xx.yy.auone-net.jp]:587 ←xyはsmtpサーバによって異なる
最終行に追加
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = CRAM-MD5, DIGEST-MD5, PLAIN, LOGIN
# vi /etc/postfix/smtp_passwd ←新規作成
xx.yy.auone-net.jp a123456789:password ←a123456789 はアカウント passwordは設定したパスワード
# yum -y install cyrus-sasl-plain cyrus-sasl-md5 ←これを入れないと怒られる
# /etc/init.d/saslauthd restart
# /etc/init.d/postfix restart
# mail test@example.com ←テストメールを自分のメールアドレスに送付
# /etc/init.d/dovecot restart
再起動で立ち上がるように設定
# chkconfig saslauthd --level 345 on
# chkconfig postfix --level 345 on
# chkconfig dovecot --level 345 on
# yum -y install dovecot
# vi /etc/dovecot/dovecot.conf
# 31行目:変更 ( IPv6をリスンしない場合 )
listen = *
# vi /etc/dovecot/conf.d/10-auth.conf
# 9行目:コメント解除し変更(プレーンテキスト認証も許可する)
disable_plaintext_auth = no
# 97行目:追記
auth_mechanisms = plain login
# vi /etc/dovecot/conf.d/10-mail.conf
# 30行目:コメント解除して追記
mail_location = maildir:~/Maildir
# vi /etc/dovecot/conf.d/10-master.conf
# 84-86行目:コメント解除し追記
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix # 追記
group = postfix # 追記
}
# /etc/rc.d/init.d/dovecot start
Starting Dovecot Imap: [ OK ]
# chkconfig dovecot on
$ mkdir ./Maildir ←Maildirを作っておく
# chkconfig dovecot on
$ mkdir ./Maildir ←Maildirを作っておく