From 6a0cc90d98d5bc83939095978b9382b65db5e04c Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Wed, 28 Oct 2020 19:10:38 +0100 Subject: Added telegraf to all services, Added dashboards and data source in grafana --- srcs/ftps/Dockerfile | 14 ++++++++++--- srcs/ftps/entrypoint.sh | 4 ++++ srcs/ftps/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/grafana/Dockerfile | 15 ++++++++++++-- srcs/grafana/entrypoint.sh | 6 ++++++ srcs/grafana/grafana.db | Bin 0 -> 1105920 bytes srcs/grafana/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/influxdb/Dockerfile | 14 +++++++++++-- srcs/influxdb/entrypoint.sh | 4 ++++ srcs/influxdb/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/mysql/Dockerfile | 8 ++++++-- srcs/mysql/entrypoint.sh | 2 ++ srcs/mysql/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/nginx/Dockerfile | 7 ++++++- srcs/nginx/src/entrypoint.sh | 2 ++ srcs/nginx/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/phpmyadmin/Dockerfile | 9 +++++++-- srcs/phpmyadmin/entrypoint.sh | 2 ++ srcs/phpmyadmin/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ srcs/wordpress/Dockerfile | 5 +++++ srcs/wordpress/entrypoint.sh | 2 ++ srcs/wordpress/telegraf.conf | 46 ++++++++++++++++++++++++++++++++++++++++++ 22 files changed, 404 insertions(+), 12 deletions(-) create mode 100644 srcs/ftps/entrypoint.sh create mode 100644 srcs/ftps/telegraf.conf create mode 100644 srcs/grafana/entrypoint.sh create mode 100644 srcs/grafana/grafana.db create mode 100644 srcs/grafana/telegraf.conf create mode 100644 srcs/influxdb/entrypoint.sh create mode 100644 srcs/influxdb/telegraf.conf create mode 100644 srcs/mysql/telegraf.conf create mode 100644 srcs/nginx/telegraf.conf create mode 100644 srcs/phpmyadmin/telegraf.conf create mode 100644 srcs/wordpress/telegraf.conf diff --git a/srcs/ftps/Dockerfile b/srcs/ftps/Dockerfile index 418ae89..92a4de8 100644 --- a/srcs/ftps/Dockerfile +++ b/srcs/ftps/Dockerfile @@ -3,7 +3,7 @@ FROM alpine RUN apk update && \ apk upgrade && \ apk add --repository http://dl-3.alpinelinux.org/alpine/edge/testing/ pure-ftpd && \ - apk add openssl + apk add openssl curl RUN adduser -D -h /home/charles charles && \ echo -e 'pass\npass' | passwd charles && \ @@ -12,7 +12,15 @@ RUN adduser -D -h /home/charles charles && \ RUN openssl req -x509 -nodes -days 7300 -subj "/C=FR/ST=fr/L=Belgiaque/O=19/CN=cacharle" \ -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh + EXPOSE 21 +EXPOSE 21000 -# docker run -p 21:21 -p 21000:21000 -p 21001:21001 -p 21002:21002 -p 21003:21003 -p 21004:21004 -t ftps -CMD ["pure-ftpd", "-p", "21000:21000", "-P", "192.168.99.110", "-Y", "2"] +CMD "/entrypoint.sh" diff --git a/srcs/ftps/entrypoint.sh b/srcs/ftps/entrypoint.sh new file mode 100644 index 0000000..400389e --- /dev/null +++ b/srcs/ftps/entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +/telegraf/usr/bin/telegraf & +pure-ftpd -p 21000:21000 -P 192.168.99.110 -Y 2 diff --git a/srcs/ftps/telegraf.conf b/srcs/ftps/telegraf.conf new file mode 100644 index 0000000..7ebe6e6 --- /dev/null +++ b/srcs/ftps/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "ftps" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/grafana/Dockerfile b/srcs/grafana/Dockerfile index 20a5599..49797ca 100644 --- a/srcs/grafana/Dockerfile +++ b/srcs/grafana/Dockerfile @@ -7,6 +7,17 @@ RUN apk update && \ tar xvf grafana.tar.gz && \ mv grafana-7.2.1 grafana -RUN mkdir /grafana/data && touch /grafana/data/grafana.db +RUN mkdir /grafana/data +COPY grafana.db /grafana/data/grafana.db -CMD cd /grafana/bin && ./grafana-server +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh + +EXPOSE 3000 + +CMD "/entrypoint.sh" diff --git a/srcs/grafana/entrypoint.sh b/srcs/grafana/entrypoint.sh new file mode 100644 index 0000000..8aeade3 --- /dev/null +++ b/srcs/grafana/entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +/telegraf/usr/bin/telegraf & + +cd /grafana/bin +./grafana-server diff --git a/srcs/grafana/grafana.db b/srcs/grafana/grafana.db new file mode 100644 index 0000000..9066ea7 Binary files /dev/null and b/srcs/grafana/grafana.db differ diff --git a/srcs/grafana/telegraf.conf b/srcs/grafana/telegraf.conf new file mode 100644 index 0000000..0b2f5d1 --- /dev/null +++ b/srcs/grafana/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "grafana" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/influxdb/Dockerfile b/srcs/influxdb/Dockerfile index 6f6defc..e491f22 100644 --- a/srcs/influxdb/Dockerfile +++ b/srcs/influxdb/Dockerfile @@ -2,6 +2,16 @@ FROM alpine RUN apk update && \ apk upgrade && \ - apk add influxdb + apk add influxdb curl -CMD ["influxd", "run"] +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh + +EXPOSE 8086 + +CMD "/entrypoint.sh" diff --git a/srcs/influxdb/entrypoint.sh b/srcs/influxdb/entrypoint.sh new file mode 100644 index 0000000..ddd393a --- /dev/null +++ b/srcs/influxdb/entrypoint.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +/telegraf/usr/bin/telegraf & +influxd run diff --git a/srcs/influxdb/telegraf.conf b/srcs/influxdb/telegraf.conf new file mode 100644 index 0000000..fef7cb1 --- /dev/null +++ b/srcs/influxdb/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "influxdb" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/mysql/Dockerfile b/srcs/mysql/Dockerfile index 372e1ea..dcb4557 100644 --- a/srcs/mysql/Dockerfile +++ b/srcs/mysql/Dockerfile @@ -2,13 +2,17 @@ FROM alpine RUN apk update && \ apk upgrade && \ - apk add mysql mysql-client --no-cache - + apk add mysql mysql-client curl --no-cache COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh COPY my.cnf /etc/my.cnf +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + EXPOSE 3306 CMD ["/entrypoint.sh"] diff --git a/srcs/mysql/entrypoint.sh b/srcs/mysql/entrypoint.sh index 80ec84c..13988ed 100755 --- a/srcs/mysql/entrypoint.sh +++ b/srcs/mysql/entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/sh +/telegraf/usr/bin/telegraf & + mkdir -p /run/mysqld mkdir -p /var/lib/mysql diff --git a/srcs/mysql/telegraf.conf b/srcs/mysql/telegraf.conf new file mode 100644 index 0000000..e787d5f --- /dev/null +++ b/srcs/mysql/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "mysql" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/nginx/Dockerfile b/srcs/nginx/Dockerfile index f9267f6..c3fa963 100644 --- a/srcs/nginx/Dockerfile +++ b/srcs/nginx/Dockerfile @@ -2,7 +2,7 @@ FROM alpine RUN apk update && \ apk upgrade && \ - apk add nginx openssh openrc + apk add nginx openssh openrc curl COPY ./src /root @@ -12,6 +12,11 @@ RUN mkdir -p /run/nginx && \ rm /etc/nginx/conf.d/default.conf && \ mv /root/ft_services.conf /etc/nginx/conf.d/ft_services.conf +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + EXPOSE 22 EXPOSE 80 EXPOSE 443 diff --git a/srcs/nginx/src/entrypoint.sh b/srcs/nginx/src/entrypoint.sh index bfef63c..315f55a 100755 --- a/srcs/nginx/src/entrypoint.sh +++ b/srcs/nginx/src/entrypoint.sh @@ -7,6 +7,8 @@ openrc touch /run/openrc/softlevel /etc/init.d/sshd start +/telegraf/usr/bin/telegraf & + nginx -t || exit 1 nginx sleep infinity & diff --git a/srcs/nginx/telegraf.conf b/srcs/nginx/telegraf.conf new file mode 100644 index 0000000..b1ef497 --- /dev/null +++ b/srcs/nginx/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "nginx" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/phpmyadmin/Dockerfile b/srcs/phpmyadmin/Dockerfile index c47aa37..164b4a6 100644 --- a/srcs/phpmyadmin/Dockerfile +++ b/srcs/phpmyadmin/Dockerfile @@ -15,8 +15,6 @@ COPY config.inc.php /var/www RUN mkdir /etc/phpmyadmin COPY config.inc.php /etc/phpmyadmin -EXPOSE 5000 - COPY nginx.conf /etc/nginx/conf.d RUN mkdir -p /run/nginx && \ rm /etc/nginx/conf.d/default.conf @@ -24,4 +22,11 @@ RUN mkdir -p /run/nginx && \ COPY entrypoint.sh /entrypoint.sh RUN chmod +x entrypoint.sh +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + +EXPOSE 5000 + CMD "/entrypoint.sh" diff --git a/srcs/phpmyadmin/entrypoint.sh b/srcs/phpmyadmin/entrypoint.sh index de7bedf..c89e0d4 100755 --- a/srcs/phpmyadmin/entrypoint.sh +++ b/srcs/phpmyadmin/entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/sh +/telegraf/usr/bin/telegraf & + nginx -t || exit 1 openrc diff --git a/srcs/phpmyadmin/telegraf.conf b/srcs/phpmyadmin/telegraf.conf new file mode 100644 index 0000000..455f19d --- /dev/null +++ b/srcs/phpmyadmin/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "phpmyadmin" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] diff --git a/srcs/wordpress/Dockerfile b/srcs/wordpress/Dockerfile index 00098b0..4b5a043 100644 --- a/srcs/wordpress/Dockerfile +++ b/srcs/wordpress/Dockerfile @@ -20,6 +20,11 @@ COPY wp-config.php /var/www/wp-config.php COPY entrypoint.sh /entrypoint.sh RUN chmod +x entrypoint.sh +RUN curl 'https://dl.influxdata.com/telegraf/releases/telegraf-1.16.0_linux_i386.tar.gz' > telegraf.tar.gz && \ + tar xvf telegraf.tar.gz && \ + mv 'telegraf-1.16.0' telegraf +COPY telegraf.conf /etc/telegraf/telegraf.conf + EXPOSE 5050 CMD "/entrypoint.sh" diff --git a/srcs/wordpress/entrypoint.sh b/srcs/wordpress/entrypoint.sh index de7bedf..c89e0d4 100755 --- a/srcs/wordpress/entrypoint.sh +++ b/srcs/wordpress/entrypoint.sh @@ -1,5 +1,7 @@ #!/bin/sh +/telegraf/usr/bin/telegraf & + nginx -t || exit 1 openrc diff --git a/srcs/wordpress/telegraf.conf b/srcs/wordpress/telegraf.conf new file mode 100644 index 0000000..e04fb1a --- /dev/null +++ b/srcs/wordpress/telegraf.conf @@ -0,0 +1,46 @@ +[global_tags] + +[agent] + interval = "10s" + round_interval = true + metric_batch_size = 1000 + metric_buffer_limit = 10000 + collection_jitter = "0s" + flush_interval = "10s" + flush_jitter = "0s" + precision = "" + hostname = "" + omit_hostname = false + + +[[outputs.influxdb]] + urls = ["http://influxdb-service:8086"] + database = "wordpress" + +[[inputs.cpu]] + percpu = true + totalcpu = true + collect_cpu_time = false + report_active = false + + +[[inputs.disk]] + ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"] + + +[[inputs.diskio]] + + +[[inputs.kernel]] + + +[[inputs.mem]] + + +[[inputs.processes]] + + +[[inputs.swap]] + + +[[inputs.system]] -- cgit