:>/dev/null

ラガードエンジニアの不撓不屈の精神

cloudmapperに入門した

aws

awsの構成変更を行う場合、Document更新を忘れるので良い方法がないか調査した。 本来なら構成変更を行ったタイミングで自動化してDocument更新をするのが良いが効果的な方法が見つからない。 cloudmapperを使用した場合、現時点での構成が図表されるので代…

Ansibleを使用した構成管理に入門した

ansibleを使用して構成管理をする場合の条件分岐方法の調査を行った時の勉強メモ。 以下構築要件 Ansibleで構成管理を行う(冪等性の担保) Ansibleで各環境毎に設定内容を書き換える PRD(Production)/STG(Staging)/sandbox等 ■下記に各設定サンプルのconfファ…

Amazon Kinesis Client Library (KCL)を使用したログ収集基盤構成

Amazon Kinesis Client Library (KCL)を使用したログファイル収集基盤構成を構築する必要があり、調査を行った時の勉強メモ。 以下構築要件 apacheのaccess_logを集約サーバへ収集する 集約サーバでAmazon Kinesis Client Library (KCL) ライブラリを使用し…

aws cloud watchの各使用状況詳細

aws cloudwatchで各使用状況を確認出来るが、各コストに関して詳細に調査する必要があり、調査を行った時の勉強メモ。 請求ダッシュボード -> Cost Explorer -> サービス別の月別使用量ビュー リンクアカウント別の月別使用量ビュー 日別使用量ビュー cost r…

fluentdで送信recordに文字列を代入してから送信する

タイトル通り実装する要件があり、調査・設定行った時の勉強メモ。 fluentdを使用したログ集約環境で、送信データの特定フィールドの値をごにょごにょ加工したい(次工程に渡す)っていう要件があります。 調査の結果、fluentdのfilter_record_transformerプ…

amazon linux2でのpython3環境構築

Lambdaをpython3で書く必要があり、まずは環境構築を行った時の勉強メモ。 構築手順 python3 install pip3 install reqest package作成 boto3 package作成 Token取得 ※取得したTokenが正常か確認 ・python3 install $ sudo yum install python36 python36-vi…

aws cuiを使用してKinesis streamデータ登録・確認

Kinesisはライブラリとして使用する事が多い為、実際の挙動を把握せず使ってるので調査した時の勉強メモ。 実際の挙動を把握する事で障害対応等で効率的に行動出来るようにする。 ■ストリーム作成 aws kinesis create-stream --stream-name <ストリーム名> -…

CloudWatchでCustomMetrix設定

表記の通りCloudWatchに監視項目を追加する必要が発生したので調査した時の勉強メモ。 CustomMetrix追加手順 aws configureがインストールされてない環境での手順 cloudwatchのsrcファイル(今回は「CloudWatch-1.0.20.0」)をインストール カスタムメトリクス…

terminal is not big enough

