「オンラインサービスは、それを再起動して停止しましたか」?職場よく行われた研究プログラマー、視線は次第に国営オンラインアプリケーションに転送されます。あなたは夜の二点の真ん中に夢の中で眠っている場合を想像し、マイクロチャネルグループが突然鍋を爆発:「サービスが停止し、最初の再起動を...」あなたはガスを得るためには、夢が終わったかどうか、にできる可能性がありますか?
アプリケーションの状態を監視し、監視アプリケーションログ、昇華一部(旧ドライバ、飛ぶためにあなたを取るために)、関連する知識を監視アプリケーションについて少し話をもとに:今日は3つの大きな部分に分かれています。
チップ:
1.今日の燃える脳かなりコンテンツ、事前に十分な6個のクルミをお飲み下さい!
2.しかし、私は最後まで読んで、あなたは間違いなく価値のある旅行を主張すると信じています!
I.アプリケーションサービス状態監視
7×24の生産、99.99%の安定した稼働率のための一般的な要件上で動作するアプリケーションとサービス。加えて、どのアプリケーション自体の堅牢性を確保するために、もちろん、監視を行うには、デーモンのいくつかに依存する必要があります。サービスは、アニメーションを停止したらそれ以外の場合は、どのように行うには?
まず、私たちが考えることができる、アプリケーションサービスの保護者のプロセスを完了するために、時折マッチのcrontabスケジュールされたタスクをリーン、平均、シェルファイルを形成するために、いくつかのラインを介してLinuxのコマンドです。(例えばTomcatに)それをチェックアウトするために何か、オープン共通のmonitor.shスクリプトを引っ張らないでください。
小さいながらも完全に形成されるが、私たちは解剖学のスズメを見てみましょう。
アプリケーションを決定する方法仮死にありますか?
毎回あなたが正常復帰200のステータスコードを訪れたときに、ハートビートを検出するように設計ヘルスチェックのURLを、設定することで、アプリケーションはまた、通常のサービスを提供することができます考えています。200以外の返されたステータスコード場合、仮死に存在することを示し、アプリケーションのプロセスIDが存在するか否かを判断します。
仮死のアプリケーションの再起動を達成するためにどのように?
することでPS -ef | grepの"Tomcatの" | grepを-w 'tomcatの' |はgrep -v "はgrep" | awkの'{$ 2印刷}' がある場合、対応するプロセスID、プロセスIDを取得するためにキルを進み、その後、startコマンドを呼び出しますサービスを完了するために再起動します。
上記のアプローチは、サービスの状態を確認するために60秒ごとに一度アプリケーションを実現するために、シェルスクリプトです。加えて、私はまた、多くの場合、Linuxシステムのcrontabを備え、監視呼び出すタイミング構成スクリプト、アプリケーションの監視が終了し、又は上記monitor.shスクリプトで、例えば、軽微な修飾はループをコメントしました。
スクリプトの準備を完了し、crontabファイルと次の予定されたタスク(私は言葉のcrontabを初めて聴いた時、グーグル、Baiduのためのあなた自身を見、研究集中的知識)
* / 1 * * * * /アプリ/スクリプト/ monitor.sh>を/ dev / null 2>&1
あなたは上記のスキームを試して準備ができている場合は、2点について考慮する必要があります。
注:対応するディレクトリを変更するためにしてください注意を払う、tomcatディレクトリ、スクリプトディレクトリ、ハートビートURLを含みます。
注2:シェルスクリプトの実行権限が割り当てられていることをしてくださいノート。
小さなスクリプトはとても巧みに偏向傾向を持たなければならない、不適切なBEAN BAGの乾燥食品を取ることはありません、大きな問題を解決するために。
実際には、過去の経験、穏やかなダウンに基づいており、そのようなプログラムをしない理由は、その後、他の非Tomcatサービスの監視に直面して、それについて考えます。
プログラムが完成言う監視この最も基本的な、最も簡単で実用的なアプリケーションサービスのステータス。あなたはに取得しましたか?
II。アプリケーションベースの監視ログ
連絡先の財務項目の全てのノウハウは、最後のシステムログバグアラジンのランプを解決することです。
フルスイング今日、解体サービスの粒度の細かい、労働モジュールのより多くの明確な部門におけるマイクロサービスの開発では、係員は、問題が面倒になりがちトラブルシューティングするために、ログに基づいています。
それで補完するマイクロサービスをログに記録することができないのですか?成形業界は、多くのプログラムがあります。そして、その帰属がそれをログに記録する方法について話?どのように帰属ログは、それを保存しますか?ログを保存する方法を示して?それを警告達成するためにどのように?
帰属をログに記録するには?
共通ロギング業界の補完方式は、それは二つのタイプに分けられない:1は直接採掘方法であり、もう一つは、エージェントの方法です。
いわゆるストレート方法、ログアプリケーションを採用する、または直接例えば、Log4jのアペンダ、サーバ層にアップロード。
具体的には、ログを収集するため、機械・サービス・エージェントにデプロイされたアプリケーションに対応し、エージェントモードいわゆる、及び、記憶層側又はサービスにプッシュ、アプリケーション自体は、ログを生成するための唯一の原因です。
直接採掘法が適用されます。追加のリソースのないエージェントの顔に、このような負荷分散装置などの独立コレクトログを展開することができ、それが直接マイニング手法を検討する必要があります。
エージェント適切な方法:限り、アプリケーションがファイルとしてディスクに出力を記録しますように、あなたが収集エージェント、およびアプリケーション自体の疎結合をログに記録することができます。優れた拡張性、保守性、エージェントの取得モード:ダイレクト供給モードと比較すると。
共通ロギング業界の転嫁ツール、何をしますか?
車輪の多くは出てくる準備ができて。
水路の指揮下に弾性のLogstash、弾性のFilebeat、Apacheは、Linuxシステムは、などなど筆記者の名の下に、Syslogの/のRsyslog / Syslogのは-ngのFacebookを利用して提供します。
これを読んで推定付着あなたが無知な力(見ていきます叫び笑いをそれについての知識のちょうどその時、今日の拡張、)、それは大丈夫です。
水路の指揮下に弾性のFilebeat、アパッチ:今日、私は主に私は2つを使用言及します。
Filebeatは、それが展開、最小限のフットプリント、軽量3Mに依存しない、バイナリファイルで、より多くの、箱から出して、プロのテストは、使用するのが特に便利で、囲碁言語で開発されています。そして、業界の評判は私はあなたがそれが(ELK聞いたことがあるかどうかを尋ねることができる、小型ではありませんELKスキーマのアップグレードの製品で叫び笑い)?
、私は主水路は、いくつかの冗長性を除去し、主のために、帰属のログを提供するために、プロジェクトのフレームワークに統合する能力を水路を使用し、Java言語を使用して水路を開発したいくつかの機能を拡張し、(第2延長の開発を行い、ライト特別にフォローアップ時間事の二次開発は、見てくださいということ水路)。
どのように帰属ログは、それを保存しますか?
そして、ホイールの束が出てくる準備ができて。
ElasticSearch、MongoDBの、HDFS、タイミングデータベースinfluxdb、opentsdb、RRDのように。
シーンのニーズに起因して、キーワードでクエリを探しますが、elasticsearch問い合わせを行うには、このように最も適切です。各車輪は、各車輪には使用シナリオを持っているので、これは道の下でうまく行うことはありません。
どのような視覚的なログ解析ツールは?
はい、あなたは確かに推測し、ホイールの束が出てくる準備ができて。
プレゼンテーションツールは、ログを提供するために開発ベースのNode.jsは、kibanaの概要、検索、ダッシュボードや他の特徴を示します。
言語発達に基づいて、時系列グラフを提供するために、GrafanaのようなCPUとIO使用率に基づいて行く特有の指標を重視。
それを警告達成するためにどのように?
長征、一の工程のみ。ログの転嫁が行われ、キーワードがある場合は、そのようなエラーは、例外となるように、表示したい場合は、キーワードはあなたがいないので、簡単にそれを実装するために警告通知を送信することができます表示されていること。
ログ転嫁についてはあまりそう雄弁な話、私はよくELK、詳細なフォローアップ帰属それをログに記録について記事を書く時間を見つけるために使用します。
III。昇華それは、古いドライバは、あなたが飛ぶ取る、あなたはBロード取ります
これまでのところ、あなたはアプリケーションサービスの状態を監視し、ログ・ベースの考え方のモニタリングを行う方法を知っする方法を学びました。呼び出し関係の合計がそれを要求:あなたがこれまでもつれていたこと?おそらくシステムを介して要求の数の合計?おそらくノードを消費費やされている金額を要求しますか?
誰もがあなたが時間を持っているし、次の3つのコンポーネントAPMにあなたの焦点を認めるならば、(最初の知識のギャップを埋めるために、独自の外観を理解していない)「監視APMアプリケーションパフォーマンスを」という概念を投げ与えます。
最初:データの収集、保管、検索、ショー:Zipkin、を含む、システムを追跡Twitterのオープンソースで配布されます。
第二:ピンポイント:追跡コンポーネントによって配布韓国オープンソース、APMは、Javaで書かれた大規模分散システムのためのツールです。
第三:Skywalking:APM優れた国産部品、Java分散アプリケーションの業務の追跡、警報システム及び分析があります。
ホイール千万のモデルは、常にあなたのための権利があります。
IV。最後に書かれました
インターネットの冬の下では、環境が良くないとき、あなただけ自己改善することができます!自己改善!!自己改善!!!
無意識のうちにコード非常に多くの言葉が、あなたはどのくらい知っている得ることはありません。