ラベル Intelligence Platform の投稿を表示しています。 すべての投稿を表示
ラベル Intelligence Platform の投稿を表示しています。 すべての投稿を表示

2020年4月23日木曜日

SASフォルダの認証の設定値を確認

SAS Management Consoleから、SASフォルダに認証を設定するのは良くあることです。これで面倒なのが再鑑で値を確かめるのがGUIでポチポチ叩いて画面ショットを取ることです。

そんなときには、以下のツールを使って設定値をテキストに落とせば簡単、比較もしやすいです。設定値のエビデンス取得、SASフォルダやオブジェクトの設定確認に使えます。

Batch Tool: sas-show-metadata-access


もうひとつ別な方法として、%MDSECDS があります。
これはメタデータオブジェクトと権限をデータセットに出力してくれますが、明示的な設定と継承が混じるために厳密な設定確認にならない恐れがあります。

2020年4月6日月曜日

LOCKDOWNで指定できるディレクトリを制限

セキュリティに関心のある人向けの投稿です。サーバクライアントの構成で、フォルダのアクセス制限をする方法を調べていたら、ありました。だいぶ昔、2014年の記事 ”Fencing in your SAS users with LOCKDOWN” なので、長いこと気が付いていなかった。

悪意あるユーザが、コードタスクでディレクトリのパスを探索すると、他の人、他の部署に見せたくないものが見えてしまう可能性があります。これを防止する手段が、LOCKDOWN システムオプションです。設定の方法は、前述の記事を参照してください。許可されていないディレクトリにLIBNAMEを割り当てようとすると、どのようなエラーが起きるか示します。

Workspaceサーバのディレクトリにある設定ファイルをいじって、LOCKDOWNのオプションと許可するパスを設定します。

3つのパターンでLIBNAMEを割り当てます。1つ目が、許可されていないディレクトリ、2つ目が許可したディレクトリ、3つ目が許可されていないディレクトリのサブディレクトリです。

 これを実行すると、1つ目がエラーになります。検索に引っ掛かるようにエラーメッセージをタイプしておきます。この投稿を書いている時点では、日本語のエラーメッセージはヒットしません。ERROR: SAS がロックダウン状態の場合、パスc:\tempはアクセス可能なパスのリストに含まれません。

このLOCKDOWNオプションで物理パスの指定を守り、アクセス権をより強固に縛るには、Metadata-Bound Libraries を使えとのことです。これを実運用で使っているところを知らないけど、単に私が無知なだけなのか?同僚に聞いてみよう。

2020年3月30日月曜日

PROC HTTP コロナウィルスのデータ

Webページに掲載されているCSVファイルを読み込むサンプルです。PROC HTTPを使って、コロナウィルスのデータCSVを読み込んでいます。 エラー”SSL Error: Invalid subject name”の対応として、オプションを設定していますが、これはProblem Note 64218に情報があります。
filename myfile "/var/tmp/total_cases.csv";
options set=SSL_USE_SNI=1;
options set=SSL_SNI_HOSTNAME="covid.ourworldindata.org";

proc http
 url="https://covid.ourworldindata.org/data/ecdc/total_cases.csv"
 method="GET"
 out=myfile;
run;

proc import out=work.total_cases
 datafile=myfile dbms=csv replace;
 getnames=yes;
 datarow=2;
 guessingrows=200;
run;


2018年4月5日木曜日

SAS Environment Manager 2.5 - 使いどころ

製品紹介から引用したSAS Environment Managerの説明 

SAS Environment Managerは、SAS配置の新しいモニタリングと管理システムです。リソースの自動検出、リモートシステムのモニタリング、個人用ダッシュボードと役割ベースダッシュボード、アラート、視覚化などの機能が実装されています。中間層とSAS Server層の両層のサーバーに対する、Webベースの管理、操作、事前予防型のモニタリングを提供します。SAS Environment Managerには、エンタープライズレベルの操作機能を提供するために、VMwareのHypericテクノロジの一部が組み込まれています。

私の説明

もしあなたが以下の条件に当てはまるならば、SAS Environment Managerの利用を推奨します。あまり浸透していないようですが、構築および運用で役立つ機能です。

  • SAS 9.4 Intelligence platform構成でかつ複数サーバ構成 
  • システムの安定稼働で監視が必要
  • 負荷テスト、ロングランテストで設定を調整したい

