install graylog2

Graylog2 是一個開源的 log 收容器,主要有兩個部份集合而成 serverweb interface,兩個都是由 Java 寫的,Server 的部份可以收容 syslog over TCP/UDP, 同時他也有自己的格式 GRLF (Graylog Extended Log Format),背後的儲存是搭配 mongodb,而搜尋引擎則由 elasticsearch 提供。另外的 web interface 也是 Java 寫成的(早期好像是 Ruby on Rails),主要的功能就是提供一個漂亮的搜尋與分析的界面。

所以要使用 Graylog2 需要安裝五個元件

軟體 版本 Java Runtime Environment7u51elasticsearch0.90.10mongodb2.4.9graylog2-server0.20.1-1rcgraylog2-web-interface0.20.1-1rc

我們先從 elasticsearch 開始安裝起,以下都用目前最新的版本來示範,基本上不分什麼 Linux Distribution,我們單位都用 SUSE,不過 Gentoo 或 Ubuntu 也都適用就是

首先因為 elasticsearch 跟 graylog2 都需要 Java,所以我們的系統需要安裝 JRE 先,最低需求是 Java 7.0 的版本,所以我們先到 Java Download 下載 JRE 7u51 下來,假設下載到 /tmp/jre-7u51-linux-x64.tar.gz 下面,先解壓縮到 /opt 底下 tar zxvf /tmp/jre-7u51-linux-x64.tar.gz -C /opt 會產生 /opt/jre1.7.0_51/ 然後我們為了好看做一下 link ln -s /opt/jre1.7.0_51 /opt/java 這樣 Java 就裝好了。

接下來來裝 elasticsearch,curl https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.10.tar.gz -o /tmp/elasticsearch.tgz && tar zxvf /tmp/elasticsearch.tgz -C /opt && ln -s /opt/elasticsearch-0.90.10 /opt/elasticsearch 這樣基本上就裝好了,不過我們還需要建立一些資料夾讓 elasticsearch 可以運作起來。

build basic directory
1
2
3
4
install -o nobody -g nogroup -d /var/log/elasticsearch/
install -o nobody -g nogroup -d /var/lib/elasticsearch/data
install -o nobody -g nogroup -d /var/lib/elasticsearch/work
install -o nobody -g nogroup -d /var/run/elasticsearch/

之所以給 nobody:nogroup 是希望之後我們的 elasticsearch 就用 nobody 的身份執行,其實沒有強制,如果要建立 elasticsearch 的專用帳號也是可以的。

接著改個設定

sed -i -e 's|# cluster.name: elasticsearch|cluster.name: graylog2|' /opt/elasticsearch/config/elasticsearch.yml

這個是把 elasticsearch 的名字設定成 graylog2,這樣之後 server 才吃得到。

然後我們來建立啟動 elasticsearch 的 script 吧,貼上下列的 code 到 /etc/init.d/elasticsearch 然後 chmod +x /etc/init.d/elasticsearch

接著 /etc/init.d/elasticsearch start ,理論上應該 elasticsearch 就啟動了。可以用 tail -f /var/log/elasticsearch/graylog2.log 來看情況。

接下來是安裝 mongodb,curl http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz -o /tmp/mongodb.tgz && tar zxvf /tmp/mongodb.tgz -C /opt && ln -s /opt/mongodb-linux-x86_64-2.4.9 /opt/mongodb 這樣也裝好了,mongodb 基本上完全不需要設定(要設定帳密增加安全性也可以)。我們來增加啟動 mongob 的 script,新增下面的內容到 /etc/init.d/mongodb 然後 chmod +x /etc/init.d/mongodb

一樣需要增加一些資料夾才能正常使用

build basic directory
1
2
3
install -o nobody -g nogroup -d /var/log/mongodb/
install -o nobody -g nogroup -d /var/lib/mongodb/
install -o nobody -g nogroup -d /var/run/mongodb/

接著也啟動看看 /etc/init.d/mongodb start,我們透過 tail -f /var/log/mongodb/mongodb.log 可以知道啟動的狀態,如果都沒錯理論上可以繼續下一步了。

