Norikra를 만져 보았습니다.
소개
전전부터 신경이 쓰이고 있었던 norikra 를 망칠 시간이 생겼기 때문에 참아 보았습니다.
설치하고 nginx 로그를 fluentd를 통해 norikra에 넣는 곳까지를 기재해 둡니다.
norikra란? ? 라고 하는 질문에는 접하기 시작이므로 별로 알고 있지 않습니다만, 개인적으로는 이하가 특징이라고 생각하고 있습니다.
이하 참고로 하겠습니다.
이번 구성
Nginx(fluentd)サーバー<->Norikraサーバー
의 2대 구성.
환경 정보
・OS: Ubuntu14.04
・Nginx: nginx/1.4.6
・Ruby: ruby 2.1.5
・fluentd: 0.10.57
・OS: Ubuntu14.04
・Ruby: jruby-1.7.16.1
・Norikra: 1.1.1
Step1: Rbenv 설치(Nginx 서버, Norikra 서버)
먼저 Rbenv를 설치합니다.
$ sudo groupadd -g 1001 rbenv # Rbenv利用グループ
$ sudo groupadd -g 1002 norikra # Norikra利用グループ
$ sudo usermod -G rbenv,norikra ${username}
$ sudo apt-get update
$ sudo apt-get install gcc make openssl libssl-dev git openjdk-7-jre g++ ruby-dev
$ cd /opt
$ sudo git clone git://github.com/sstephenson/rbenv.git
$ sudo mkdir -p /opt/rbenv/shims /opt/rbenv/versions
$ sudo chgrp -R rbenv rbenv
$ sudo git clone git://github.com/sstephenson/ruby-build.git /opt/rbenv/ruby-build
$ cd /opt/rbenv/ruby-build
$ sudo ./install.sh
/etc/profile.d/rbenv.sh
export RBENV_ROOT="/opt/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
$ source /etc/profile.d/rbenv.sh
$ rbenv --version
rbenv 0.4.0-129-g7e0e85b
$
그런데 이것으로 rbenv를 사용할 수 있게 되었습니다.
Step2: JRuby 설치(Norikra 서버)
JRuby를 설치합니다.
$ rbenv install --list
jruby-1.7.14
jruby-1.7.15
jruby-1.7.16
jruby-1.7.16.1
jruby-9.0.0.0-dev
jruby-9.0.0.0+graal-dev
jruby-9000-dev
jruby-9000+graal-dev
maglev-1.0.0
$ # 最新版の安定版をインストールします。
$ sudo env RBENV_ROOT=$RBENV_ROOT PATH=$PATH rbenv install -v jruby-1.7.16.1
$ rbenv global jruby-1.7.16.1
$ ruby --version
jruby 1.7.16.1 (1.9.3p392) 2014-10-28 4e93f31 on OpenJDK 64-Bit Server VM 1.7.0_65-b32 +jit [linux-amd64]
$
Step3: Norikra 설치(Norikra 서버)
$ gem install norikra --no-ri --no-rd
Step4: Norikra 시작(Norikra 서버)
$ sudo mkdir -p /var/log/norikra /etc/norikra /var/run/norikra
$ sudo chgrp norikra /var/log/norikra /etc/norikra /var/run/norikra
$ norikra start -d -l /var/log/norikra
성공적으로 설치되면
http://${norikra_server}:26578
에서 norikra의 콘솔 화면에 액세스 할 수 있습니다.Step5: Nginx, Ruby, Fluentd 설치(Nginx 서버)
$ sudo apt-get install nginx
Ruby2.1.5 설치
$ rbenv install --list
2.1.0
2.1.1
2.1.2
2.1.3
2.1.4
2.1.5
2.2.0-dev
2.2.0-preview1
2.2.0-preview2
$ sudo env RBENV_ROOT=$RBENV_ROOT PATH=$PATH rbenv install -v 2.1.5
$ rbenv global 2.1.5
$ ruby --version
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
$
$ sudo env PATH=$PATH gem install fluentd
$ sudo env PATH=$PATH fluent-gem install fluent-plugin-norikra --no-ri --no-rdoc # Norikraのプラグインインストール
$ sudo env PATH=$PATH fluentd --setup /etc/fluent # Configファイルなどの作成
Step6: Fluentd 설정(Nginx 서버)
Step5에서 만든 fluentd 설정 파일을 편집하여 Nginx 로그가 norikra로 날아갈 수 있도록 설정합니다.
$ sudo mkdir -p /var/log/fluent
$ sudo chmod +x /var/log/fluent
/etc/fluent/fluent.conf
# Tailing the Nginx Log
<source>
type tail
path /var/log/nginx/access.log
pos_file /var/log/fluent/nginx-access.pos
tag norikra.nginx
format nginx
</source>
<match norikra.*>
type norikra
norikra ${norikra_server}:26571
remove_tag_prefix norikra
target_map_tag true
</match>
$ sudo env PATH=$PATH fluentd -c /etc/fluent/fluent.conf -vv &
Step7: 액세스 해보기 - 1(Nginx 서버)
다음 명령으로 Nginx에 액세스해보십시오.
$ curl http://localhost
Step8: 확인/쿼리 설정 - 1(Norikra 서버)
Norikra 서버에서 액세스를 확인해 봅니다.
설정이 성공적으로 완료되면
Target=nginx
가 자동으로 생성되었음을 알 수 있습니다.Nginx 로그의 다양한 필드도 자동으로 설정됩니다.
다만, 지금의 설정에서는 취득한 데이터에 대한 쿼리를 지정하고 있지 않기 때문에 보내져 온 데이터에 대해서 아무것도 하지 않습니다.
Console에서 쿼리를 설정하여 전송된 데이터를 표시합니다. 모처럼이므로 Response 코드가 200 이외의 데이터만을 잡는 쿼리를 지정해 보겠습니다.
내 환경에서는 *를 지정하면 오류가 발생했으므로 여기에서는 개별적으로 열을 지정합니다.
Step9: 액세스 해보기 - 2(Nginx 서버)
다음 명령으로 Nginx에 액세스합니다.
여기에서는 200OK 이외의 응답을 얻고 싶기 때문에 존재하지 않는 경로를 지정합니다.
$ curl http://localhost
$ curl http://localhost
$ curl http://localhost/no_content/
Step10: 확인해 보기 - 2(Norikra 서버)
다시 Norikra의 Console에 액세스해보십시오.
세 번 액세스했지만 이벤트가 한 번만 발생했음을 알 수 있습니다.
404 Not Found
응답이 발생했음을 알 수 있습니다.결론
아직 만지는 시작이므로 이해가 불충분하다고 생각합니다만, norikra를 이용하는 것으로 SQL 라이크의 방법으로 이벤트를 정의할 수 있어 이벤트와 액션을 묶는 것으로 여러가지 간단하게 자동화를 할 수 있을까 생각했습니다 .
이것을 한층 발전시켜 뭔가의 시스템을 만들고 싶네요^^
끝.
Reference
이 문제에 관하여(Norikra를 만져 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akito1986/items/f628d8b208edecc07bac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)