勧める理由

デフォルトで定義されているアラートでSASのエラー、Web Application Serverのヒープの枯渇など多く情報を収集してくれます。しかも複数サーバ構成でも、SAS Environment Managerのダッシュボードで把握できます。アラートの種類は多くて、経験測に従うよりかは網羅性が高いです。アラートですが、検索で”Service Architecture Alert Definitions"で検索すると一覧が出てきます。

負荷テスト、ロングランテストでWeb Application Serverの処理時間やTime Outの件数、クライアント数など豊富な指標(Hyperic HQ用語でメトリックス)が取得できます。SAS固有のメトリックス以外にも、CPU, Free Memoryなども取れます。メトリックスの値はチャートからCSVファイルに保存できますが、 Hyperic HQのコマンドを使って、テキストファイルに抽出することもできます。

負荷テストが求められる規模のシステムであれば、インスト、構成、初期設定の後にSAS Environment Managerを設定して、負荷テストで発生するアラートやメトリックスを点検することをお勧めします。

よくチェックするアラート

アラートの定義は多数ありますが、私がよくチェックしている項目を挙げます。アラートの一覧を知りたければ、検索で"SAS Environment Manager Service Architecture Alert Definitions"で検索すると資料が見つかります。

  • Webapp CPU Time in Garbage Collection > 30%
  • Excessive Time Spent in Garbage Collection
  • Webapp Heap Free Memory < 5% of Max
  • Workspace Server ERROR message in log
  • Logical Workspace Server Timed Out Clients
  • Object Spawner ERROR message in log
  • Metadata Server ERROR message in log
  • SASWork Disk Use % > 95
  • SASHome Disk Use % > 95
  • SAS License Termination

その他

SASのサービスを起動、停止もできるのですが、他の運用ルールとの兼ね合いがあるので喧伝していません。下手にユーザがサービス上げ下げすると困るから。もちろん、役割を定義してサービスのコントロールを実行できないようにすることも可能です。


2017年6月27日火曜日

PROC SQLのPass-Through構文で、ライブラリ参照名のユーザ、パスワードを使う

昔、パススルー構文でデータベースに接続するときにユーザ名とパスワードを書くのが管理上困った記憶があります。ふと調べてたらSAS9.3からCONNECT USINGというキーワードが追加され、ユーザ名とパスワードを埋め込まなくても済むことが分かりました。

参照した記事は コチラ です。

調べたのはSAS9.1.3を使っていた頃でかなり昔のことです。お客様に「回避策無しで、PW埋め込んでください」とお願いしなくて済むのが良いです。

2017年1月10日火曜日

PROC HTTPでSAS Environment Managerに接続して情報を取得

前回はYahooのサイトから動くサンプルでしたが、今回は特定の環境で動くPROC HTTPのサンプルです。これはSAS Environment Managerに接続して、ユーザ一覧のXMLファイルを出力するサンプルコードです。実行した後に、C:\temp\response.xmlをブラウザで開いて取得されている中味を見てください。

filename response 'c:\temp\response.xml';

proc http 
 url='http://hogehoge.com:7080/hqu/hqapi1/user/list.hqu'
 method="get" 
 out=response;
 headers "Authorization"="Basic c2FzZXZzQHNhc3B3OntzYXMwMDJ9OTdFQ0U0NEIxMDVGNEM5NzNDN0U5MDc1"
    "User-Agent"="Apache-HttpClient/4.1.1 (java 1.5)"
    "Connection"=" Keep-Alive"
    "Host"="hogehoge.com:7080"
 ;
run;


response.xmlをIEで開くとこんな具合に見えます。

AuthorizationのBasic認証のコードは、Environment Managerのログに出力されているものをコピペしました。 同じようにUser-Agent, Connection, Hostの値もログから拾っています。 urlにある、"user/list.hqu" の部分は、vFabric Hyperic Web Services APIらしい。 試しに"user/delete.hqu?name=foo"とやったらユーザを削除できた。 今後、Environment Managerの機能が拡充される気配あるので、ちょっと下準備で触ってみました。 リソースの検索で、APM ETLのパラメータを取得できるようですが、どうやって仕事に使うかはのんびり考えます。

2017年1月5日木曜日

