注:本文轉自:http://eric100.blog.51cto.com/2535573/1717792html
Opscenter用戶手冊node
DataStaxOpsCenter是一個可視化管理和監控Apache Cassandra和DataStax Enterprise工具。OpsCenter簡化了管理任務:python
添加擴展集羣web
配置nodesjson
查看性能指標api
修復問題瀏覽器
監控集羣狀況安全
OpsCenter主要功能以下:網絡
概述顯示任何警報和多個集羣的儀表板。 儀表板顯示性能指標監測的概況。 能夠在儀表板中添加和編輯圖表。 |
|
配置管理 |
基本的集羣配置。 管理任務,好比使用簡單的單擊操做添加集羣。 可視化的集羣配置。 使用agent管理多個集羣。 多個node管理。 下載PDF的集羣報告。 |
only企業版的功能 |
僅支持DataStax Enterprise版本。 監控DSE內存tables的功能。 查看spark console。 主備切換,自動失效轉移。 安全,能夠定義用戶角色。 DSE管理服務:
告警:
批量管理多個節點。 當新node添加或刪除時,Rebalance數據。 生成診斷的tarball,支持問題的排除。 Hadoop Job Tracker集成。 查看過去一週的歷史指標。 |
經過Cassandra和DataStaxEnterprise安裝DataStax agents。Agents使用Java Management Extensions (JMX)來監控管理每一個node。
最小的硬件環境:
2 CPU cores
2 GB of RAM available to OpsCenter
權限和軟件環境:
若是但願對配置的values加密,需安裝pycryptolibrary
安裝JRE或JDK。
建議使用最新版本的瀏覽器。OpsCenter不支持InternetExplorer和 Microsoft Edge。
Python 2.6+
一、下載OpsCenter
$ curl -Lhttp://downloads.datastax.com/community/opscenter.tar.gz | tar xz
文件已包含DataStaxagent。
二、進入opscenterversion_number目錄
$ cd opscenter-version_number
三、啓動OpsCenter
$ bin/opscenter
注意:使用bin/opscenter –f是在前臺啓動
四、瀏覽器打開OpsCenter
http://opscenter-host:8888/
經過OpsCenter添加完集羣以後,會在Dashboard上顯示agents狀態。
OpsCenter會嘗試自動安裝agents,若是失敗須要在每一個節點上手動安裝。
Root或sudo安裝agents。
JMX鏈接可用在集羣節點上。
SSH可用。
OpsCenter診斷tarball特性須要GNU1.16版本以上。CentOS/RHEL須要6以上。
一、打開瀏覽器,訪問http://opscenter_host:8888
http://1.2.3.4:8888/
當首次開啓OpsCenter,會提示你鏈接集羣:
二、點擊ManageExisting Cluster,出現Add Cluster對話框。
三、在Add Cluster,輸入集羣節點的Hostnames或IP地址,設置JMX和Native Transport端口號,點擊Save Cluster。
OpsCenter鏈接到集羣后,在Dashboard頂部會出現Fix鏈接。
四、點擊Fix鏈接開始安裝agents
五、在Install Node Agent,點擊EnterCredentials
六、在Node SSH Credentials,輸入username和其餘驗證信息,點擊Done。
七、在Install Node Agent對話框,點擊Install on all nodes。
八、若是提示,點擊Accept Fingerprint添加節點主機。
DataStax agents已經被安裝部署到集羣節點上。
若是你不可以經過OpsCenter UI安裝agents,請參考手動部署agents。
Cassandra或DataStax Enterprise集羣正在運行。
OpsCenter已經安裝。
集羣節點JMX可用。
OpsCenter診斷tarball特性須要GNU1.16版本以上。CentOS/RHEL須要6以上。
SYSSTAT工具(用來手機I/O指標,yuminstall –y sysstat)
$ curl -Lhttp://downloads.datastax.com/community/datastax-agent-version_number.tar.gz| tar xz
切入到agent目錄
$ cd datastax-agent-version_number
$ echo "stomp_interface:reachable_opscenterd_ip" >> ./conf/address.yaml
若是在opscenterd.conf中開啓了SSL,則在address.yaml添加SSL。
$ echo "use_ssl: 1" >>./conf/address.yaml
開啓agent
$ bin/datastax-agent
使用-f選項能夠運行在前臺
端口號 |
描述 |
OpsCenter端口號 |
|
8888 |
OpsCenter web地址端口。Opscenterd監聽來自瀏覽器的HTTP端口號,在opscenterd.conf中配置。 |
50031 |
OpsCenter對於Job Tracker的HTTP代理端口。Opscenterd進程監聽瀏覽器查看Hadoop Job Tracker頁面的HTTP端口號,在opscenterd.conf中配置(只支持DataStax Enterprise) |
61620 |
OpsCenter監控端口號。Opscenterd進程監聽來自agent的TCP交互。在opscenterd.conf中配置。 |
DataStax agent端口號 |
|
7199 |
JMX監控端口號。每一個agent節點會打開一個JMX鏈接 |
8012 |
Hadoop Job Tracker client端口號(只支持DataStax Enterprise) |
8012 |
Hadoop Job Tracker website端口號(只支持DataStax Enterprise) |
8012 |
Hadoop Task Tracker website端口號(只支持DataStax Enterprise) |
9042 |
native transport端口號,在cassandra.yaml中配置的native_transport_port |
61621 |
DataStax agent端口號 |
22 |
SSH端口號。在opscenterd.conf中配置。 |
Solr和Demo applications端口號 |
|
8983 |
Solr端口號和Demo applications端口號 |
LDAP服務端口號 |
|
389 |
非SSL LDAP和AD默認端口號。在opscenterd.conf中配置。 |
636 |
SSL LDAP和AD默認端口號。在opscenterd.conf中配置。 |
文件路徑與tarball安裝路徑相同。
安裝文件列表以下:
Directory |
Location |
/agent |
Agent安裝文件 |
/bin |
啓動和配置二進制命令 |
/content |
Web應用文件 |
/conf |
配置文件 |
/doc |
License文件 |
/lib and /src |
Library文件 |
/log |
OpsCenter日誌文件 |
/ssl |
agent交互的SSL文件 |
非服務tarball步驟:
一、啓動opscenterd:
$ install_location/bin/opscenter ##使用-f可前臺啓動
二、中止和重啓opscenterd:
找出opscenterd進程ID(pid),kill掉進程
$ ps -ef | grep opscenter
$ sudo kill pid
啓動opscenterd:
$ install_location/bin/opscenter ##使用-f可前臺啓動
非服務tarball安裝方式步驟:
一、啓動agent:
$ install_location/bin/datastax-agent##使用-f可前臺啓動
二、中止和重啓agent:
l 找出agent進程ID(pid),kill掉進程
$ ps -ef | grep datastax-agent
$ sudo kill pid
啓動opscenterd:
$ install_location/bin/ datastax-agent ##使用-f可前臺啓動
在Activities展現了OpsCenterEvent日誌頁面,包含事件和告警列表。下面的列表展現了事件日誌級別:
DEBUG (0)
INFO (1)
WARN (2)
ERROR (3)
CRITICAL (4)
ALERT (5)
告警:
可選的,你能夠配置OpsCenter發送告警信息對於選中的日誌級別。這些告警能夠經過郵箱、HTTP提供。默認告警不可用。
告警能夠經過OpsCenter API或UI事件促發。好比,nodetool經過命令行執行move操做將不會促發告警,可是經過OpsCenter Nodes > List View > Other Actions > Move將會促發告警
告警包含的信息:
Field |
Description |
Example |
api_source_ip |
發送請求的原IP地址 |
67.169.50.240 |
target_node |
STREAMING操做的目的地址 |
10.1.1.11 |
event_source |
事件產生的組件 |
OpsCenter (i.e., restart, start) |
user |
事件產生的OpsCenter user |
opscenter_user |
time |
事件時間 |
1311025650414527 |
action |
事件類型 |
20 |
subject |
郵件告警主題 |
[WARN] OpsCenter Event - Node reported as being down: 127.0.0.1 |
message |
事件描述 |
Garbage Collecting node 10.1.1.13 |
level |
日誌級別的數值 |
1 |
source_node |
事件發生的原節點 |
10.1.1.13 |
level_str |
事件日誌級別 |
INFO |
爲了啓動郵箱告警,須要編輯<config_location>/event-plugins/email.conf文件並提供可用的SMTPserver host和port信息。
確保你擁有可用的SMTP賬號能夠收發告警。
在OpsCenter主機上打開email.conf文件
設置enabled爲1
提供有效的SMTP的主機、端口號、用戶名和密碼
提供有效的郵箱地址,to_addr和from_addr。to_addr值爲接受告警賬號
可選的:設置發送告警級別。默認爲監聽全部基本
可選的:自定義發送主題
保存<config_location>/event-plugins/email.conf。重啓OpsCenter。
爲了發送告警給多個郵箱地址,建立不一樣的郵箱配置文件,好比email1.conf,email2.conf
[email] # set to 1 to enable email enabled=1 # levels can be comma delimited list of any of the following: # DEBUG,INFO,WARN,ERROR,CRITICAL,ALERT # If left empty, will listen for all levels levels=WARN smtp_host=smtp.gmail.com smtp_port=465 smtp_user=mercury@gmail.com smtp_pass=********* smtp_use_ssl=1 smtp_use_tls=0 smtp_retries=1 smtp_timeout=5 to_addr=cassandra_admin@acme.com from_addr=mercury@gmail.com # Customizable subject for email. The key specified in {}'s must map to the items provided in json map at the end of # the emails. For example, some available keys are: # node, cluster, datetime, level_str, message, target_node, event_source, success, api_source_ip, user, source_node # more advanced formatting options explained here: https://docs.python.org/2/library/string.html#formatspec subject=[{level_str}] OpsCenter Event on {cluster} - {message}
配置能力,能夠修改opscenterd.conf,cluster_name.conf和address.yaml配置文件。
注意:OpsCenterconsole是最方便修改配置文件的方式。
opscenterd.conf:配置OpsCenter daemon屬性,路徑install_location/conf/opscenterd.conf
cluster_name.conf:配置OpsCenter集羣監控屬性,路徑install_location/conf/clusters/cluster_name.conf
address.yaml:配置DataStaxagent屬性,路徑install_location/conf/address.yaml。
大部分的屬性也能夠在cluster_name.conf文件中的[agent_config]部分配置。
配置文件優先級:
Opscenter5.2以前版本cluster_name.conf配置優先於address.yaml。Opscenter5.2和以後版本,addresss.yaml優先於cluster_name.conf
注意修改文件屬性後,須要重啓Opscenter才能生效。
[webserver] port
OpsCenter webserver的HTTP鏈接端口。默認8888。
[webserver] interface
web server監聽clientconnections的interface
[webserver] log_path
HTTP交互的日誌路徑,默認install_location/log/http.log
[logging] level
Opscenter日誌級別,可用級別爲:TRACE, DEBUG, INFO, WARN, ERROR。默認INFO
[logging] log_path
OpsCenter日誌路徑,默認install_location/log/opscenterd.log。
從主菜單訪問OpsCenter如下功能:
New Cluster – 建立一個新的cluster或添加已經存在的cluster。
Alerts – 配置告警閥值。只有DataStax Enterprise可用
Settings – 訪問編輯ClusterConnections和User Roles:
Cluster Connections – 修改集羣設置或移除集羣
Users & Roles – 管理用戶基於角色認證
Help – OpsCenter資源信息
Overview – 提供OpsCenter實例的集羣概覽。
Dashboard –查看OpsCenter集羣信息,監控Cassandra集羣性能指標。
Nodes – 從不一樣的角度查看集羣(Ring or List View),執行集羣節點的維護操做
Activities – 展現集羣運行的任務,查看OpsCenter日誌事件,好比在Eventlog中的OpsCenter啓動中止。查看Spark jobs狀態。查看那Hadoop Jobs狀態。
Data – 管理keyspaces和tables
Services - DataStax Enterprise管理服務
Ring View展現了集羣節點做爲ring的節點,能夠今後診斷節點健康,數據分佈等。點擊cluster > Nodes> Ring,訪問Ring View
Ring view解釋:
健康概覽。監控圖標從左到右:Normal,Medium,High load,節點down
顏色表示節點健康狀態,由系統負載決定。0–0.999爲Normal (green),1–5 Medium (yellow),5+ High (red),down(gray)
節點詳情:
鼠標懸浮在節點上,將會展現節點詳情。詳情是實時更新的。
點擊節點,將會展現節點詳情的對話框,展現更多的信息。使用Actions菜單能夠在節點上運行多種操做。
List View是RingView另外一種展現。List View提供了當查看數據時,更快的訪問和更多的靈活性。全部數據都是實時更新的。
點擊cluster > Nodes > Listtab,訪問List View
查看節點詳情:
點擊節點,將會展現節點詳情的對話框,展現更多的信息。使用Actions菜單能夠在節點上運行多種操做。
從List View或Ring View點擊節點,從Actions菜單中選擇action
一、View Metrics
能夠選擇指標,生成監控圖形
二、Configure
能夠配置修改選中節點的cassandra.yaml文件
三、Start/Stop
啓動或中止Cassandra進程。
四、Restart
重啓Cassandra進程
五、Cleanup
移除節點的rows
六、Compact
執行壓縮操做,在大部分Cassandra集羣不建議操做。
七、Flush
將內存中的數據(memtables)flush到磁盤(SSTables)
八、Repair
修復副本數據的不一致性。
九、Perform GC
強制JVM執行GC操做
十、Drain
使當前寫操做存儲在memtables中的數據flush到SSTables,並使此節點變爲只讀。節點將再也不接受新的寫入操做。Drain通常用於升級節點。
步驟:
一、點擊左邊導航窗口中的Data。展現Keyspaces列表
二、選擇Keyspaces列表中的一個keyspace
三、在keyspace settings中,點擊Edit
四、點擊Delete Keyspace,刪除keyspace
步驟:
點擊左邊導航窗口中的Data。展現Keyspaces列表
選中tables列表中的table,將會展現table的CQL statement
三、其餘操做:
l Delete:從keyspace中刪除此表
l View Metrics:展現table的指標
l Truncate:刪除此表的全部數據
步驟:
從主菜單上,點擊Settings >Cluster Connections
二、點擊Delete Cluster
步驟:
點擊ClusterActions菜單中的Restart
二、設置每一個節點重啓後等待時間。默認60s
三、可選的:選擇是否執行Drain在中止以前。
四、點擊Restart Cluster
點擊Help >Report將產生集羣監控PDF報告
選擇Dashboard查看指標類型:
集羣性能指標
Task指標
Table指標
圖標能夠在一個單元中包含多個指標。好比,一個圖標能夠包含CPU和磁盤的利用率,讀寫請求和系統負載。
能夠展現告警,集羣健康和存儲容量。
步驟:
一、點擊Dashboard
二、點擊Add Graph
三、在Add Metric對話框,選擇指標
四、選擇監控的節點
五、可選的:點擊table,選擇特定的表
六、點擊Add Metric
七、點擊Save Graph展現指定的指標圖表
八、點擊圖標右上角的title,點擊Edit Graph能夠編輯圖表
九、點擊Add Widget能夠開啓和關閉Alerts, Cluster Health和Storage Capacity
步驟:
一、點擊Dashboard
二、點擊Clone能夠克隆指標圖表
三、點擊Make Default,設置爲默認
四、點擊Rename,能夠重命名
五、點擊Delete,能夠刪除
Dashboard導出導入爲JSON文件
編輯opscenterd.conf,重啓opscenterd
[labs]
enable_dashboard_preset_import_export = True
步驟:
一、點擊Dashboard,點擊Export
二、點擊Import鏈接
CassandraJVM memory usage
Cassandra 進程使用Java heapmemory的平均值
WriteRequests
在coordinator節點上每秒的寫請求數,相似與client寫請求
WriteRequest Latency
Client寫響應平均時長(以毫秒爲單位)。依賴於consistencylevel和replication factor,也包含了寫replicas的網絡延遲
Read Requests
在coordinator節點上每秒的讀請求數,相似與client讀請求
ReadRequest Latency
Client讀響應平均時長(以毫秒爲單位)。read latency受到硬盤,網絡和應用程序讀的方式等影響。好比,使用二級索引,讀請求數據大小,client須要的consistency level都將影響read latency。I/O的爭用也會增長read latency。當SSTables有不少碎片,compaction跟不上寫負載則讀也會變慢。
JVMCMS Collection Count
JVM每秒併發標記-清除(CMS)垃圾的數量。
JVMCMS Collection Time
CMS垃圾收集時間(ms/sec)
JVMParNew Collection Count
JVM每秒並行執行的新一代垃圾收集的數量
JVMParNew Collection Time
ParNew垃圾收集時間(ms/sec)
DataSize
Cassandra存儲數據的大小。建議不超過磁盤的70%,留一些空間維護compaction和repair操做。
Totalbytes compacted
SSTable每秒數據壓縮的字節數
Totalcompactions
每秒壓縮的數量
Pending tasks經常是由缺乏集羣資源引發,好比磁盤帶寬,網絡帶寬和內存。
FlushesPending
Flush進程flush memtables到SSTables。這個指標展現了flushmemtables隊列的數量。最優數量爲0(或較少數量)。值大於0表示有I/O競爭,下降了磁盤性能
Repl.(Replicate) on Write TasksPending (複製等待任務指標)
當插入或修改一行時,此行將會複製到其餘節點。調用的是ReplicateOnWriteStage。這個指標跟蹤了寫進程階段。在一個低或適中的寫負載時,你應該看到0 pending replicate在寫任務上(或比較低的數字)。持續的高值表示須要檢查下磁盤I/O或網絡鏈接問題
ReadRequests Pending
到達集羣等待處理的讀請求的數量。在一個低或適中的寫負載時,你應該看到0 pending read在寫任務上(或比較低的數字)。持續的高值表示須要檢查下磁盤I/O或網絡鏈接問題。Pending reads也可能表示應用設計沒有以有效的方式來訪問數據
ReadRepair Tasks Pending
讀修復操做隊列,等待系統資源的數量。最優數量爲0(或比較低的數字)。值大於0表示讀修復操做與其餘操做存在I/O競爭。對於表來講,下降此table參數read_repair_chance,你須要容忍必定程度的舊數據。
CompactionsPending
Compactions隊列的數量,等待系統資源。最優數量爲0(或比較低的數字)。值大於0表示讀操做與compaction操做競爭I/O鏈接,表示讀性能降低。這種狀況經常是因爲執行頻繁的small writes和持久的reads。若是一個節點或集羣展現了pending compactions,表示你可能須要增大I/O能力,經過添加節點到集羣。你也能夠減小I/O鏈接,經過減小插入/更新請求(好比批量寫入)。或則減小SSTables建立的數量,經過增大memtable大小,flush頻率。
Manualrepair tasks pending
Repair操做數量。Repair是一個資源敏感操做,須要執行:比較副本間的數據,發送改變的row到副原本保證數據的一致性,刪除過時的tombstones,重建索引和bloom filters。跟蹤這個指標的狀態能夠幫助你肯定repaire操做的過程。它經常不會出現很大的值。
Gossiptasks pending
Cassandra使用gossip協議來發現其餘節點的位置和狀態信息。每一個節點每秒發送一次gossip,與其餘節點交換狀態信息。Gossip tasks pending表示gossip messages等待發送或接受的數量。最優數量爲0(或比較低的數字)。值大於0表示網絡可能有問題。
Hintedhandoff pending
當一個節點offline,其餘節點在節點不可用期間將會保存rows更新的提示。當節點從新online,它對應的副本將會修復。hinted handoff pending指標表示等待發送給failed節點hints的數量。查看這個指標能夠肯定failed節點數據是否恢復。Hinted handoff是Cassandra可選的功能。Hints能夠配置保存週期(默認1小時)。
Miscellaneoustasks pending
系統修改schema後的等待任務數量。Schema修改須要傳播給全部的節點,因此這個指標可以表示schema 不一致的錯誤。
TBL:Local Writes
表的寫負載。指標包含全部的寫請求到此table,包含來自其餘節點的寫請求。
TBL:Local Write Latency
成功寫入表後的響應事件,單位毫秒。writelatency受到硬盤,網絡和寫入性質影響(好比consistency levels)
TBL:Write Latency (Stacked)
寫數據的響應事件,包含min,median, max, 90%和99%
TBL:Local Reads
讀負載
TBL:Local Read Latency
成功讀取數據後的響應事件
ReadLatency (Stacked)
讀數據的響應事件,包含min, median, max, 90%和99%
TBL:Live Disk Used
存活的SSTables使用的磁盤空間,不包含過期的SSTables
TBL:Total Disk Used
SSTables使用的磁盤空間,包含過期的SSTables
TBL:SSTable Count
SSTables當前數量
TBL:SSTables per Read (Stacked)
讀取多少SSTables:包含min,median, max, 90%和99%
TBL:Cell Count
表在分區中存在多少個cells:包含min,median, max, 90%和99%
TBL:Partition Size
表的分區大小:包含min, median,max, 90%和99%
TBL:Pending Reads/Writes
表的讀寫等待數量。
TBL:Bloom Filter Space Used
bloomfilter文件在磁盤的大小。
TBL:Bloom Filter False Positives
bloom filter誤報的數量,好比bloomfilter表示row存在,但實際上不存在的數量
TBL:Bloom Filter False Positive Ratio
bloomfilter誤報的百分比
TBL:Bloom Filter Off Heap
bloomfilters使用的heap memory
TBL:Index Summary Off Heap
索引使用的heapmemory
TBL:Compression Metadata Off Heap
compressionmetadata使用的heap memory
TBL:Memtable Off Heap
表當前的memtable使用的heapmemory
TBL:Total Memtable Size
全部的memtables使用內存的空間
TBL:Key Cache Requests
在row key cache讀請求的數量
TBL:Key Cache Hits
在row keycache讀請求命中的數量
TBL:Key Cache Hit Rate
在row keycache讀請求命中的比率
TBL:Row Cache Requests
在row key cache讀請求的數量,這個指標只是展現配置的row caching(row caching默認不可用)
TBL:Row Cache Hits
在row key cache讀請求命中的數量,這個指標只是展現配置的row caching(row caching默認不可用)
TBL:Row Cache Hit Rate
在row key cache讀請求命中的比率,這個指標只是展現配置的row caching(row caching默認不可用)
TBL:SSTable Size
表當前SSTables當前大小
OS:Memory
展現系統內存的使用:cached,buffered和free
OS:CPU
系統和用戶進程使用CPU的時間
OS:Load
系統work數量
OS:Disk usage (GB)
Cassandra使用磁盤空間
OS:Disk Usage (percentage)
Cassandra使用磁盤空間的百分比
OS:Disk Throughput
讀寫操做的百分比,經過測量每秒的MB
OS:Disk Rates
磁盤對於讀寫操做的平均速度
OS:Disk Latency
磁盤查找消耗的平均時間,單位毫秒
OS:Disk Request Size
請求的平均大小
OS:Disk Queue Size
請求隊列的平均數量,對於磁盤延遲問題
OS:Disk Utilization
磁盤I/O消耗CPU時間的百分比