zoukankan      html  css  js  c++  java
  • Installing StackTach

    1. 为StackTach创建database,默认使用MySql,也可以 在settings.py 文件中配置其他的.
      create stack db
      mysql -u root -p
      mysql> create database stacktach;
      mysql> grant all privileges on stacktach.* to 'root'@'localhost' indentified by '123';
      exit
    2. 安装django和 ./etc/pip-requires.txt
      由于pip-requires.txt中要求django >=1.5.1 < 1.6.0 ,否则在版本1.8.1出错:
      nuc:/opt/stack/stacktach$ python worker/start_workers.py
      Traceback (most recent call last):
        File "worker/start_workers.py", line 15, in <module>
          from django.db import close_connection
      ImportError: cannot import name close_connection
      所以在virtualenv中安装:
      stacktach$ virtualenv env1
      stacktach$ cd env1/
      stacktach$ source bin/activate
      $ pip install -r etc/pip-requires.txt
    3. Clone this repo
      git clone git://github/openstack/stacktach
    4. Copy and configure the config files in ./etc (see below for details)

      mv etc/sample_stacktach_config.sh etc/stacktach_config.json 
      mv etc/sample_stacktach_worker_config.json etc/stacktach_worker_config.json

      stack_config.json:
      export STACKTACH_DB_NAME="stacktach"
      export STACKTACH_DB_HOST="127.0.0.1"
      export STACKTACH_DB_USERNAME="root"
      export STACKTACH_DB_PASSWORD="123"
      export STACKTACH_DB_PORT="3306"
      export STACKTACH_INSTALL_DIR="./"
      export STACKTACH_DEPLOYMENTS_FILE="etc/stacktach_worker_config.json"
      export STACKTACH_VERIFIER_CONFIG="etc/stacktach_verifier_config.json"
      
      export DJANGO_SETTINGS_MODULE="settings"
      如果你的local OpenStack环境为:
    5. [[local|localrc]]
      
      SERVICE_HOST=localhost
      DATABASE_PASSWORD=123
      ADMIN_PASSWORD=123
      MYSQL_PASSWORD=123
      DATABASE_TYPE=mysql
      RABBIT_PASSWORD=guest
      SERVICE_PASSWORD=123
      SERVICE_TOKEN=ADMIN

       
      stacktach_worker_config.json可以配置为:

      {"deployments": [
          {
              "name": "east_coast.prod.global",
              "durable_queue": false,
              "rabbit_host": "127.0.0.1",
              "rabbit_port": 5672,
              "rabbit_userid": "guest",
              "rabbit_password": "guest",
              "rabbit_virtual_host": "/",
              "exit_on_exception": true,
              "queue_name": "stacktach",
              "topics": {
                  "nova": [
                      {
                          "queue": "notifications.info",
                          "routing_key": "notifications.info"
                      },
                      {
                          "queue": "notifications.error",
                          "routing_key": "notifications.error"
                      }
                  ],
                  "glance": [
                      {
                          "queue": "notifications.info",
                          "routing_key": "notifications.info"
                      },
                      {
                          "queue": "notifications.error",
                          "routing_key": "notifications.error"
                      }
                  ]
              }
          }
          ]
      }
    6. 创建db tables 
      python manage.py syncdb
      You have installed Django's auth system, and don't have any superusers defined.
      Would you like to create one now? (yes/no): yes
      Username (leave blank to use 'yuntong'): 
      Email address: ***@gmail.com
      Password: 123
      Password (again): 123
      Superuser created successfully.
    7. Configure OpenStack to publish Notifications back into RabbitMQ (see below)
    8. Restart the OpenStack services.
    9. Run the Worker to start consuming messages. (see below)
      先fix一个bug:
      diff --git a/settings.py b/settings.py
      index b6d27e5..dba5f2d 100644
      --- a/settings.py
      +++ b/settings.py
      @@ -127,8 +127,9 @@ TEMPLATE_DIRS = (
           # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
           # Always use forward slashes, even on Windows.
           # Don't forget to use absolute paths, not relative paths.
      -    install_dir + "templates"
      +    install_dir + "templates",

      运行start_workers:

    10. source etc/stacktach_config.sh
      $ python worker/start_workers.py
      Starting worker for 'east_coast.prod.global glance'
      Starting worker for 'east_coast.prod.global nova'

       打开rabbitmq的管理界面localhost:15672

    11. Run the web server (python manage.py runserver --insecure)
      python manage.py runserver --insecure
    12. Point your browser to http://127.0.0.1:8000 (the default server location)
      StackTach v2
      
      Fork me on GitHub
      Choose the Deployment to monitor
      
          All
          east_coast.prod.global

      或者访问API:
      
      curl -H "Content-Type: application/json" http://localhost:8000/stacky/deployments/ #The list of all available deployments
      [["#", "Name"], [1, "east_coast.prod.global"]]
      curl -H "Content-Type: application/json" http://localhost:8000/stacky/events/ #The distinct list of all event names
      [["Event Name"],
      ["compute.instance.create.end"], ["compute.instance.create.start"], ["compute.instance.exists"], ["compute.instance.update"],
      ["port.create.end"], ["port.create.start"], ["port.update.end"], ["port.update.start"], ["scheduler.select_destinations.end"], ["scheduler.select_destinations.start"],
      ["image.update"], ["scheduler.select_destinations.start"]]
      $ curl -H "Content-Type: application/json" http://localhost:8000/stacky/5b329e1f-c7d1-4fbe-bf15-80fcfbb22024/ #Retrieve all notifications for instances with a given UUID.
    13. Click on stuff, see what happens. You can’t hurt anything, it’s all read-only.

    参考:

    http://stacktach.com/api.html

    http://stacktach.com/install.html

    http://stacktach.readthedocs.io/en/latest/setup.html

  • 相关阅读:
    云原生体系下 Serverless 弹性探索与实践
    PaddlePaddle:在 Serverless 架构上十几行代码实现 OCR 能力
    manjaro kde系统格式化U盘
    从B站看到的资源网站(确实是很不错,推荐!)
    ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysql 或 manjaro 安装 mariadb
    manjaro kde 我安装后使用到的命令
    思考了许久,博客在未来将会进行的改变(2021-10-03)
    linux 下配置 python源
    ModuleNotFoundError: No module named 'distutils.util'
    mysqlclient 安装失败
  • 原文地址:https://www.cnblogs.com/allcloud/p/5458845.html
Copyright © 2011-2022 走看看