您好,登錄后才能下訂單哦!
小編給大家分享一下OpenStack高性能監(jiān)控工具Monasca怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
介紹
Monasca 是一個多租戶監(jiān)控即服務工具,可以幫助IT團隊分析日志數(shù)據(jù)并設置告警和通知。
OpenStack環(huán)境中的監(jiān)控需求是巨大,多樣且高度復雜的。Monasca的項目任務是提供一種多租戶,高度可擴展,高性能和容錯的監(jiān)控即服務解決方案。
Monasca為高級監(jiān)控提供了可擴展的平臺,運營商和租戶均可使用該平臺來獲取有關(guān)其基礎架構(gòu)和應用的運行狀態(tài)。
Monasca使用REST API進行高速的日志處理和查詢。它集成了流告警引擎,通知引擎和聚合引擎。
您可以使用Monasca實現(xiàn)的用例非常多樣。Monasca遵循微服務架構(gòu),其中幾個服務分布在多個存儲庫中。每個模塊旨在為整個監(jiān)控解決方案提供離散服務,并且可以根據(jù)運營商/客戶的需求進行部署。
使用Rest API接口來存儲、查詢性能和歷史數(shù)據(jù),不同于其他監(jiān)控工具使用特殊的協(xié)議和傳輸方法,如nagios的NSCA,Monasca只利用了http
多租戶認證,指標的提交和認證使用Keystone組件。存儲關(guān)聯(lián)租戶ID
指標使用(key,value)的鍵值來定義,稱作量度(dimensions)
對系統(tǒng)指標進行實時閾值和告警
復合告警設置使用簡單的語法,由子告警表達式和邏輯操作器組成
監(jiān)控代理支持內(nèi)置的系統(tǒng)和服務的檢查結(jié)果,同時也只nagios的checks和statsd
根據(jù)開源技術(shù)搭建的開源監(jiān)控方案
架構(gòu)
下圖概述了Monasca的指標管道以及所涉及組件的交互。
核心組件
monasca-agent:監(jiān)控代理,python編寫,包含了多個子組件,支持各種cpu使用率、可用內(nèi)存、nagios插件、statsd、以及許多服務如mysql、rabbitMQ等監(jiān)控
monasca-api::一個用于監(jiān)控的RESTful API接口,針對在以下概念和區(qū)域:
指標:對于實時的大量指標的存儲和查詢
統(tǒng)計:查詢指標的統(tǒng)計數(shù)據(jù)
告警定義:告警定義的增刪查改
告警:查詢和刪除告警歷史
通知方式:創(chuàng)建和刪除通知方式,當告警狀態(tài)改變時可以直接郵件通知用戶—monasca API可以通過python或JAVA來實現(xiàn)
manasca-persister:消息隊列傳送指標或告警的消費者(RPC傳輸中的概念consumer),并將指標和告警存入對應的數(shù)據(jù)庫
monasca-transform:一個轉(zhuǎn)換聚合引擎,轉(zhuǎn)換指標的名字和值,生成新的指標傳遞給消息隊列
Anomaly and Prediction Engine:目前還是原型階段
monasca-thresh:對指標進行計算,當超過閾值是發(fā)布告警給消息隊列,基于Apache storm項目(開源實時分布式計算系統(tǒng))
monasca-notification:接受從消息隊列傳來的告警,并發(fā)送通知,如發(fā)送告警郵件,Notification Engine基于Python
monasca-analytics:分析引擎,接受從消息隊列傳來的告警,進行異常檢測和告警關(guān)聯(lián)
消息隊列:以前是支持RabbitMQ的,由于性能、規(guī)模、持續(xù)性和高可用的限制,轉(zhuǎn)向了Kafka
Metrics and Alarms Database:支持Vertica和infuxDB,對Cassandra的支持正在進行中
Config Database:配置信息數(shù)據(jù)庫,目前使用Mysql,對PostgreSQL的支持正在進程中
python-monascaclient:python實現(xiàn)的命令行客戶端,對monasca API進行操控
Monitoring UI:Horizon dashboard的可視化
Ceilometer publisher:提供給Ceilometer的multi-publisher插件
除了直接向API發(fā)送請求之外,還可以使用以下工具與Monasca進行交互:
Monasca client:CLI和Python客戶端
Horizon plugin:該插件將監(jiān)控面板添加到Horizon
Grafana app:Grafana插件可查看和配置告警定義,告警和通知
Libraries:
monasca-common:Monasca組件中使用的通用代碼
monasca-statsd:StatsD兼容的庫,用于從已檢測的應用程序發(fā)送指標
Grafana集成:
monasca-grafana-datasource:用于Grafana的多租戶Monasca數(shù)據(jù)源
grafana:Grafana 4.1.2的分支版本,添加了Keystone身份驗證
第三方技術(shù)與工具
Monasca使用多種第三方技術(shù):
內(nèi)部處理和中間件
Apache Kafka(http://kafka.apache.org):是一個分布式、分區(qū)的、多副本的、多訂閱者,基于zookeeper協(xié)調(diào)的分布式日志系統(tǒng)(也可以當做MQ系統(tǒng)),常見可以用于web/nginx日志、訪問日志,消息服務等等
Apache Storm(http://storm.incubator.apache.org/):Apache Storm是一個免費的開源分布式實時計算系統(tǒng)。通過Storm,可以輕松可靠地處理無限數(shù)據(jù)流,從而可以進行實時處理,而Hadoop可以進行批處理
ZooKeeper(http://zookeeper.apache.org/):由Kafka和Storm使用
Apache Spark:由Monasca Transform用作聚合引擎
配置數(shù)據(jù)庫:
MySQL:支持將MySQL作為配置數(shù)據(jù)庫
PostgreSQL:通過Hibernate和SQLAlchemy支持Config數(shù)據(jù)庫的POSTgres
Vagrant(http://www.vagrantup.com/):Vagrant提供了易于配置,可重復的便攜式工作環(huán)境,該環(huán)境建立在行業(yè)標準技術(shù)之上,并由一個一致的工作流程控制,可幫助您最大程度地提高生產(chǎn)力和靈活性
Dropwizard(https://dropwizard.github.io/dropwizard/):Dropwizard將Java生態(tài)系統(tǒng)中穩(wěn)定,成熟的庫匯集到一個簡單,輕巧的程序包中,使您可以專注于完成自身的工作任務中。Dropwizard對復雜的配置,應用程序指標,日志記錄,操作工具等提供了開箱即用的支持,使您和您的團隊可以在最短的時間內(nèi)發(fā)布高質(zhì)量的Web服務
時間序列數(shù)據(jù)庫:
InfluxDB(http://influxdb.com/):一個沒有外部依賴性的開源分布式時間序列數(shù)據(jù)庫。Metrics數(shù)據(jù)庫支持InfluxDB
Vertica(http://www.vertica.com):具有高度可擴展性的商業(yè)企業(yè)級SQL分析數(shù)據(jù)庫。它提供了內(nèi)置的自動高可用性功能,并且擅長數(shù)據(jù)庫內(nèi)分析以及壓縮和存儲大量數(shù)據(jù)。提供了Vertica的免費社區(qū)版本,該版本可以存儲最大1 TB的數(shù)據(jù),沒有時間限制,網(wǎng)址為https://my.vertica.com/community/。雖然不再經(jīng)常用Vertrica,但Metrics數(shù)據(jù)庫支持它
Cassandra(https://cassandra.apache.org):Mestrics數(shù)據(jù)庫支持Cassandra
安裝
手工安裝
monasca的所有組件都可以安裝在一個節(jié)點上,例如openstack控制器節(jié)點上,也可以將其部署在多節(jié)點上。本文中,將在我的openstack集群中創(chuàng)建的新VM中安裝monasca-api,該VM具有關(guān)聯(lián)的浮動ip。Monasca-agent已安裝在控制器節(jié)點上。代理節(jié)點通過浮動ip將指標發(fā)布到api節(jié)點。它們在同一子網(wǎng)中。
安裝我們需要的軟件包和工具
apt-get install -y git apt-get install openjdk-7-jre-headless python-pip python-dev
安裝mysql數(shù)據(jù)庫如果您在openstack控制器節(jié)點中安裝了monasca-api,則可以跳過安裝,將已安裝的msyql用于openstack服務。
apt-get install -y mysql-server
創(chuàng)建monasca數(shù)據(jù)庫架構(gòu),在此處下載mon.sql( https://raw.githubusercontent.com/stackforge/cookbook-monasca-schema/master/files/default/mysql/mon.sql)
mysql -uroot -ppassword < mon_mysql.sql
安裝Zookeeper安裝Zookeeper并重新啟動它。我使用本地主機接口,并且只有一個Zookeeper,因此默認配置文件不需要配置。
apt-get install -y zookeeper zookeeperd zookeeper-bin service zookeeper restart
安裝和配置kafka
wget http://apache.mirrors.tds.net/kafka/0.8.1.1/kafka_2.9.2-0.8.1.1.tgz mv kafka_2.9.2-0.8.1.1.tgz /opt cd /opt tar zxf kafka_2.9.2-0.8.1.1.tgz ln -s /opt/kafka_2.9.2-0.8.1.1/ /opt/kafka ln -s /opt/kafka/config /etc/kafka
創(chuàng)建kafka系統(tǒng)用戶,kafka服務將以該用戶身份啟動。
useradd kafka -U -r
在/etc/init/kafka.conf中創(chuàng)建kafka啟動腳本,將以下內(nèi)容復制 到/etc/init/kafka.conf中并保存。
description "Kafka" start on runlevel [2345] stop on runlevel [!2345] respawn limit nofile 32768 32768 # If zookeeper is running on this box also give it time to start up properly pre-start script if [ -e /etc/init.d/zookeeper ]; then /etc/init.d/zookeeper restart fi end script # Rather than using setuid/setgid sudo is used because the pre-start task must run as root exec sudo -Hu kafka -g kafka KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" JMX_PORT=9997 /opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties
配置kafka,vim /etc/kafka/server.properties,確保配置了以下內(nèi)容:
host.name=localhost advertised.host.name=localhost log.dirs=/var/kafka
創(chuàng)建 kafka log目錄
mkdir /var/kafka mkdir /var/log/kafka chown -R kafka. /var/kafka/ chown -R kafka. /var/log/kafka/
啟動kafka服務
service kafka start
下一步就是創(chuàng)建 kafka topics
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 64 --topic metrics /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic events /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic raw-events /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic transformed-events /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic stream-definitions /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic transform-definitions /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic alarm-state-transitions /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic alarm-notifications /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 12 --topic stream-notifications /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic retry-notifications
安裝和配置 influxdb
curl -sL https://repos.influxdata.com/influxdb.key | apt-key add - echo "deb https://repos.influxdata.com/ubuntu trusty stable" > /etc/apt/sources.list.d/influxdb.list apt-get update apt-get install -y apt-transport-https apt-get install -y influxdb service influxdb start
創(chuàng)建 influxdb database, user, password, retention policy, 同時修改密碼。
influx CREATE DATABASE mon CREATE USER monasca WITH PASSWORD 'tyun' CREATE RETENTION POLICY persister_all ON mon DURATION 90d REPLICATION 1 DEFAULT exit
安裝與配置 storm
wget http://apache.mirrors.tds.net/storm/apache-storm-0.9.6/apache-storm-0.9.6.tar.gz mkdir /opt/storm cp apache-storm-0.9.6.tar.gz /opt/storm/ cd /opt/storm/ tar xzf apache-storm-0.9.6.tar.gz ln -s /opt/storm/apache-storm-0.9.6 /opt/storm/current useradd storm -U -r mkdir /var/storm mkdir /var/log/storm chown -R storm. /var/storm/ chown -R storm. /var/log/storm/
修改storm.yaml, vim current/storm/conf/storm.yaml
### base java.library.path: "/usr/local/lib:/opt/local/lib:/usr/lib" storm.local.dir: "/var/storm" ### zookeeper.* storm.zookeeper.servers: - "localhost" storm.zookeeper.port: 2181 storm.zookeeper.retry.interval: 5000 storm.zookeeper.retry.times: 29 storm.zookeeper.root: "/storm" storm.zookeeper.session.timeout: 30000 ### supervisor.* configs are for node supervisors supervisor.slots.ports: - 6701 - 6702 - 6703 - 6704 supervisor.childopts: "-Xmx1024m" ### worker.* configs are for task workers worker.childopts: "-Xmx1280m -XX:+UseConcMarkSweepGC -Dcom.sun.management.jmxremote" ### nimbus.* configs are for the masteri nimbus.host: "localhost" nimbus.thrift.port: 6627 mbus.childopts: "-Xmx1024m" ### ui.* configs are for the master ui.host: 127.0.0.1 ui.port: 8078 ui.childopts: "-Xmx768m" ### drpc.* configs ### transactional.* configs transactional.zookeeper.servers: - "localhost" transactional.zookeeper.port: 2181 transactional.zookeeper.root: "/storm-transactional" ### topology.* configs are for specific executing storms topology.acker.executors: 1 topology.debug: false logviewer.port: 8077 logviewer.childopts: "-Xmx128m"
創(chuàng)建storm supervisor 啟動腳本,vim /etc/init/storm-supervisor.conf
# Startup script for Storm Supervisor description "Storm Supervisor daemon" start on runlevel [2345] console log respawn kill timeout 240 respawn limit 25 5 setgid storm setuid storm chdir /opt/storm/current exec /opt/storm/current/bin/storm supervisor
創(chuàng)建Storm nimbus 啟動腳本。vim /etc/init/storm-nimbus.conf
# Startup script for Storm Nimbus description "Storm Nimbus daemon" start on runlevel [2345] console log respawn kill timeout 240 respawn limit 25 5 setgid storm setuid storm chdir /opt/storm/current exec /opt/storm/current/bin/storm nimbus
啟動supervisor 與 nimbus
service storm-supervisor start service storm-nimbus start
安裝monasca api python軟件包
一些monasca組件同時提供python和java代碼,主要是我選擇python代碼進行部署。
pip install monasca-common pip install gunicorn pip install greenlet # Required for both pip install eventlet # For eventlet workers pip install gevent # For gevent workers pip install monasca-api pip install influxdb
vim /etc/monasca/api-config.ini,將主機修改為您的IP地址
[DEFAULT] name = monasca_api [pipeline:main] # Add validator in the pipeline so the metrics messages can be validated. pipeline = auth keystonecontext api [app:api] paste.app_factory = monasca_api.api.server:launch [filter:auth] paste.filter_factory = keystonemiddleware.auth_token:filter_factory [filter:keystonecontext] paste.filter_factory = monasca_api.middleware.keystone_context_filter:filter_factory [server:main] use = egg:gunicorn#main host = 192.168.2.23 port = 8082 workers = 1 proc_name = monasca_api
vim /etc/monasca/api-config.conf,修改以下內(nèi)容
[DEFAULT] # logging, make sure that the user under whom the server runs has permission # to write to the directory. log_file = monasca-api.log log_dir = /var/log/monasca/api/ debug=False region = RegionOne [security] # The roles that are allowed full access to the API. default_authorized_roles = admin, user, domainuser, domainadmin, monasca-user # The roles that are allowed to only POST metrics to the API. This role would be used by the Monasca Agent. agent_authorized_roles = admin # The roles that are allowed to only GET metrics from the API. read_only_authorized_roles = admin # The roles that are allowed to access the API on behalf of another tenant. # For example, a service can POST metrics to another tenant if they are a member of the "delegate" role. delegate_authorized_roles = admin [kafka] # The endpoint to the kafka server uri = localhost:9092 [influxdb] # Only needed if Influxdb database is used for backend. # The IP address of the InfluxDB service. ip_address = localhost # The port number that the InfluxDB service is listening on. port = 8086 # The username to authenticate with. user = monasca # The password to authenticate with. password = tyun # The name of the InfluxDB database to use. database_name = mon [database] url = "mysql+pymysql://monasca:tyun@127.0.0.1/mon" [keystone_authtoken] identity_uri = http://192.168.1.11:35357 auth_uri = http://192.168.1.11:5000 admin_password = tyun admin_user = monasca admin_tenant_name = service cafile = certfile = keyfile = insecure = false
注釋掉[mysql]部分,其他部分保持默認。
創(chuàng)建monasca系統(tǒng)用戶并進入目錄
useradd monasca -U -r mkdir /var/log/monasca mkdir /var/log/monasca/api chown -R monasca. /var/log/monasca/
在openstack控制器節(jié)點上,創(chuàng)建monasca用戶密碼,為租戶服務中的用戶monasca分配管理員角色。
openstack user create --domain default --password tyun monasca openstack role add --project service --user monasca admin openstack service create --name monasca --description "Monasca monitoring service" monitoring create endpoint openstack endpoint create --region RegionOne monasca public http://192.168.1.143:8082/v2.0 openstack endpoint create --region RegionOne monasca internal http://192.168.1.143:8082/v2.0 openstack endpoint create --region RegionOne monasca admin http://192.168.1.143:8082/v2.0
192.168.1.143是我的api虛擬機地址的浮動IP,請將其更改為您的IP。
創(chuàng)建monasca api啟動腳本,vim /etc/init/monasca-api.conf
# Startup script for the Monasca API description "Monasca API Python app" start on runlevel [2345] console log respawn setgid monasca setuid monasca exec /usr/local/bin/gunicorn -n monasca-api -k eventlet --worker-connections=2000 --backlog=1000 --paste /etc/monasca/api-config.ini
安裝monasca-persister
創(chuàng)建monasca-persister啟動腳本
vim /etc/init/monasca-persister.conf
# Startup script for the Monasca Persister description "Monasca Persister Python app" start on runlevel [2345] console log respawn setgid monasca setuid monasca exec /usr/bin/java -Dfile.encoding=UTF-8 -cp /opt/monasca/monasca-persister.jar monasca.persister.PersisterApplication server /etc/monasca/persister-config.yml
啟動monasca-persister
service monasca-persister start
安裝monasca-notificatoin
pip install --upgrade monasca-notification apt-get install sendmail
將notification.yaml復制到/etc/monasca/創(chuàng)建啟動腳本,vim /etc/init/monasca-notification.conf
# Startup script for the monasca_notification description "Monasca Notification daemon" start on runlevel [2345] console log respawn setgid monasca setuid monasca exec /usr/bin/python /usr/local/bin/monasca-notification
啟動通知服務
service monasca-notification start
安裝monasca-thresh復制monasca-thresh到/etc/init.d/復制monasca-thresh.jar到/opt/monasca-thresh/復制thresh-config.yml到/etc/monasca /并修改主機以及數(shù)據(jù)庫信息啟動monasca-thresh
service monasca-thresh start
安裝monasca-agent
在openstack控制器節(jié)點上安裝monasca-agent,以便它可以監(jiān)控openstack服務進程。
sudo pip install --upgrade monasca-agent
設置monasca-agent,將用戶域ID和項目域ID更改為默認值。
monasca-setup -u monasca -p tyun --user_domain_id e25e0413a70c41449d2ccc2578deb1e4 --project_domain_id e25e0413a70c41449d2ccc2578deb1e4 --user monasca \ --project_name service -s monitoring --keystone_url http://192.168.1.11:35357/v3 --monasca_url http://192.168.1.143:8082/v2.0 --config_dir /etc/monasca/agent --log_dir /var/log/monasca/agent --overwrite
加載認證腳本admin-rc.sh,然后運行monasca metric-list。
DevStack安裝
運行Monasca DevStack至少需要一臺具有10GB RAM的主機。
可在此處找到安裝和運行Devstack的說明:
https://docs.openstack.org/devstack/latest/
要在DevStack中運行Monasca,請執(zhí)行以下三個步驟。
克隆DevStack代碼庫。
git clone https://git.openstack.org/openstack-dev/devstack
將以下內(nèi)容添加到devstack目錄根目錄中的DevStack local.conf文件中。如果local.conf不存在,則可能需要創(chuàng)建它。
# BEGIN DEVSTACK LOCAL.CONF CONTENTS [[local|localrc]] DATABASE_PASSWORD=secretdatabase RABBIT_PASSWORD=secretrabbit ADMIN_PASSWORD=secretadmin SERVICE_PASSWORD=secretservice SERVICE_TOKEN=111222333444 LOGFILE=$DEST/logs/stack.sh.log LOGDIR=$DEST/logs LOG_COLOR=False # The following two variables allow switching between Java and Python for the implementations # of the Monasca API and the Monasca Persister. If these variables are not set, then the # default is to install the Python implementations of both the Monasca API and the Monasca Persister. # Uncomment one of the following two lines to choose Java or Python for the Monasca API. MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-java} # MONASCA_API_IMPLEMENTATION_LANG=${MONASCA_API_IMPLEMENTATION_LANG:-python} # Uncomment of the following two lines to choose Java or Python for the Monasca Pesister. MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-java} # MONASCA_PERSISTER_IMPLEMENTATION_LANG=${MONASCA_PERSISTER_IMPLEMENTATION_LANG:-python} # Uncomment one of the following two lines to choose either InfluxDB or Vertica. # default "influxdb" is selected as metric DB MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-influxdb} # MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica} # This line will enable all of Monasca. enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api # END DEVSTACK LOCAL.CONF CONTENTS
從devstack目錄的根目錄運行“ ./stack.sh”。
如果要使用最少的OpenStack組件運行Monasca,可以將以下兩行添加到local.conf文件中。
disable_all_services enable_service rabbit mysql key
如果您還希望安裝Tempest測試,請?zhí)砑?tempest
enable_service rabbit mysql key tempest
要啟用Horizon和Monasca UI,請?zhí)砑?horizon
enable_service rabbit mysql key horizon tempest
使用Vagrant
Vagrant可用于使用Vagrantfile部署運行有Devstack和Monasca的VM。安裝Vagrant后,只需在../monasca-api/devstack目錄中運行vagrant up命令。
要在devstack安裝中使用本地代碼庫,請將更改提交到本地存儲庫的master分支,然后在配置文件中修改與要使用的本地存儲庫相對應的變量file://my/local/repo/location。要使用monasca-api repo的本地實例,請將更改enable_plugin monasca-api https://git.openstack.org/openstack/monasca-api為enable_plugin monasca-api file://my/repo/is/here。這兩個設置僅在重建devstack VM時生效。
1.使用Vagrant將Vertica啟用為Metrics DB
Monasca支持同時使用InfluxDB和Vertica來存儲指標和告警狀態(tài)歷史記錄。默認情況下,在DevStack環(huán)境中啟用InfluxDB。
Vertica是Hewlett Packard Enterprise的商業(yè)數(shù)據(jù)庫。可以下載免費的Community Edition(CE)安裝程序,要啟用Vertica,請執(zhí)行以下操作:
注冊并下載Vertica Debian安裝程序https://my.vertica.com/download/vertica/community-edition/,并將其放在您的主目錄中。不幸的是,DevStack安裝程序沒有可以自動使用的URL,因此必須單獨下載該URL,并將其放置在安裝程序運行時可以找到它的位置。安裝程序假定此位置是您的主目錄。使用Vagrant時,您的主目錄通常將以“ /vagrant_home”掛載在VM內(nèi)。
修改local.conf中MONASCA_METRICS_DB變量,配置Vertica的支持,如下所示:
MONASCA_METRICS_DB=${MONASCA_METRICS_DB:-vertica}
2.使用PostgreSQL或MySQL
Monasca支持使用PostgreSQL和MySQL,因此該devstack插件也支持。啟用postgresql或mysql。
要使用MySQL設置環(huán)境,請使用:
enable_service mysql
另外,對于PostgreSQL,請使用:
enable_service postgresql
3.使用ORM支持
ORM支持可以通過MONASCA_DATABASE_USE_ORM變量來控制。但是,如果啟用了PostgreSQL(也稱為數(shù)據(jù)庫后端),則將強制提供ORM支持
enable_service postgresql
4.加強Apache鏡像
如果由于某種原因APACHE_MIRROR而無法使用,則可以通過以下方式強制執(zhí)行:
APACHE_MIRROR=http://www-us.apache.org/dist/
5.使用WSGI
Monasca-api可以使用uwsgi和gunicorn與Apache一起部署。默認情況下,monasca-api在uwsgi下運行。如果您想使用Gunicorn,請確保其中devstack/local.conf包含:
MONASCA_API_USE_MOD_WSGI=False
使用
Monasca Dashboard
安裝完成Monasca Dashboard Plugin后,可以通過web控制臺進行查看以及管理相應的監(jiān)控與告警。
在操作控制臺的“Monitoring”欄,單擊“Launch Monitoring Dashboard“,這將打開在管理節(jié)點上運行的專用OpenStack Horizon門戶。
在該面板中,您可以:
單擊OpenStack服務名稱,以查看服務告警。
單擊服務器名稱以查看相關(guān)設備的告警。
監(jiān)控信息存儲在兩個數(shù)據(jù)庫中(Vertica/influxdb與mysql)。備份監(jiān)控數(shù)據(jù)時,將同時備份兩個數(shù)據(jù)庫??吹?/p>
監(jiān)控指標在Vertica中存儲7天。
配置設置存儲在MySQL中。
如果監(jiān)控節(jié)點上的服務在高負載(例如15個控制網(wǎng)絡和200個計算節(jié)點)下停止,則消息隊列將在大約6個小時內(nèi)開始清除。
查看監(jiān)控信息
在操作控制臺中,通過從主菜單中選擇Monitoring Dashboard來打開監(jiān)控UI 。
單擊Launch Monitoring Dashboard。
將打開管理設備上OpenStack Horizon中的“Monitoring”儀表板。
使用您在首次安裝過程中為操作控制臺設置的用戶名和密碼登錄。
查看告警。您可以在屏幕上過濾結(jié)果。
點擊告警左側(cè)導航看到報警的所有服務和設備。
在每行右側(cè)的“操作”菜單上,可以單擊“Graph metrics”以查看告警明細,并且可以顯示告警的歷史記錄和告警定義。您還可以在該告警的圖形頂部看到指標名稱。
點擊OpenStack服務名稱以查看服務告警。
單擊服務器名稱以查看有關(guān)設備的告警。
單擊左側(cè)導航中的”Alarm Definitions “以查看和編輯已啟用的告警的類型。
注意:請勿更改或刪除任何默認告警定義。但是,您可以添加新的告警定義。
您可以更改告警的名稱,表達式和其他詳細信息。
如果收到過多或不足的告警,則可能需要提高或降低告警閾值。
有關(guān)編寫告警表達式的信息。
可選:單擊Dashboard。
OpenStack儀表板(Grafana)打開。從該儀表板中,您可以看到OpenStack服務的運行狀況以及每個節(jié)點的CPU和數(shù)據(jù)庫使用情況的圖形表示。
單擊圖形標題(例如,CPU),然后單擊“編輯”。
更改功能以查看圖中的其他類型的信息。
可選:單擊Monasca Health。
將打開“ Monasca服務儀表板”。在此儀表板上,您可以看到Monasca服務運行狀況的圖形表示。
以上是“OpenStack高性能監(jiān)控工具Monasca怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。