目前為止我們可以透過 netstat -ntlp 看 9300 (elasticsearch 的 port) 跟 27017 (mongodb 的 port) 有沒有在監聽著,就知道有沒有啟動成功了。

接下來就是要裝 graylog2 啦,首先是 server,curl https://github.com/Graylog2/graylog2-server/releases/download/0.20.0-rc.1-1/graylog2-server-0.20.0-rc.1-1.tgz -o /tmp/graylog2-server.tgz && tar zxvf /tmp/graylog2-server.tgz -C /opt && ln -s /opt/graylog2-server-0.20.0-rc.1-1 /opt/graylog2-server 然後我們需要設定一下

cp /opt/graylog2-server/graylog2.conf.example /etc/graylog2.confpass_secret=$(pwgen -s 96)sed -i -e 's|password_secret =|password_secret = '$pass_secret'|' /etc/graylog2.conf#密碼自己設定 web 登入用的 root_pass_sha2=$(echo -n password123 | shasum -a 256)sed -i -e "s|root_password_sha2 =|root_password_sha2 = ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f|" /etc/graylog2.confsed -i -e 's|elasticsearch_shards = 4|elasticsearch_shards = 1|' /etc/graylog2.confsed -i -e 's|mongodb_useauth = true|mongodb_useauth = false|' /etc/graylog2.confsed -i -e 's|#elasticsearch_discovery_zen_ping_multicast_enabled = false|elasticsearch_discovery_zen_ping_multicast_enabled = false|' /etc/graylog2.confsed -i -e 's|#elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.1.203:9300|elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300|' /etc/graylog2.confsed -i 's|retention_strategy = delete|retention_strategy = close|' /etc/graylog2.conf

然後一樣來增加 init script 吧,在 /etc/init.d/graylog2-server 填入下列,並 chmod +x /etc/init.d/graylog2-server

然後直接啟動了! /etc/init.d/graylog2-server start,看看 tail -f /var/log/graylog2-server.log 是不是有出現錯誤訊息,沒有錯的話 netstat -ntlp 應該可以看到 port:12900 有被監聽了,這是 server 的 REST 傳輸 port。

最後我們就可以來裝 web interface 了,curl hhttps://github.com/Graylog2/graylog2-web-interface/releases/download/0.20.0-rc.1-1/graylog2-web-interface-0.20.0-rc.1-1.tgz -o /tmp/graylog2-web-interface.tgz && tar zxvf /tmp/graylog2-web-interface.tgz -C /opt && ln -s /opt/graylog2-web-interface-0.20.0-rc.1-1 /opt/graylog2-web-interface這裡我們只有兩個地方要設定

sed -i -e 's|graylog2-server.uris=""|graylog2-server.uris="http://127.0.0.1:12900/"|' /opt/graylog2-web-interface/conf/graylog2-web-interface.conf# 這裡填入剛剛 server 的 app_secretsed -i -e 's|application.secret=""|application.secret="'$app_secret'"|' /opt/graylog2-web-interface/conf/graylog2-web-interface.conf

然後我們也來寫一下 init script 吧,檔名存 /etc/init.d/graylog2-web-interface,記得一樣 chmod +x /etc/init.d/graylog2-web-interface

最後啟動 /etc/init.d/graylog2-web-interface start,因為我們沒有寫 log,直接用 netstat -ntlp 觀察看看 port:9000 有沒有被聽著,這是他的 web interface 預設的 http port。

如果 port:9000 有起來的話,請用你的瀏覽器打開 http://ip:9000 看,沒有意外的話應該會出現一個登入的畫面了,帳號一開始都是 admin,密碼則是剛剛自己設定在 /etc/graylog2.conf 的 root_pass_sha2=$(echo -n password123 | shasum -a 256),如果剛剛是直接複製貼上然後按下 enter 的話,密碼就是 password123,如果沒有意外應該就可以進去啦!恭喜,現在可以開始使用 graylog2 了。


參考資料

Ubuntu 12.04 Graylog2 Installation

install graylog2

相关文章:

你感兴趣的文章:

标签云: