5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instana ObservabilityAdvent Calendar 2023

Day 21

InstanaでOpenRestyのトレーシングの有効化を試してみる

Posted at

はじめに

この記事では、InstanaでLinux上動作しているOpenRestyのトレーシングの有効化のセットアップについて説明します。

対象とする読者

システム管理者や開発者で、OpenRestyのパフォーマンス監視に興味がある方々。

ゴール

AWS EC2のAmazon Linux 2上にInstanaでOpenRestyの分散トレースを収集できること。

前提条件

  • Linuxが搭載された環境
  • OpenRestyの基本的な知識

アーキテクチャ

Screenshot 2023-12-21 at 18.25.17.png

手を動かす

1. OpenRestyのインストール:

下記のコマンドでOpenRestyのダウンロードとインストールを行います。

$ wget https://openresty.org/package/amazon/openresty.repo

$ sudo mv openresty.repo /etc/yum.repos.d/

$ sudo vim /etc/yum.repos.d/openresty.repo
  ##change the baseurl tag content value of "$releasever" to "latest",the changed as follow: 
  baseurl=https://openresty.org/package/amazon/latest/$basearch

$ sudo yum check-update

$ sudo yum install -y openresty

$ sudo /sbin/chkconfig openresty on

$ sudo systemctl start openresty

### Open Restyのステータスを確認する ###
$ sudo systemctl status openresty

2. Instana Agentのインストール:

Instana Agentのデプロイ画面から、Linux-->「自動インストール(ワンライナー)」画面で下記のようなコマンドをコピーして、実行します。

$ curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a uXXXXXXXQ -d uYYYYYYYYYQ -t dynamic -e ingress-orange-saas.instana.io:443 -s -y

### Instanaサービスの確認 ###
$ sudo ps aux | grep instana

$ sudo systemctl status instana-agent.service

3. Instana OpenResty Tracing Moduleのダウンロードと設定:

3.1 Tracing Moduleをダウンロードし、適切なフォルダに配置します。

### 正しいAgent keyを下記のPassword部分に設定する ###
### URLは下記の参考URL 1.部分で正しいURLを設定する ###
$ wget --user _ --password XXXAgent_KeyXXXXXX https://artifact-public.instana.io/artifactory/shared/com/instana/nginx_tracing/1.8.2/linux-amd64-glibc-openresty-1.21.4_compat.zip

$ unzip linux-amd64-glibc-openresty-1.21.4_compat.zip

$ sudo mkdir /usr/local/openresty/nginx/modules

$ sudo cp /home/ec2-user/*.so  /usr/local/openresty/nginx/modules

3.2 新規:/etc/instana-config.json

注意:JSON Formatなので、各Elementの後ろに "#"を取り除く必要があります

{
  "service": "openrestytracinglinux2", 
  "agent_host": “127.0.0.1”, 
  "agent_port": 42699, 
  "max_buffered_spans": 1000
}

4. nginx.confの設定

/usr/local/openresty/nginx/conf/nginx.conf にmetrics及びtracing有効化を設定する

……
load_module modules/glibc-openresty-1.21.4-ngx_http_ot_module_compat.so;
env INSTANA_SERVICE_NAME;
env INSTANA_AGENT_HOST;
env INSTANA_AGENT_PORT;
env INSTANA_MAX_BUFFERED_SPANS;
env INSTANA_DEV;

http {
……
    opentracing_load_tracer /usr/local/openresty/nginx/modules/glibc-libinstana_sensor.so /etc/instana-config.json;
    opentracing_propagate_context;
    log_subrequest on;
    upstream backend {
      server 127.0.0.1:5000;
    }
    server {
        location / {
           proxy_set_header X-AWESOME-HEADER "openresty_tracing_is_awesome";	    
           opentracing_propagate_context;
           proxy_pass http://127.0.0.1:5000;
        }
		.....
		
		### OpenResty Metrics収集するため ####
		location /nginx_status {
            stub_status  on;
            access_log   off;
            allow 127.0.0.1; # Or the Remote IP of the Instana Host Agent
            deny  all;
        }
…….

5. 動作確認

下記のテクノロジーを利用して、一応ローカルにFlask Frameworkベースのpython web サービスを起動して(http://127.0.0.1:5000)、PC Browserからアクセスして、Instanaのダッシュボードでメトリクスとトレースを表示されることを確認します。
Python3.7.16
Flask Framework
python-sensor@v2.0.5

Screenshot 2023-12-21 at 19.08.33.png

Screenshot 2023-12-21 at 19.08.56.png

Screenshot 2023-12-21 at 19.09.12.png

Screenshot 2023-12-21 at 19.09.20.png

Screenshot 2023-12-21 at 19.09.34.png

Screenshot 2023-12-21 at 19.09.43.png

おわりに

InstanaのOpenResty Tracingは、Webアプリケーションのパフォーマンス監視において非常に重要ので、ぜひ一度お試しいただければと思います。

参考URL:

  1. NGINX Distributed Tracing Binaries
  2. Monitoring NGINX
  3. Supported NGINX versions and platforms
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?