sshターミナル環境でtopコマンド発行時、terminal is not big enoughが表示され出力されないので調査した時の勉強メモ。 sshターミナルでtopコマンド発行 発生内容:Sorry, terminal is not big enough 対応:代替えコマンド発行(mpstat -P ALL) [root@**** …

aws環境でfluentd経由を用いたログ基盤構築

aws環境でログ基盤を構築する必要があり、周辺関連の知識がたりなさすぎたので調査した時の勉強メモ。 lamda関数 処理フロー クラアント(td-agent)→Kinesis firehose→lamdba→s3 # # lamdba # import boto3 import json import base64 import time import sys…

td-agentでログ欠損が発生した

fluent(td-agent)で、Buffer溢れにによるログ欠損が発生したのでその時の調査・対応を下記へ記載しておく。 ・対応フロー コンソールからtd-agentのログ状況確認 Bufferの蓄積状況確認 td-agent.conf確認 td-agent.conf設定変更 td-agnetサービス再起動 以下…

ansible playbook performance tuning

ansibleでplaybookを書いていたが、大規模化するにつれ実行時間を要するようになり調査・対応を下記へ記載しておく。 以下、設定環境:ansible version2.1 ・ansible.confパラメータチューニング # cat .ansible.cfg [defaults] transport=ssh pipelining=Tr…

mongodbでのslowlog設定

Mongodb に関してslowlog出力設定での調査・対応を下記へ記載しておく。 mongosに設定追加は「profile currently not supported via mongos」とエラーとなる為、shard(mongod)に設定をする。 mongodへ設定追加後、mongosで解析行う。 以下対応フロー mongod…

logrotate設定のエラー改善されない事象に関して

apacheのaccess_logをカスタム出力設定後、ローテート設定したが正常稼働せず調査・対応を下記へ記載しておく。 以下対応フロー apacheのaccess_logを稼働出力設定する ログローテート設定に上記出力したファイルをローテート設定 ログローテート実行 ログロ…

apacheのaccess_logをjson化しtd-agentで集約サーバへ収集する

apacheのaccess_logを構築した集約サーバへ収集する必要があり、そのついでに解析しやすいようjson化設定したのでメモ。 apacheログをjson化する要件が発生した場合汎用性がありそうなので、調査・対応を下記へ記載しておく。 以下構築要件 apacheのaccess_l…

shで日時バックアップscript

shellで日時バックアップ処理を行う必要があった為、設定時メモ。 以下構築条件 デイリーバックアップ 圧縮必須 suffixが日時のみ処理 開始・終了時刻が記載 本条件でshell scriptを書いた #!/bin/sh set -e readonly SCRIPT_NAME=${0##*/} readonly HISTORY…

td-agentのbuffer_path重複障害

td-agentを起動した場合、buffer_path指定でエラー発生し、嵌ったので設定時メモ。 sourceディレクティブが複数あり、各tagを指定してサーバへ送信している環境。 以下構築条件 各sourceディレクティブでtag指定 sourceディレクティブでtag名重複は無い サー…

fluentdの複数sourceディレクティブで各label毎に特定record追加

fluent(td-agent)を使用したlabel切り分けで各label毎にrecord追加する対応が発生したので設定時でのメモ。 sourceディレクティブが複数あり、送信時に特定recordを追加して送りたい場合に有効。 汎用性がありそうな為、調査・対応を下記へ記載しておく。 以…

Zabbix で fluentd のbuffer・キュー等の項目を監視する

fluent(td-agent)サーバ構築時、buffer等の監視設定時のメモ。 Buffer溢れ、転送先サーバ接続不可などの検知に使用出来ればと考えた。 設定方法を下記へ記載しておく。 以下監視項目 buffer_queue_length -> (バッファーに蓄積されているキューの数)buffer_q…

fluentdの一時的labelの書き換え

fluent(td-agent)を使用したlabel切り分けで一時的設定→送信時変更する対応が発生したので設定時でのメモ。 sourceディレクティブが複数あり、送信時にsubgroup化して送りたい場合に有効。 sourceディレクティブにsubgroup機能が無い為、送信時のlabelディレ…

ホスト側からリモートコマンド実行

ansibleのplaybookを使用し、ホスト側から配下内に複数クライアントへ特定コマンドを実行する * 下記サンプルはmysqlのerror,slowに一括でコマンド実行しログ出力させる。 * td-agent等使用し、ログ収集行う場合のテスト出力で便利 # cat hosts [hostlist] h…

Loop over dates with bash in Linux

特定日時間でのループ処理 start、endを指定 daily処理 上記要件の場合の処理script #!/bin/bash START=2017-10-22 END=2017-12-31 CURRENT=$START while true; do echo $CURRENT if [ "$CURRENT" = "$END" ]; then break fi CURRENT=`date -d "$CURRENT 1da…

mongodb 2.6 クラスタ構成で過負荷対応

クラスタ構成環境のmongosで下記エラー発生。 調査・対応を下記へ記載しておく。 エラー内容 mongos service is down on vm**** Processor load is too high on vm**** ※ロードアベレージは上がっているが、CPU負荷は増えていない。 対応方法 1.カーネル設定…

Zabbix API を使用してホストリストを取得する

zabbixに多数サーバ登録した場合、ホストリストの視認性に苦労する事がある。 ※Webコンパネからポチポチしたくない・・ その場合、APIを使用しリスト化するのが便利そうなので実装した。 '2.0', 'method' => 'apiinfo.version', 'id' => 1, 'auth' => null,…

PHP-FPMに環境変数を渡す

centos+nginx+php-fpmで構築したサーバで外部プロキシ経由のインターネット接続設定時でのメモ。 apache+phpで構築したサーバでは「/etc/environment」を起動時に読み込み可能な為、環境変数設定が可能だが上記環境では正常に読み込まれない。 調査・対応を…

Centos7でFirewalldを用いたポートフォワード設定

CentOS 7で採用されたFirewallでのポートフォワード設定を構築したのでメモしておく。 firewall-cmd –directよりfirewall-cmd –add-rich-ruleの方が個人的には分かりやすく感じたのでこちらで。 以下構築要件 内部ネットワークは全許可 80番ポートにアクセス…

Centos系でのMASQUERADE構築

Centos7 ●マスカレードホストルータ firewallコマンドにてMASQUERADE設定 # firewall-cmd --direct --get-all-rules firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -s 10.0.0.0/8 -j MASQUERADE firewall-cmd --direct --add-rule ipv4 filter P…

squidによる多段プロキシ

多段でプロキシを組む場合、つまずいたのでメモがてら残しておく。 以下の様なパターンでアクセスが発生する。 PC => WWW PC => PROXY (外部Proxy)(認証有) => WWW PC => PROXY (イントラGW) => PROXY(外部Proxy)(認証有) => WWW 今回の目的 外部Proxyサーバ…

PHPのcRUL関数を用いたProxy接続

PHPでの開発時、Proxy経由で外部連携等々でcRUL接続を行う場合のサンプルコードを以下に示す。

中国のインターネット通信状況

中国国内からのパフォーマンス比較サイト https://www.dotcom-tools.com/website-speed-test.aspx http://www.china-webby.com/%E4%B8%AD%E5%9B%BD%E5%90%84%E7%9C%81%E3%81%8B%E3%82%89%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%B9%E3%83%94%E3…