Skip to content

Instantly share code, notes, and snippets.

@riveraja
Created February 10, 2018 06:42
Show Gist options
  • Save riveraja/96b03469bcf0891b3a404baa9619767e to your computer and use it in GitHub Desktop.
Save riveraja/96b03469bcf0891b3a404baa9619767e to your computer and use it in GitHub Desktop.
pmm-info.sh with support for OVA deployments
#!/bin/bash
# Created by Roel Van de Paar, Percona LLC
echo 'QA PMM Info Script v0.09'
echo '==================== uname -a'
uname -a 2>&1 | sed 's|^| |'
echo '==================== /proc/version'
cat /proc/version 2>&1 | sed 's|^| |'
echo '==================== OS Release (filtered cat /etc/*-release):' # With thanks, http://www.cyberciti.biz/faq/find-linux-distribution-name-version-number/
cat /etc/*-release 2>&1 | grep -Ev '^$|^CENTOS_|^REDHAT_|^CPE_|^BUG_|^ANSI_' | sort -u | sed 's|^| |'
echo '==================== SELinux status if present (sestatus):'
sestatus 2>&1 | sed 's|^| |'
if [ "$1" = "ext1" ]; then
echo '==================== Docker release (docker --version):'
sudo docker --version 2>&1 | sed 's|^| |'
echo '==================== PMM server images (sudo docker images | grep pmm):'
sudo docker images 2>&1 | grep pmm | sed 's|^| |'
echo '==================== PMM server state (sudo docker ps -a | grep pmm):'
sudo docker ps -a 2>&1 | grep pmm | sed 's|^| |'
fi
if [ "$1" = "" ]; then
echo '==================== Exporter status (ps -ef | grep exporter):'
ps -ef | grep -v grep | grep exporter | sed 's|^| |'
echo '==================== PMM info (sudo pmm-admin info):'
sudo pmm-admin info 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== PMM network check (sudo pmm-admin check-network):'
function version { echo "$@" | gawk -F. '{ printf("%03d%03d%03d\n", $1,$2,$3); }'; }
my_version=$(sudo pmm-admin --version)
emoji_version=1.0.6
if [ "$(version "$my_version")" -gt "$(version "$emoji_version")" ]; then
sudo pmm-admin check-network 2>&1 | grep -v '^$' | sed 's|^| |'
else
sudo pmm-admin check-network --no-emoji 2>&1 | grep -v '^$' | sed 's|^| |'
fi
echo '==================== PMM list (sudo pmm-admin list):'
sudo pmm-admin list 2>&1 | grep -v '^$' | sed 's|^| |'
fi
if [ "$1" = "ext1" ]; then
echo '==================== Extended info: cat /*/*VERSION inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') find / -name \*VERSION -exec echo {} \; -exec cat {} \; 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/nginx.log inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') cat /var/log/nginx.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/consul.log inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') cat /var/log/consul.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/grafana/grafana.log inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') cat /var/log/grafana/grafana.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/prometheus.log inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') cat /var/log/prometheus.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/qan-api.log inside docker container:'
sudo docker exec -it $(sudo docker ps -a | grep pmm | grep 'Up.*pmm-server' | sed 's|[ \t].*||') cat /var/log/qan-api.log 2>&1 | grep -v '^$' | sed 's|^| |'
fi
if [ "$1" = "ext2" ]; then
echo '==================== Extended info: cat /*/*VERSION:'
find / -name \*VERSION | grep -i 'prom\|percona' | xargs head -n 1 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/nginx/error.log:'
cat /var/log/nginx/error.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: grep "localhost consul" /var/log/messages:'
grep 'localhost consul' /var/log/messages 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: cat /var/log/grafana/grafana.log:'
cat /var/log/grafana/grafana.log 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: grep "localhost prometheus" /var/log/messages:'
grep 'localhost prometheus' /var/log/messages 2>&1 | grep -v '^$' | sed 's|^| |'
echo '==================== Extended info: grep "localhost percona-qan-api" /var/log/messages:'
grep 'localhost percona-qan-api' /var/log/messages 2>&1 | grep -v '^$' | sed 's|^| |'
fi
@riveraja
Copy link
Author

riveraja commented Feb 10, 2018

# How to use
To collect data from client side:
bash pmm-info.sh > pmm-info.txt

To collect data from PMM Server side Docker deployments:
bash pmm-info.sh ext1 > pmm-info.txt

To collect data from PMM Server side Virtualbox/VMware deployments:
bash pmm-info.sh ext2 > pmm-info.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment