Oracle Management Cloud의 Infrastructure Monitoring과 collectd를 결합하여 프로세스 모니터링 구현
10846 단어 오라클oraclecloudcollectd감시
시작하기
전제
collectd 구성
collectd의 conf 파일을 아래와 같이 설정한다.
/ 에 tc / 여기 ctd. 곤 f
[root@hostname ~]# vi /etc/collectd.conf
■ Intervalの変更(10秒⇒60秒)
監視間隔がデフォルトの場合だと短すぎることが原因で
内部的にエラー(METRIC_UPLOAD_RATE_LIMIT_EXCEEDED)になるため、監視間隔を1分以上にする
---
#----------------------------------------------------------------------------#
# Interval at which to query values. This may be overwritten on a per-plugin #
# base by using the 'Interval' option of the LoadPlugin block: #
# <LoadPlugin foo> #
# Interval 60 #
# </LoadPlugin> #
#----------------------------------------------------------------------------#
Interval 60
---
■ Processesプラグインの構成
(例)Cloudエージェントプロセス、collectdプロセスを監視するための設定
---
LoadPlugin processes
<Plugin processes>
ProcessMatch "omc-cloud-agent" "java .*oracle.sysman.gcagent.tmmain.TMMain"
Process "collectd"
</Plugin>
---
※ここで監視対象のプロセスを定義する
なお、ProcessMatch の場合は、regexにスラッシュ指定は不可のため注意
■ write_httpプラグインの構成
write_httpプラグインを使用してcollectdで収集した情報をCloud Agentにプッシュするように設定
---
LoadPlugin write_http
<Plugin write_http>
<Node "omc">
URL "https://127.0.0.1:1899/emd/receiver/gmc"
Format "JSON"
StoreRates true
VerifyPeer false
</Node>
</Plugin>
---
※collectdがCloudエージェント・ホストに対してリモート構成の場合は、
127.0.0.1のループバック・アドレスの代わりにCloudエージェント・ホスト名を指定する
■ unixsockプラグインの構成
Cloudエージェントにcollectdctlで情報を収集させるために、unixsockプラグインを有効化
---
LoadPlugin unixsock
<Plugin unixsock>
SocketFile "/var/run/collectd-unixsock"
SocketGroup "collectd"
SocketPerms "0660"
DeleteSocket false
</Plugin>
---
※Cloudエージェントのインストールユーザが、collectdプロセスを実行しているユーザと異なる場合は、
CloudエージェントのインストールユーザをSocketGroupで指定したグループに追加する(上記例では"collectd"グループ)
もしくは、SocketGroupにインストールユーザが所属するグループを指定する
■ URI保護のための資格証明の追加(Optional)
⇒本検証では動作確認のみを目的とするため、Skipする
[root@hostname ~]#
collectd의 설정 반영
collectd 서비스를 다시 시작하고 위의 설정을 반영합니다.
[root@hostname ~]# systemctl restart collectd.service
[root@hostname ~]# echo $?
0
[root@hostname ~]# systemctl status collectd.service
● collectd.service - Collectd statistics daemon
Loaded: loaded (/usr/lib/systemd/system/collectd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2019-03-11 13:43:40 JST; 13s ago
Docs: man:collectd(1)
man:collectd.conf(5)
Main PID: 23246 (collectd)
CGroup: /system.slice/collectd.service
mq23246 /usr/sbin/collectd
[root@hostname ~]#
OMC에 커스텀 엔티티 추가
매뉴얼을 참고로, 커스텀 엔티티 추가용의 json 파일을 준비해,
수동으로 collectd에 대한 엔티티를 추가합니다. (아래 예에서 호스트 이름 : myhost1)
json 파일 만들기(collectd-myhost1.json)
[root@hostname ~]# su - <Agent install user>
[<Agent install user>@hostname ~]$ vi collectd-myhost1.json
{
"entities":
[
{
"name": "collectd-myhost1",
"type": "omc_generic_metric_collector",
"displayName": "collectd-myhost1",
"timezoneRegion": "JST",
"properties":
{
"host_name":
{
"displayName": "Host Name",
"value": "myhost1.compute-999999999.oraclecloud.internal"
},
"omc_query_interface_path":
{
"displayName": "Query Interface Path",
"value": "/bin/collectdctl"
},
"omc_filter_expression":
{
"displayName": "Filter Expression",
"value": "{$.[?(@.host=='myhost1')]}"
},
"omc_auto_map":
{
"displayName": "Automatically Map Metrics",
"value": "TRUE"
},
"capability":
{
"displayName": "capability",
"value": "monitoring"
},
"omc_monitored":
{
"displayName": "Cloud Agent Monitored",
"value": "TRUE"
},
"omc_product_name":
{
"displayName": "Product Name",
"value": "collectd"
},
"omc_product_vendor":
{
"displayName": "Product Vendor",
"value": "Florian octo Forster, et al."
},
"omc_product_version_query_arg":
{
"displayName": "Product Version Query Argument",
"value": "-h"
},
"omc_product_version_regex":
{
"displayName": "Product Version Regular Expression",
"value": "^collectd (.+), http"
},
"omc_metrics_query_arg":
{
"displayName": "Metrics Query Argument",
"value": "listval"
},
"omc_response_query_arg":
{
"displayName": "Response Query Argument",
"value": "listval"
},
"omc_use_exit_code_for_response":
{
"displayName": "Use exit code for response",
"value": "TRUE"
},
"omc_protocol":
{
"displayName": "Protocol",
"value": "https"
},
"omc_payload_format":
{
"displayName": "Payload Format",
"value": "json"
},
"omc_receiver_uri_path":
{
"displayName": "Receiver URI Path",
"value": "/emd/receiver/gmc"
}
}
}
]
}
[<Agent install user>@hostname ~]$
엔티티 추가
[<Agent install user>@hostname ~]$ /opt/omc/cloudagent/agent_inst/bin/omcli add_entity agent collectd-myhost1.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2018 Oracle Corporation. All rights reserved.
Operation Succeeded: Accepted 1 of 1 entities for processing.
[<Agent install user>@hostname ~]$
엔티티 추가 후 확인
[<Agent install user>@hostname ~]$ /opt/omc/cloudagent/agent_inst/bin/omcli status_entity agent collectd-myhost1.json
Oracle Management Cloud Agent
Copyright (c) 1996, 2018 Oracle Corporation. All rights reserved.
omc_generic_metric_collector.collectd-myhost1 : AGENT:entity fully monitored
⇒追加したエンティティが"AGENT:entity fully monitored"であることを確認
[<Agent install user>@hostname ~]$
[<Agent install user>@hostname ~]$ /opt/omc/cloudagent/agent_inst/bin/omcli config agent listtargets
Oracle Management Cloud Agent
Copyright (c) 1996, 2018 Oracle Corporation. All rights reserved.
[myhost1.compute-999999999.oraclecloud.internal:4459, Lama]
[myhost1.compute-999999999.oraclecloud.internal, omc_host_linux]
[collectd-myhost1, omc_generic_metric_collector]
⇒追加したエンティティがターゲット一覧に表示されることを確認
[<Agent install user>@hostname ~]$
추가한 엔티티에 라이센스 부여
OMC 서비스 콘솔에 로그인하고 다음 절차에서 추가한 엔티티에 라이센스를 부여합니다.
① : 메뉴에서 "관리"를 누르십시오.
② : 「엔티티 구성」→「라이센스」를 누름
③ : "라이센스 없음"의 엔티티에서 추가한 collectd용 엔티티(Generic Metric Collector)를 선택하고 라이센스(Standard or Enterprise)를 할당
※ 부여 가능한 라이센스는 구독 및 엔티티 수에 따라 다르므로 주의
④ : 정상적으로 라이센스가 설정되었는지 확인
⑤: 감시 대상의 커스텀 엔티티에 대해서도 마찬가지로 라이센스(Standard or Enterprise)를 할당
이 예에서는 collectd 프로세스 모니터링을 위해 구성을 수행합니다 (엔티티 이름 : myhost1-collectd).
※ 부여 가능한 라이센스는 구독 및 엔티티 수에 따라 다르므로 주의
※④의 확인 후, 커스텀 엔티티가 화면에 반영되기까지, 잠시 시간이 걸리는 경우 있어
⑥: 정상적으로 라이센스가 설정되었는지 확인
⑦: 「모니터링」→「엔티티」에서 추가한 커스텀 엔티티의 정보가 수집되어 있는지 확인
※상기에서 추가한 collecd 프로세스 감시용의 엔티티(myhost1-collectd)를 화면에서 확인할 수 있다
비고
위에서 OMC에서 프로세스 모니터링을 수행 할 수 있으므로 대상 사용자 엔티티에 대해
경고 룰을 설정하면, 장해시의 메일 통지 등을 실시할 수 있게 된다.
이상
Reference
이 문제에 관하여(Oracle Management Cloud의 Infrastructure Monitoring과 collectd를 결합하여 프로세스 모니터링 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/41T41R/items/072c5d20a2bac9ef00c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)