今更ながらElasticSearch3.6.1 + Kibana + Nginx をUbuntu上に構築してみた

案件で触っているため。 Oracle Java8をインストール sudo apt-get update sudo apt-get -y dist-upgrade sudo apt-get install -y wget curl sudo apt-get install -y software-properties-common python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install -y oracle-java8-installer ElasticSearchをインストール wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add – sudo apt-get install apt-transport-https echo “deb https://artifacts.elastic.co/packages/6.x/apt stable main” | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list sudo apt-get -y update sudo apt-get install -y elasticsearch sudo systemctl start elasticsearch sudo systemctl enable elasticsearch 動作確認 $ curl localhost:9200 { “name” : “5GgIcSS”, “cluster_name” : “elasticsearch”, “cluster_uuid” : “X7GDMguuTrq4_DAnDUGq8Q”, “version” : { “number” : “6.3.1”, “build_flavor” : “default”, “build_type” : “deb”, “build_hash” : “eb782d0”, “build_date” : “2018-06-29T21:59:26.107521Z”, “build_snapshot” : false, “lucene_version”…

Let’s Encryptで良いSSL証明書を無料で発行してもらった

サービス自体は知っていたんだけど、お金払ってSSL証明書を作っていたもので、失効とともに切り替えた。 [amazonjs asin=”B00PHC4480″ locale=”JP” title=”食べる!SSL! ―HTTPS環境構築から始めるSSL入門”] Let’s Encryptについて Let’s Encrypt はLinuxの運営をしているLinux Faundationがコラボしているプロジェクトで、ざっくりいうと良いSSL証明書を無料で発行している。自己証明書はもう、やめよう。 使い方 今回は、このブログのドメインである「blog.umentu.work」と「www.blog.umentu.work」の2つについてのSSL証明書を取得する。「blog.umentu.work」と「www.blog.umentu.work」の部分は使っているドメインに置き換えて読んで欲しい。 OSはUbuntu/CentOSのどちらでも問わないが、apt-get か yum でgitをインストールしておく必要あり。 また、一応Apacheの場合と、Nginxの場合の両方の設定の仕方を記述しておく。 $ sudo apt-get install git $ sudo yum install git gitからclientをダウンロード $ cd $ git clone https://github.com/certbot/certbot Apache/Nginxを停止する 各ディストリビューションによるため、serviceコマンドなりsystemctlなりで停止する。 ドメインを登録する $ cd ~/certbot $ ./certbot-auto certonly –standalone -d blog.umentu.work -d www.blog.umentu.work SSL証明書を確認する /etc/letsencrypt/live/ドメイン/ 配下に4つのファイルが設置されている、はず。 ls /etc/letsencrypt/live/blog.umentu.work/ cert.pem chain.pem fullchain.pem privkey.pem ファイルについては以下のとおり。 cert.pem SSL証明書 chain.pem 中間証明書 fullchain.pem SSL証明書と中間証明書を一緒にしたもの privkey.pem 秘密鍵 Apache/Nginxに適用する Apache/Nginx のそれぞれのconfファイルに、SSLの設定を追記する。 SSLEngine on SSLCertificateFile /etc/letsencrypt/live/blog.umentu.work/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/blog.umentu.work/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/blog.umentu.work/chain.pem listen 443; ssl on; ssl_certificate /etc/letsencrypt/live/blog.umentu.work/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/blog.umentu.work/privkey.pem; ### Apache/Nginxを起動する 各ディストリビューションによるため、serviceコマンドなりsystemctlなりで起動する。 以上。 当ブログも、Let’s EncryptのSSL証明書を適用している。

Nginx をフロントにしてSlackBot管理ツールを 動かす

以前作ったSlackBotツールを、Nginxをフロントにして動かすようにカスタマイズした。 [雑][Python] ローカルでも動くSlackのBot管理ツールを作成してみた(Bottle + jinja2 + Slacker) [amazonjs asin=”4873117399″ locale=”JP” title=”実践 Python 3″]   前提 今回はCentOS6.5で行ったが、下記と同様の環境構築をした。 ・CentOS7 yumでNginxをインストール ・CentOS7 pyenvを利用したpython環境構築 ・ユーザー名をumentuとする ・Slack APIからTokenを取得しておく   ホームディレクトリのパーミッションを変更する [shell] chmod 755 /home/umentu [/shell]   pyvenv環境を構築 [shell] pyvenv ~/slack_python cd ~/slack_python source ./bin/activate [/shell]   githubからWebサイトとbotをダウンロード [shell] cd ~/slack_python git clone https://github.com/umentu/slack_botter mv slack_botter source [/shell]   pipのアップグレードと必要なパッケージをインストール [shell] cd ~/slack_python/source pip install –upgrade pip pip install -r requirements.txt pip install uwsgi [/shell]   sqliteのデータベースを作成 [shell] cd ~/slack_python/source python ./db/create_db.py [/shell]   uWSGI用のiniファイルを作成 [shell] cd ~/slack_python/ vi ./wsgi.ini [/shell] [shell title=”wsgi.iniの内容”] [uwsgi] # 作成したアプリケーション用の仮想環境のパス home = /home/umentu/slack_python/ # ソケットの設置場所を指定 socket = /home/umentu/slack_python/var/sock/slack.sock # 作成したソケットをパーミッションを指定 chmod-socket = 666 # pidファイルの作成場所を指定 pidfile = /home/umentu/slack_python/var/sock/slack.pid # アプリケーション本体のあるディレクトリを指定…

[CentOS7] Nginx + uwsgi + python3 + bottle でWebアプリケーションを公開

