- monasca 개요
- 참조 URL
- monasca
- https://www.shaunos.com/643.html
- https://github.com/PaaS-TA/IaaS-Monitoring/blob/master/src/openstack-monitoring-portal/doc-api/설치가이드_Monasca_Server.md
- agent
- https://github.com/openstack/monasca-agent
- https://github.com/PaaS-TA/IaaS-Monitoring/blob/master/src/openstack-monitoring-portal/doc-api/설치가이드_Monasca_Client.md
- keystone
- https://docs.openstack.org/keystone/ocata/installing.html
- https://docs.openstack.org/keystone/ocata/configuration.html
- https://docs.openstack.org/keystone/ocata/apache-httpd.html
- https://docs.openstack.org/keystone/latest/install/keystone-install-rdo.html#configure-the-apache-http-server
- https://docs.openstack.org/mitaka/ko_KR/install-guide-rdo/keystone-install.html
- kafka
- zookeeper
- storm
- mariadb
- influxdb
- 사전 작업
- monasca 계정생성
- mariadb yum repo setting (db가 설치될 server에만 적용)
- vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
gpgcheck=1
- influxdb yum repo setting (db가 설치될 server에만 적용)
- vi /etc/yum.repo.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
enabled = 1
gpgcheck = 1
- iptable, firewalld 중지 (필요한 port만 열어주고 사용해도 무방함)
systemctl stop iptables
systemctl stop firewalld
systemctl disable iptables
systemctl disable firewalld
- openstack pike repo 등록 (keystone이 설치될 server에만 적용)
- pip install & upgrade
yum install -y epel-release
yum install -y python-pip
pip install --upgrade pip
pip install --upgrade setuptools
- selinux 해제
setenforce 0
- installation
- mairadb
# mariadb install
yum install -y MariaDB-server MariaDB-client
systemctl enable mysql
systemctl start mysql
# mysql 접근 계정 설정
mysql -uroot
grant all privileges on *.* to 'root'@'%' identified by 'root123';
grant all privileges on *.* to 'root'@'localhost' identified by 'root123’;
flush privileges;
- influxdb
yum install -y influxdb
systemctl enable influxdb.service
systemctl start influxdb.service
- kafka(최신 stable),zookeeper(최신 stable)
- 구성에 따라 맞춰서 설치함
- path
- $HOME/application/kafka
- $HOME/application/zookeeper
- storm
- 구성에 따라 맞춰서 설치함
- path
- $HOME/application/storm
- keystone
- keystone db 계정 생성
mysql -uroot
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone123';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone123';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'monasca-api' \
IDENTIFIED BY 'keystone123';
flush privileges;
- 관리 토큰을 생성하여 나온 값을 따로 저장해 놓음
openssl rand -hex 10
- package 설치
yum install -y openstack-keystone httpd mod_wsgi
- keystone.conf 수정
vi /etc/keystone/keystone.conf
[DEFAULT]
admin_token = fe06b146d34985fe8ce4 # token 값을 넣어줌
…
[database]
#database 정보 입력
connection = mysql+pymysql://keystone:keystone123@monasca-api/keystone
…
[token]
provider = fernet # Fernet 토큰 제공자 구성
- keystone database insert
/bin/sh -c "keystone-manage db_sync" keystone
- fernet key 초기화
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
- httpd.conf 수정
vi /etc/httpd/conf/httpd.conf
ServerName monasca-api # hostName으로 변경
- wsgi-keystone.conf 파일 생성
vi /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
- service 등록 및 기동
systemctl enable httpd.service
systemctl start httpd.service
- 환경 변수 export
# TOKEN에는 초기에 할당받은 token 값을 넣어줌
export OS_TOKEN=0e0bea7cd497322a1b8b
export OS_ADMIN_TOKEN=0e0bea7cd497322a1b8b
export OS_URL=http://monasca-api:35357/v3
export OS_IDENTITY_API_VERSION=3
- openstack 설정
- openstack client 설치
yum install -y python2-openstackclient.noarch
- openstack domain create
[root@monasca-api ~]# openstack domain create default
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | |
| enabled | True |
| id | 8a44c086f17349018206f2d4faea97e8 |
| name | default |
+-------------+----------------------------------+
- openstack project create
[root@monasca-api ~]# openstack project create --domain default --description "Admin Project" admin
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Admin Project |
| domain_id | 8a44c086f17349018206f2d4faea97e8 |
| enabled | True |
| id | df901de863de4ee08e0636a6b7a47c05 |
| is_domain | False |
| name | admin |
| parent_id | 8a44c086f17349018206f2d4faea97e8 |
+-------------+----------------------------------+
- openstack user create
[root@monasca-api ~]# openstack user create --domain default --password monasca123 monasca
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | 8a44c086f17349018206f2d4faea97e8 |
| enabled | True |
| id | 099bca29b4e9444e8bc5e0c9112043c2 |
| name | monasca |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
- openstack role create
[root@monasca-api ~]# openstack role create --domain default admin
+-----------+----------------------------------+
| Field | Value |
+-----------+----------------------------------+
| domain_id | 8a44c086f17349018206f2d4faea97e8 |
| id | a3bf25c1152d4a9bb24b9f5e1da9134f |
| name | admin |
+-----------+----------------------------------+
- openstack role add
openstack role add --project admin --user monasca admin
- openstack service create
[root@monasca-api ~]# openstack service create --name monasca --description "Monasca monitoring service" monitoring
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | Monasca monitoring service |
| enabled | True |
| id | 66ebde74b8cc4c3bb55416f91223893d |
| name | monasca |
| type | monitoring |
+-------------+----------------------------------+
- openstack endpoint create
[root@monasca-api ~]# openstack endpoint create --region RegionOne monasca public http://monasca-api:8082/v2.0
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 1568f70fe5c345ffa3b2cde0b2179cc6 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 66ebde74b8cc4c3bb55416f91223893d |
| service_name | monasca |
| service_type | monitoring |
+--------------+----------------------------------+
[root@monasca-api ~]# openstack endpoint create --region RegionOne monasca internal http://monasca-api:8082/v2.0
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | a550de93a7874593a397625c073d23cd |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 66ebde74b8cc4c3bb55416f91223893d |
| service_name | monasca |
| service_type | monitoring |
+--------------+----------------------------------+
[root@monasca-api ~]# openstack endpoint create --region RegionOne monasca admin http://monasca-api:8082/v2.0
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 1e7ad0b6e42e4ca497dcc8673e2275ab |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 66ebde74b8cc4c3bb55416f91223893d |
| service_name | monasca |
| service_type | monitoring |
+--------------+----------------------------------+
- monasca
- monasca db script 실행
mysql -uroot -proot123 < mon_mysql.sql
- monsaca db 접근 권한 추가
mysql -uroot -proot123
grant all privileges on *.* to 'monasca'@'monasca-api' identified by 'monasca123';
flush privileges;
- kafka topic 생성
cd $KAFKA_HOME
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 64 --topic metrics
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic events
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic raw-events
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic transformed-events
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic stream-definitions
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic transform-definitions
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic alarm-state-transitions
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic alarm-notifications
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 12 --topic stream-notifications
bin/kafka-topics.sh --create --zookeeper monasca-api:2181/kafka --replication-factor 1 --partitions 3 --topic retry-notifications
- influxdb db, user, retention policy create
influx
CREATE DATABASE mon
CREATE USER monasca WITH PASSWORD 'monasca123'
CREATE RETENTION POLICY persister_all ON mon DURATION 90d REPLICATION 1 DEFAULT
exit
- maven 설치
- download 및 설정
cd $HOME/application
tar xvzf apache-maven-3.5.2-bin.tar.gz
ln -s apache-maven-3.5.2 maven
- .bash_profile 내용추가
vi ~/.bash_profile
M2_HOME=$HOME/application/maven
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$M2_HOME/bin
export PATH
- .bash_profile 적용
source ~/.bash_profile
- monasca-common 설치
- path
- $HOME/application/monasca
cd $HOME/application/monasca
git clone -b stable/pike https://github.com/openstack/monasca-common.git
cd monasca-common
mvn clean install
- monasca-api 설치
- path
- $HOME/application/monasca
cd $HOME/application/monasca
git clone -b stable/pike https://github.com/openstack/monasca-api.git
cd monasca-api
- run_maven.sh 수정
vi run_maven.sh
# ( cd common; ./build_common.sh ${MVN} ${COMMON_VERSION} ${BRANCH} ) 부분을 아래와 같이 바꿈
( cd common; ./build_common.sh ${MVN} ${COMMON_VERSION} stable/pike )
# ( cd java; ${MVN} -DgitRevision=`git rev-list HEAD --max-count 1 --abbrev=0 --abbrev-commit` $* ) 부분을 아래와 같이 바꿈
( cd java; ${MVN} -Dmaven.test.skip=true -DgitRevision=`git rev-list HEAD --max-count 1 --abbrev=0 --abbrev-commit` $* )
- common/build_common.sh 수정
vi run_maven.sh
# ${MVN} install 부분을 아래와 같이 바꿈
${MVN} install -Dmaven.test.skip=true
- compile & package
./run_maven.sh 1.2.1-SNAPSHOT clean package
- package extract
cd target
tar xvzf monasca-api-1.2.1-SNAPSHOT-tar.tar.gz
cp monasca-api-1.2.1-SNAPSHOT/monasca-api.jar .
- api-config.yml 수정 (파일 참조 하여 수정)
- monasca-api 기동
nohup java -jar /home/monasca/application/monasca/monasca-api/target/monasca-api.jar server /home/monasca/application/monasca/monasca-api/etc/api-config.yml &
- monasca-persister 설치
- java 버전으로 설치하려하였으나 influxdb접근 버그가 있어서 python버전으로 설치함
- install
sudo pip install --upgrade pbr
sudo pip install influxdb
sudo pip install git+https://git.openstack.org/openstack/monasca-persister@1.6.0#egg=monasca-persister
- persister.conf 수정 (파일 참조하여 수정)
vi /etc/monasca/persister.conf
- monasca-persister 기동
monasca-persister --config-file /etc/monasca/persister.conf
- monasca-agent 설치
- install
sudo pip install —upgrade pip
sudo pip install monasca-agent
- monsaca-setup
monasca-setup \
--username "monasca" \
--password "monasca123" \
--project_name "admin" \
--project_id "df901de863de4ee08e0636a6b7a47c05" \
--user_domain_id "8a44c086f17349018206f2d4faea97e8" \
--user_domain_name "8a44c086f17349018206f2d4faea97e8" \
--project_domain_id "8a44c086f17349018206f2d4faea97e8" \
--project_domain_name "default" \
--region_name "regionOne" \
--service_type "monitoring" \
--keystone_url http://100.168.10.2:35357/v3 \
--monasca_url http://100.168.10.2:8020/v2.0 \
--check_frequency '15' \
--log_level 'DEBUG' \
--insecure true \
--system_only
- agent 수집 설정 파일 수정
vi /etc/monasca/agent/conf.d/cpu.yaml
init_config: null
instances:
- built_by: System
name: cpu_stats
send_rollup_stats: True # vcpu measurement Option 추가
vi /etc/monasca/agent/conf.d/disk.yaml
init_config: null
instances:
- built_by: System
device_blacklist_re: .*freezer_backup_snap.*
ignore_filesystem_types: iso9660,tmpfs
name: disk_stats
send_rollup_stats: True # vcpu measurement Option 추가
- agent 기동
systemctl start monasca-agent.service