Vagrant + CentOS7 + Nginx + uWSGI + Pythonで Hello World
以前、Nginx + uWSGI上で Pythonを動かしました。 その時は訳もわからず構築してたので、復習も兼ねて今度は CentOS7 上で動かす手順をまとめます。 uWSGI概要 WSGIとは WSGI(Web Server Gateway Interface)とは、Webアプリケーションと Webサーバを接続するための標準インターフェースの仕様です。 実際に Webアプリケーションと...
View Articlenginx + uwsgi + Flask で Hello World
こちらの環境で Flask を動かしたいと思います。 pyenv + pyenv-virtualenv で Python仮想環境作成 Vagrant + CentOS7 + Nginx + uWSGI + Python3 で Hello World Flask を動かす 下記環境に Flask 関連のファイルをまとめます cd /home/vagrant/work/uwsgi/myapp Flask...
View ArticlePython で Amazon Product Advertising API から商品情報取得
Amazon Product Advertising API を Python から利用してみます。 方法が2通りあったので、両方試してみました。 アクセスキー取得などの事前準備はこちらを参考にしてください。 bottlenose lionheart/bottlenose · GitHub bottlenoseというモジュールから使用してみます。 返り値が xml なため、BeautifulSoup...
View ArticleAmazon API で 503 エラーが返ってくる際の対応 [Python]
Python で Amazon Product Advertising API から商品情報取得 Pythonから Amazon Product Advertising API を使用しました。 しかし、APIを叩いていると503エラーが度々出るため、エラーハンドリングを行います。 503 エラー対処 エラーが起きた場合、再度 API を叩く処理を追加します。 Amazon Product...
View Article機械学習について概観理解
機械学習とは 機械学習とは、「データの集合から」「その法則性(パターン)」を学ぶ、見つけ出すこと 与えられたデータからより効率的に法則性を発見するための手法の集合 予測や分析、分類に用いる ex) 入力と出力の因果関係を知りたい 複数のカテゴリを判別したい 似た者同士をまとめたい 異常な場所(場合)を発見したい 機械学習のステップ 1. 生データから特徴ベクトルへの変換 2....
View Articlepyenv, python3, lambda-uploader で AWS Lambda にアップロードする。
AWS Lambdaの開発環境が必要になったので整備する。 Lambda が Python3に対応したため、Python3 環境で。 下記記事を参考にしました。 LambdaでAWSの料金を毎日Slackに通知する(Python3) AWS側準備 IAMユーザのロールに以下ポリシーをアタッチしておく。 CloudWatchReadOnlyAccess ローカルPC...
View ArticleMacで AWS Lambdaで動く Python3 のライブラリを用意する
pyenv, python3, lambda-uploader で AWS Lambda にアップロードするの続き。 Python の numpy や pandas, beautifulsoupなど、Cで作られているライブラリを AWS Lambda で動かしたい。 しかし、Macから lambda-uploader でアップしたらエラーがでてしまった。 “errorMessage”:...
View Articlefluent-plugin-bigquery + BigQuery で遭遇したエラーメモ
概要 GCP の BigQuery へ fluent-plugin-bigquery でストリームインサートする際に遭遇したエラーのメモ。 fluent-plugin-bigquery のバージョンは 1.10。 td-agent3です。 エラー error_class=Signet::AuthorizationError error=”Authorization failed. Server...
View Articlepandas multiindex で KeyError を出さない存在チェック
Pandas で存在しない key を loc を使って指定した場合、 KeyError とななってしまう。 df_grouped.loc[("key1", "not_key2"), ] 以下のようすると、KeyError が返らない。存在しない場合は False が返る。 ('key1', 'not_key2') in df_grouped.index 存在する場合は True が返る。...
View ArticleThe power of believing you can improve
英語勉強用に、TEDの The power of believing you can improve を書き起こした。 The power of believing you can improve I heard about a high school in Chicago where students had to pass a certain number of courses to...
View ArticleRedash Python DataSources で Error running query: KeyError
現象 表題の件、下記のように、Redash の Python DataSources で get_query_result で値を取得しようとすると、KeyError が表示された。 result = get_query_result(1)['rows'][0]['REMOTEADDRESS'] Error running query: <type...
View ArticleBigQuery で文字列を timestamp にパースしたい
Standard SQLのみです。 文字列を timestamp 型にパース 例えば 20180329T092448 のような文字列があったとする。 これを timestamp 型として変換したい場合、 PARSE_TIMESTAMP関数 を利用する。 PARSE_TIMESTAMP('%Y%m%dT%H%M%S', '20180329T092448') といったようにセレクトすると...
View ArticleUbuntu16.04 pip10 壊れる(ImportError: cannot import name main)
現象 このようなエラーが出た。 Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main After pip 10 upgrade on pyenv...
View ArticleAWS + Docker + Elasticsearch6.3 + Kibana6.3 構築
AWS 上に ElasticSearch + Kibana を Docker Compose を使って作成した際の手順。 AWS t2.medium AMI SSD30GB セキュリティグループで5601ポートにインバウンドで許可をしておく Docker アップデートと git インストール。 sudo yum update -y sudo yum install git -y docker...
View ArticleAWS + Ubuntu16.04 + Fluentd1.0 を設定
構築した ElasticSearch + Kibana に Fluentd を利用してログを投入する。 ログは WOWHoneypot のもの。WOWHoneypot については電子書籍も販売されてるので、ハニーポットを勉強したい人は買うのをオススメします。 Fluentd 環境を AWS の Ubuntu 上で整えるまでの手順。 WOWHoneypot 構築 WoWHoneypotを植えてみよう...
View ArticleFluentd1.0 で ElasticSearch6.3 に WOWHoneypot のログを投入
送信側サーバ(WOWHoneypot + Fluentd)と受信側サーバ(ElasticSearch + Kibana)の2つのサーバの場合。 ElasticSearch + Kibana の構築 WOWHoneypot + Fluentd の構築 ElasticSearch 側のサーバ設定 送信側。 Fluentd のサーバと ElasticSearch のサーバは異なるため、Fluentd...
View ArticleCentOS6 に Splunk 無償版をインストール
※訳あっていまさらCentOS6です ハニーポットで取得したログを保存・分析するログ基盤を構築したい。 Splunk の無償版が使えるか確認する。 無償版概要 このあたりを確認。無料版でも充分な分析機能を備えている。 無料バージョンとEnterpriseバージョン Splunk製品機能比較 ただし、ログイン機能がない。前段にリバースプロキシを置く? OS設定 Vagrant で CentOS6.7...
View ArticleSplunk に Nginx のリバースプロキシで HTTPS 通信する
前回 Splunk の無償版の環境を構築した。 今回は、この Splunk に HTTPS でアクセスするためのリバースプロキシ設定を行う。 公式日本語ドキュメントでは Apache と Squid のみがサポートされている口ぶりだが、公式ブログでは Nginx の例が書かれている。 やりたいこと 以下3つ。 Splunk への通信を HTTPS 化したい HTTPS 通信は Nginx...
View ArticleStackdriver Logging + BigQuery で GCE の nginx ログを取り込む
Stackdriver も BigQuery の無料枠を利用して、GCE 上の nginx のログを BigQuery に取り込んで見る。 無料枠は以下。 Stackdriver : 30日間保存されるログサイズ50GB BigQuery : クエリ使用量1TB, ログ保存サイズ10GB Stackdriver ざっくり 無料の場合以下の制約がある。長期間保存するには BigQuery や...
View ArticleGoogle Data Studio + BigQuery で Stackdriver で収集したデータを可視化
Nginx のログを Google Data Studio で可視化したい。 Google Data Studio GOOGLE DATA STUDIO* ベータ版 Google Data Studio は無料で使えるデータ可視化ツール。 GCP の機能の一つというわけではないが、Google Analytics なども含めた Google Cloud...
View Article