今回は長編。 色々試行錯誤した結果のため、うまくいかなかった場合はコメントに残してもらえると幸いです。。。 [amazonjs asin=”B00KO6P262″ locale=”JP” title=”Software Design (ソフトウェア デザイン) 2014年 07月号 雑誌”] ↑Nginxの項目、ちょっとだけ執筆させてもらっています。。。   構成 今回は以下の図のような構成を想定している。   準備 pyenv環境を構築 https://www.blog.umentu.work/?p=153 Nginxをインストール https://www.blog.umentu.work/?p=163 [CentOS7][Nginx] SELinuxを設定しホームディレクトリ配下のWebコンテンツを公開を許可 https://www.blog.umentu.work/?p=172   ディレクトリ構成 以下、簡単なディレクトリ構成。 ユーザー名を「centos」としている。 /home/centos/app/ uwsgi_venv/ : uwsgi用の仮想環境 bottle_jinja2/ : アプリケーション用の仮想環境 bin/ include/ lib/ lib64/ source/ : アプリケーションのソースを置くディレクトリ pyvenv.cfg uwsgi.ini : uWSGI用に作成するiniファイル var/ sock/ : uWSGIが生成するソケットを置くディレクトリ pid/ : uWSGIが生成するpidファイルを置くディレクトリ   uWSGI用の仮想環境の用意   (念のため)以降、 「#」 からはじまるコマンドラインはroot 「$」 からはじまるコマンドラインは一般アカウント(今回の場合はcentosユーザー)   今回はPythonの仮想環境を、uWSGI用とアプリケーション用に分けて管理する。 まずuWSGI用の仮想環境をappディレクトリに作成する。 [shell] $ mkdir ~/app $ cd ~/app $ mkdir -p ./var/{sock, pid} [/shell] 次にuWSGI用仮想環境を作成し、uWSGIをインストールする。 [shell title=”uWSGI用の仮想環境を作成”] $ pyvenv uwsgi_venv $ source uwsgi_venv/bin/activate $ pip install –upgrade pip $ pip install uwsgi [/shell]   アプリケーション用の仮想環境を用意 アプリケーション用の仮想環境を用意する。 今回は「bottle」と「jinja2」を利用するため、それらもインストールする。 uWSGI環境にまだ入っている場合は、「deactive」コマンドで脱出する。 [shell title=”アプリケーション用の仮想環境を作成”] $ cd ~/app $ deactivate $…

[CentOS7][Nginx] SELinuxを設定しホームディレクトリ配下のWebコンテンツを公開を許可

Nginxにホームディレクトリ配下に設置したsocketを接続させようとしたところ、SELinuxの都合で503になった。 (今までもホームディレクトリ配下にpublic_htmlを設置して同様のエラーになったのは経験済み。) [amazonjs asin=”4883379426″ locale=”JP” title=”小さな会社の新米サーバー/インフラ担当者のためのLinuxの常識”] 今まではSELinuxはOSインストール時に大体オフにしていたが、CentOS7を 使っていてオフにするのもなぁとなったので、オンにしたままどうにか できないかと思い探したところ、ここを発見。 SELinuxでNginx用のPolicy Moduleを作成すればいいとのこと。   Nginxのエラーログ   Nginxのerror_logには以下のログが残されている。 [shell title=”Nginxのeror_log”] 2015/05/21 23:39:01 [crit] 23986#23986: *90 connect() to unix:/home/centos/app/var/sock/bottle_jinja2.sock failed (13: Permission denied) while connecting to upstream, client: *.*.*.*, server: localhost, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/centos/app/var/sock/bottle_jinja2.sock:" , host: "********************" [/shell] selinux関連パッケージをインストール [shell] yum install -y policycoreutils-{python,devel} [/shell]   許可する必要のあるポリシー一覧を取得する 許可する必要のあるポリシー一覧を取得したり、実際にポリシーを作成するのには、「audit2allow」コマンドを使用する。 ポリシー一覧を取得し、「nginx.te」ファイルに保存しておく。 [shell title=”ポリシー一覧の取得”] # cd ~ # mkdir selinux # cd selinux # grep nginx /var/log/audit/audit.log| audit2allow -m nginx > nginx.te # cat nginx.te module nginx 1.0; require { type unconfined_t; type httpd_t; type user_home_t; class sock_file write; class unix_stream_socket connectto; } #============= httpd_t ============== allow httpd_t unconfined_t:unix_stream_socket connectto; allow httpd_t user_home_t:sock_file write;…

CentOS7 yumでNginxをインストール

0.2回分くらいのテーマ。 [amazonjs asin=”4863541686″ locale=”JP” title=”Webエンジニアの教科書”] Nginxのリポジトリを追加 /etc/yum.repos.d 配下にnginx.repoを作成し、以下を記述する。 [shell] # vi /etc/yum.repos.d/nginx.repo [/shell] [shell title=”nginx.repoの記述内容”] [nginx] name=nginx repo #baseurl=https://nginx.org/packages/centos/$releasever/$basearch/ baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 [/shell]   Nginx をインストール Nginxをインストール [shell title=”Nginxをインストール”] # yum install nginx [/shell]   Nginxを起動、停止する。 「systemctl status nginx」で現在のNginxのステータスを確認。 「systemctl start nginx」でNginxを起動する。 「systemctl stop nginx」でNginxを停止する。 [shell] # systemctl status nginx nginx.service – nginx – high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled) Active: inactive (dead) <-死んでいる Docs: https://nginx.org/en/docs/ # systemctl start nginx # systemctl status nginx nginx.service – nginx – high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled) Active: active (running) since 土 2015-05-16 13:03:57 UTC; 2s ago <-動いている # systemctl stop nginx # systemctl status nginx nginx.service – nginx…