PROC HTTPの動くサンプル

Webページを読み込むサンプルです。PROC HTTPを使って、Yahoo Japanのページを読み込み、ログに出力しています。これはSAS Environment Managerから、データを引っ張るための予習みたいなものです。
filename myfile '/tmp/foo.txt';

proc http
 method="get"
 url="http://www.yahoo.co.jp/"
 out=myfile;
run;

data _null_;
 infile myfile;
 attrib buf length=$4096;
 input buf $4096.;
 put buf=;
run;


2016年9月26日月曜日

EG7.1 で credentials.xml の位置が変わってます。

EGで credentials.xml を使う人向けの情報です。
バッチ実行で、credentials.xml を使うネタは、以下のNote:に記述があります。
が、7.1の情報が書かれていません。

Usage Note 30917: Scheduling projects in SAS® Enterprise Guide®


EG7.1のパスは変更されています。
%APPDATA%\SAS\SharedSettings\7.1\credentials.xml で作成してください。
あと、server nameの値はプロファイルの名前でした。これ一時間ほど悩みました。


2016年9月13日火曜日

Workspace ServerのログのエンコーディングをUTF-8 に変更する。

Intelligent Platform製品を使っていて困ることのひとつが、UTF-8を前提として開発されているので、エンコーディングを従来と同じSJISにすると、SAS Environment Managerでエラーがでたりします。前に書いたPostgreのDBも内部はUTF-8なので、SJISのログを入れると不都合が生じます。

で、悩んで試したところ、SASのエンコーディングはSJIS, ワークスペースサーバのログはUTF-8に変更することができました。logconfig.xml に一行書き加えるだけです。

     param name="Encoding" value="UTF-8"/>

こんな感じです。ただ、ここだけ変更してシステムとして矛盾しないかという検証が未だです。このログをACM, APMで吸い上げる以外に何か落とし穴がないかこれから検証です。


2016年7月13日水曜日

次に作りたいツール, Metadata Serverに登録されているユーザにグループを設定/解除するスクリプト

決定版のスクリプトがないので、自分で作ることにします。
欲しい機能を書きとめておきます。

  • ユーザを登録する機能
  • ユーザを削除する機能
  • 全ユーザとそのグループとロールの一覧を表示する機能
  • 全グループの一覧を表示する機能
  • ユーザに対して1つ以上のグループを設定する機能
  • ユーザに対して1つ以上のロールを設定する機能
  • 変更前にバックアップ用のデータをファイルに保存する機能
  • UNIXのシェルから実行できること
  • エラーのログファイルを指定できること
  • 指定されたファイルを読み込んで、まとめて複数のユーザを登録できること
  • 指定されたファイルを読み込んで、まとめて複数のユーザを削除できること
GUIを組みたいが、APIとしてはJavaかC#を使う必要がある。
C#はDelphiを選ぶ前に試しで画面組んだが、もう5年以上も触っていない。
UNIXのログインしてスクリプトたたかずに、PCクライアントからツールを起動して、登録と確認できたら良いです。

まずは、スクリプトを目標にします。

2012年6月14日木曜日

SASのインストール・アカウント

Intelligent Platform製品をインストールする人向けに注意を1つ書きます。インストールのアカウントは削除されないように注意してください。

最近のインストールガイドでは、Administratorを使わないで、インストール用のアカウントを使うように推奨されています。しかしながら、セキュリティ意識の高まりを受けて、使っていないアカウントは、運用チームがバサバサと削除することがあります。

インストール・アカウントを削除すると、Service Packを当てたり、プロダクトを追加ができないことがあります。いま、まさにそんな状況で、弱っています。インストール・アカウントは無効化しておくように、運用チームと掛け合ってください。

2012年6月6日水曜日

SAS Intelligence Platformのサービス起動順序

仕事で使う割には良く忘れるので、ここにメモします。
SAS BI Serverのサービス起動順を以下に示します。
  1. Start the SAS Metadata Server.
  2. Start the SAS Object Spawner.
  3. Start the SAS Services Application.
  4. Start the WebDAV server.
  5. Start the servlet container or the J2EE application server.
停止は逆順です。起動はMO, 停止はOMと呪文のように覚えます。
これは、SAS® 9.X Intelligence Platform System Administration Guideに説明があります。