diff --git a/.env b/.env index 07d7d4f..b8ffd09 100644 --- a/.env +++ b/.env @@ -41,17 +41,12 @@ JDBC_DRIVER=com.mysql.jdbc.Driver JDBC_URL=jdbc:mysql://pinpoint-mysql:3306/pinpoint?characterEncoding=UTF-8 JDBC_USERNAME=admin JDBC_PASSWORD=admin -MAIL_HOST=stmp.test.com -MAIL_PORT=123 -MAIL_USERNAME=user -MAIL_PASSWORD=pass -MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL=smtp -MAIL_PROPERTIES_MAIL_SMTP_AUTH=true -MAIL_PROPERTIES_MAIL_SMTP_PORT=587 -MAIL_PROPERTIES_MAIL_SMTP_FROM=test@example.com -MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE=true -MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED=true -MAIL_PROPERTIES_MAIL_DEBUG=false +PINPOINT_URL=pinpoint.example.com +ALARM_MAIL_SERVER_URL=stmp.test.com +ALARM_MAIL_SERVER_PORT=123 +ALARM_MAIL_SERVER_USERNAME=user +ALARM_MAIL_SERVER_PASSWORD=pass + ### Pinpoint-Collector diff --git a/Readme.md b/Readme.md index 120b9ee..87c8e4d 100644 --- a/Readme.md +++ b/Readme.md @@ -17,6 +17,10 @@ It supports and helps you understand your application in a glance and allow you - 1.7.3 - 1.7.2 +## Requirements + +- [docker 18.02.0+](https://docs.docker.com/compose/compose-file/) + ## How to install Pinpoint? You can easily bring up an entire Dockerized Pinpoint(latest release) environment by using [Docker Compose](https://docs.docker.com/compose/) with any of the provided `docker-compose.yml` files as below. @@ -25,7 +29,7 @@ To monitor your agent see [configuration part](#configurations) for further deta ``` git clone https://github.com/naver/pinpoint-docker.git -cd Pinpoint-Docker +cd pinpoint-docker docker-compose pull && docker-compose up -d ``` If you'd like to bring up the previous release. Try with docker-compose file from other tags. @@ -34,28 +38,30 @@ You can also just build the image with `docker-compose up -d` command without pu This will install and run all services required to run all features in Pinpoint in docker containers joined with same network. - Pinpoint-Web Server - Pinpoint-Collector - - Pinpoint-Agent(ready to be used) - - Pinpoint-Flink + - Pinpoint-Agent + - Pinpoint-Flink(to support certain feature) - Pinpoint-Zookeeper - Pinpoint-Hbase - - Pinpoint-QuickStart(a sample application) - - Pinpoint-Mysql + - Pinpoint-QuickStart(a sample application, 1.8.1+) + - Pinpoint-Mysql(to support certain feature) This may take several minutes to download all necessary images. You can replace `QuickStart` application part with your application to start monitoring. - check [`Testing QuickStart application`](#testing-quickstart-application) for a quick demo of pinpoint - check [`Monitoring YOUR Application`](#monitoring-your-application) part for further details -### Mysql (optional) +### Mysql (optional, 1.8.1+) -The Pinpoint-Mysql server is running on port 13306 and contains the data structure used to register users, groups, and alerts to be sent. +The Pinpoint-Mysql is necessary to use 'Alarm' feature. It's server is running on port 13306 and contains the data structure used to register users, groups, and alerts to be sent. -To send email alerts, you must make BATCH_ENABLE=true and change the other mail-related environment variables (MAIL_HOST, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD, MAIL_PROPERTIES_MAIL_SMTP_FROM, ...) to the Pinpoint-Web server in *.env* file. +To send email alerts, you must make BATCH_ENABLE=true and change the other mail-related environment variables (PINPOINT_URL, ALARM_MAIL_SERVER_URL, ALARM_MAIL_SERVER_PORT, ALARM_MAIL_SERVER_USERNAME, ALARM_MAIL_SERVER_PASSWORD, ALARM_MAIL_SENDER_ADDRESS, ...) to the Pinpoint-Web server in *.env* file. -For more information see [Setting Alarm](http://naver.github.io/pinpoint/alarm.html) in Pinpoint documentation. +For more information checkout [Setting Alarm](http://naver.github.io/pinpoint/alarm.html) in Pinpoint documentation. ### Flink configuration (optional) +The Pinpoint-Flink is necessary to use ['Application Inspector'](http://naver.github.io/pinpoint/applicationinspector.html) feature. + After all containers are started and ready to go. There is one more thing to do to use all existing features in Pinpoint. It's not mandatory, but to use all the features and since it's a simple task, let's take care of it. diff --git a/docker-compose.yml b/docker-compose.yml index c194a3c..075ddfe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -44,7 +44,7 @@ services: container_name: pinpoint-mysql restart: always - image: pinpointdocker/pinpoint-mysql:${PINPOINT_VERSION} +# image: "pinpointdocker/pinpoint-mysql:${PINPOINT_VERSION}" hostname: pinpoint-mysql ports: - "13306:3306" @@ -95,17 +95,12 @@ services: - JDBC_URL=${JDBC_URL} - JDBC_USERNAME=${JDBC_USERNAME} - JDBC_PASSWORD=${JDBC_PASSWORD} - - MAIL_HOST=${MAIL_HOST} - - MAIL_PORT=${MAIL_PORT} - - MAIL_USERNAME=${MAIL_USERNAME} - - MAIL_PASSWORD=${MAIL_PASSWORD} - - MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL=${MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL} - - MAIL_PROPERTIES_MAIL_SMTP_AUTH=${MAIL_PROPERTIES_MAIL_SMTP_AUTH} - - MAIL_PROPERTIES_MAIL_SMTP_PORT=${MAIL_PROPERTIES_MAIL_SMTP_PORT} - - MAIL_PROPERTIES_MAIL_SMTP_FROM=${MAIL_PROPERTIES_MAIL_SMTP_FROM} - - MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE=${MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE} - - MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED=${MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED} - - MAIL_PROPERTIES_MAIL_DEBUG=${MAIL_PROPERTIES_MAIL_DEBUG} + - PINPOINT_URL=${PINPOINT_URL} + - ALARM_MAIL_SERVER_URL=${ALARM_MAIL_SERVER_URL} + - ALARM_MAIL_SERVER_PORT=${ALARM_MAIL_SERVER_PORT} + - ALARM_MAIL_SERVER_USERNAME=${ALARM_MAIL_SERVER_USERNAME} + - ALARM_MAIL_SERVER_PASSWORD=${ALARM_MAIL_SERVER_PASSWORD} + - ALARM_MAIL_SENDER_ADDRESS=${ALARM_MAIL_SENDER_ADDRESS} links: - "pinpoint-mysql:pinpoint-mysql" networks: diff --git a/pinpoint-mysql/.env b/pinpoint-mysql/.env index f54d43d..ac6c27b 100644 --- a/pinpoint-mysql/.env +++ b/pinpoint-mysql/.env @@ -1 +1,7 @@ -PINPOINT_VERSION=1.8.0 \ No newline at end of file +PINPOINT_VERSION=1.8.0 + +### Pinpoint-mysql +MYSQL_ROOT_PASSWORD=root123 +MYSQL_USER=admin +MYSQL_PASSWORD=admin +MYSQL_DATABASE=pinpoint \ No newline at end of file diff --git a/pinpoint-mysql/Readme.md b/pinpoint-mysql/Readme.md new file mode 100644 index 0000000..91168c2 --- /dev/null +++ b/pinpoint-mysql/Readme.md @@ -0,0 +1,38 @@ + +## Pinpoint Mysql + +This Docker image contains the Pinpoint Mysql component of the Pinpoint application monitoring system. + +## Supported Tags + + - 1.8.0 + - 1.7.3 + - 1.7.2 + +Please see [Pinpoint-Docker GitHub repository](https://github.com/naver/pinpoint-docker) for further information on how to run, configure and build this image. + +## Any Issues or Suggestions? + +Feel free to share any problems and suggestions via [Pinpoint GitHub Issue page](https://github.com/naver/pinpoint/issues). +Contributions on the pinpoint-docker image is also always welcome. + +## License + +Pinpoint is licensed under the Apache License, Version 2.0. +See [LICENSE](https://github.com/naver/pinpoint/blob/master/LICENSE) for full license text. + +``` +Copyright 2018 NAVER Corp. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +``` \ No newline at end of file diff --git a/pinpoint-mysql/docker-compose.yml b/pinpoint-mysql/docker-compose.yml new file mode 100644 index 0000000..2a04ccf --- /dev/null +++ b/pinpoint-mysql/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3.6" + +services: + pinpoint-mysql: + build: + context: . + dockerfile: Dockerfile + args: + - PINPOINT_VERSION=${PINPOINT_VERSION} + + container_name: pinpoint-mysql + restart: always + image: "pinpointdocker/pinpoint-mysql:${PINPOINT_VERSION}" + + hostname: pinpoint-mysql + ports: + - "13306:3306" + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + + volumes: + - ./var/lib/mysql diff --git a/pinpoint-web/.env b/pinpoint-web/.env index ff33195..0f5ff50 100644 --- a/pinpoint-web/.env +++ b/pinpoint-web/.env @@ -34,14 +34,9 @@ JDBC_USERNAME= JDBC_PASSWORD= #mail server information required -MAIL_HOST= -MAIL_PORT= -MAIL_USERNAME= -MAIL_PASSWORD= -MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL= -MAIL_PROPERTIES_MAIL_SMTP_AUTH= -MAIL_PROPERTIES_MAIL_SMTP_PORT= -MAIL_PROPERTIES_MAIL_SMTP_FROM= -MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE= -MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED= -MAIL_PROPERTIES_MAIL_DEBUG= \ No newline at end of file +PINPOINT_URL= +ALARM_MAIL_SERVER_URL= +ALARM_MAIL_SERVER_PORT= +ALARM_MAIL_SERVER_USERNAME= +ALARM_MAIL_SERVER_PASSWORD= +ALARM_MAIL_SENDER_ADDRESS= \ No newline at end of file diff --git a/pinpoint-web/Dockerfile b/pinpoint-web/Dockerfile index e295197..a6d88ab 100644 --- a/pinpoint-web/Dockerfile +++ b/pinpoint-web/Dockerfile @@ -13,9 +13,6 @@ RUN chmod a+x /usr/local/bin/start-web.sh \ && rm -rf /usr/local/tomcat/webapps \ && mkdir -p /usr/local/tomcat/webapps \ && unzip pinpoint-web.war -d /usr/local/tomcat/webapps/ROOT \ - && rm -rf pinpoint-web.war \ - && curl -SL https://maven.java.net/content/repositories/releases/com/sun/mail/javax.mail/1.5.2/javax.mail-1.5.2.jar -o /usr/local/tomcat/webapps/ROOT/WEB-INF/lib/javax.mail-1.5.2.jar \ - && unzip /assets/mail.zip -d /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/ \ - && rm -rf /assets/mail.zip + && rm -rf pinpoint-web.war ENTRYPOINT ["/usr/local/bin/start-web.sh"] diff --git a/pinpoint-web/build/mail.zip b/pinpoint-web/build/mail.zip deleted file mode 100644 index 851516b..0000000 Binary files a/pinpoint-web/build/mail.zip and /dev/null differ diff --git a/pinpoint-web/build/scripts/start-web.sh b/pinpoint-web/build/scripts/start-web.sh index 39f9a15..62f222f 100644 --- a/pinpoint-web/build/scripts/start-web.sh +++ b/pinpoint-web/build/scripts/start-web.sh @@ -16,70 +16,20 @@ sed -i "/batch.enable=/ s/=.*/=${BATCH_ENABLE}/" /usr/local/tomcat/webapps/ROOT/ sed -i "/batch.server.ip=/ s/=.*/=${BATCH_SERVER_IP}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties sed -i "/batch.flink.server=/ s/=.*/=${BATCH_FLINK_SERVER}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties -sed -i "/level value=/ s/=.*/=\"${DEBUG_LEVEL}\"\/>/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml +sed -i "/pinpoint.url=/ s/=.*/=${PINPOINT_URL}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties +sed -i "/alarm.mail.server.url=/ s/=.*/=${ALARM_MAIL_SERVER_URL}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties +sed -i "/alarm.mail.server.port=/ s/=.*/=${ALARM_MAIL_SERVER_PORT}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties +sed -i "/alarm.mail.server.userName=/ s/=.*/=${ALARM_MAIL_SERVER_USERNAME}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties +sed -i "/alarm.mail.server.password=/ s/=.*/=${ALARM_MAIL_SERVER_PASSWORD}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties +sed -i "/alarm.mail.sender.address=/ s/=.*/=${ALARM_MAIL_SENDER_ADDRESS}/" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/batch.properties -WEB_INF_CLASSES_DIR=/usr/local/tomcat/webapps/ROOT/WEB-INF/classes -APPLICATION_CONTEXT_WEB_FILE=${WEB_INF_CLASSES_DIR}/applicationContext-web.xml -APPLICATION_CONTEXT_MAIL_FILE=${WEB_INF_CLASSES_DIR}/applicationContext-mail.xml +sed -i "/level value=/ s/=.*/=\"${DEBUG_LEVEL}\"\/>/g" /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.xml echo -e " jdbc.driverClassName=${JDBC_DRIVER:-com.mysql.jdbc.Driver} jdbc.url=${JDBC_URL:-jdbc:mysql://localhost:13306/pinpoint?characterEncoding=UTF-8} jdbc.username=${JDBC_USERNAME:-admin} jdbc.password=${JDBC_PASSWORD:-admin} -" > ${WEB_INF_CLASSES_DIR}/jdbc.properties +" > /usr/local/tomcat/webapps/ROOT/WEB-INF/classes/jdbc.properties -sed -i '/classpath:applicationContext-mail.xml/d' ${APPLICATION_CONTEXT_WEB_FILE} -if [ "$MAIL_HOST" != "" ]; then - sed -i 's/<\/beans>/ \ -<\/beans>/' ${APPLICATION_CONTEXT_WEB_FILE} - - sed -i "/name=\"host\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - sed -i "/name=\"port\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - sed -i "/name=\"username\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - sed -i "/name=\"password\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - - if [ "$MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL" != "" ]; then - sed -i "/prop key=\"mail.transport.protocol\"/c\ ${MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.transport.protocol\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_SMTP_PORT" != "" ]; then - sed -i "/prop key=\"mail.smtp.port\"/c\ ${MAIL_PROPERTIES_MAIL_SMTP_PORT}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.smtp.port\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_SMTP_AUTH" != "" ]; then - sed -i "/prop key=\"mail.smtp.auth\"/c\ ${MAIL_PROPERTIES_MAIL_SMTP_AUTH}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.smtp.auth\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE" != "" ]; then - sed -i "/prop key=\"mail.smtp.starttls.enable\"/c\ ${MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.smtp.starttls.enable\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED" != "" ]; then - sed -i "/prop key=\"mail.smtp.starttls.required\"/c\ ${MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.smtp.starttls.required\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_DEBUG" != "" ]; then - sed -i "/prop key=\"mail.debug\"/c\ ${MAIL_PROPERTIES_MAIL_DEBUG}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.debug\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi - - if [ "$MAIL_PROPERTIES_MAIL_SMTP_FROM" != "" ]; then - sed -i "/prop key=\"mail.smtp.from\"/c\ ${MAIL_PROPERTIES_MAIL_SMTP_FROM}" ${APPLICATION_CONTEXT_MAIL_FILE} - else - sed -i "/prop key=\"mail.smtp.from\"/c\ " ${APPLICATION_CONTEXT_MAIL_FILE} - fi -fi - -exec /usr/local/tomcat/bin/catalina.sh run +exec /usr/local/tomcat/bin/catalina.sh run \ No newline at end of file diff --git a/pinpoint-web/docker-compose.yml b/pinpoint-web/docker-compose.yml index d23b185..b4e4652 100644 --- a/pinpoint-web/docker-compose.yml +++ b/pinpoint-web/docker-compose.yml @@ -34,15 +34,9 @@ services: - JDBC_URL=${JDBC_URL} - JDBC_USERNAME=${JDBC_USERNAME} - JDBC_PASSWORD=${JDBC_PASSWORD} - - MAIL_HOST=${MAIL_HOST} - - MAIL_PORT=${MAIL_PORT} - - MAIL_USERNAME=${MAIL_USERNAME} - - MAIL_PASSWORD=${MAIL_PASSWORD} - - MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL=${MAIL_PROPERTIES_MAIL_TRANSPORT_PROTOCOL} - - MAIL_PROPERTIES_MAIL_SMTP_AUTH=${MAIL_PROPERTIES_MAIL_SMTP_AUTH} - - MAIL_PROPERTIES_MAIL_SMTP_PORT=${MAIL_PROPERTIES_MAIL_SMTP_PORT} - - MAIL_PROPERTIES_MAIL_SMTP_FROM=${MAIL_PROPERTIES_MAIL_SMTP_FROM} - - MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE=${MAIL_PROPERTIES_MAIL_STARTTLS_ENABLE} - - MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED=${MAIL_PROPERTIES_MAIL_STARTTLS_REQUIRED} - - MAIL_PROPERTIES_MAIL_DEBUG=${MAIL_PROPERTIES_MAIL_DEBUG} - + - PINPOINT_URL=${PINPOINT_URL} + - ALARM_MAIL_SERVER_URL=${ALARM_MAIL_SERVER_URL} + - ALARM_MAIL_SERVER_PORT=${ALARM_MAIL_SERVER_PORT} + - ALARM_MAIL_SERVER_USERNAME=${ALARM_MAIL_SERVER_USERNAME} + - ALARM_MAIL_SERVER_PASSWORD=${ALARM_MAIL_SERVER_PASSWORD} + - ALARM_MAIL_SENDER_ADDRESS=${ALARM_MAIL_SENDER_ADDRESS} \ No newline at end of file