Dashboard Master Nolus
В первую очередь необходимо проверить соединение с prometheus в$HOME/.nolus/config/config.toml, если нет:
directory=.nolus
binary=nolusd
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/$directory/config/config.toml
systemctl restart $binary
Порт по умолчанию у нас будет порт 26660, далее необходимо проверить метрики в браузере
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):26660/\033[0m"
Получаем следующий вывод http://80.241.219.135:26660/
После этого вставляем ссылку в браузер и смотрим на метрики
Далее необходимо создать учетную запись в node_exporter
Далее необходимо загрузить Prometheus
cd wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz
Копируем бинарные файлы в /usr/local/bin
sudo cp node_exporter-1.5.0.linux-amd64/node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
tee /etc/systemd/system/node_exporterd.service > /dev/null <<EOF
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=default.target
EOF
systemctl daemon-reload
systemctl enable node_exporterd
systemctl restart node_exporterd && journalctl -u node_exporterd -f -o cat
Проверяем, что метрики отдаются
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):9100/\033[0m"
Далее создаем учетную запись cosmos_exporter
cd
wget https://github.com/solarlabsteam/cosmos-exporter/releases/download/v0.3.0/cosmos-exporter_0.3.0_Linux_x86_64.tar.gz
tar xvf cosmos-exporter*
Копируем бинарные файлы в /usr/local/bin
cp cosmos-exporter /usr/local/bin
chown cosmos_exporter:cosmos_exporter /usr/local/bin/cosmos-exporter
rm -rf cosmos-exporter*
Добавляем нужные переменные demon и bench_prefix
DENOM=unls
BECH_PREFIX=nolus
DENOM_COEFFICIENT=1000000
TENDERMINT_RPC=http://localhost:26657
NODE=localhost:9090
tee /etc/systemd/system/cosmos-exporterd.service > /dev/null <<EOF
[Unit]
Description=Cosmos Exporter
After=network-online.target
[Service]
User=cosmos_exporter
Group=cosmos_exporter
TimeoutStartSec=0
CPUWeight=95
IOWeight=95
ExecStart=/usr/local/bin/cosmos-exporter --denom $DENOM --denom-coefficient $DENOM_COEFFICIENT --bech-prefix $BECH_PREFIX --node $NODE --tendermint-rpc $TENDERMINT_RPC
Restart=always
RestartSec=2
LimitNOFILE=800000
KillSignal=SIGTERM
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable cosmos-exporterd
systemctl restart cosmos-exporterd && journalctl -u cosmos-exporterd -f -o cat
Далее необходимо установить Prometheus и Grafana, и делаем это на отдельном сервере
Устанавливаем необходимые дополнения
apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
apt install python3-pip -y
pip install yq
apt install fail2ban -y && \
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && \
nano /etc/fail2ban/jail.local
Далее необходимо раскомментировать и добавить свой IP: ignoreip = 127.0.0.1/8 ::1 <ip>
Создание пользователя Prometheus
Далее создадим необходимые каталоги для хранения файлов и данных Prometheus
Установим права пользователя и группы в новых каталогах для пользователя prometheus
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
cd && \
wget https://github.com/prometheus/prometheus/releases/download/v2.38.0/prometheus-2.38.0.linux-amd64.tar.gz && \
tar xvf prometheus-2.38.0.linux-amd64.tar.gz
Копируем бинарные файлы в /usr/local/bin
cp prometheus-2.38.0.linux-amd64/prometheus /usr/local/bin/
cp prometheus-2.38.0.linux-amd64/promtool /usr/local/bin/
Устанавливаем права собственности пользователя и группы на бинарные файлы
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
Копируем consoles, console_libraries и prometheus.yml в /etc/prometheus
cp -r prometheus-2.38.0.linux-amd64/consoles /etc/prometheus
cp -r prometheus-2.38.0.linux-amd64/console_libraries /etc/prometheus
cp prometheus-2.38.0.linux-amd64/prometheus.yml /etc/prometheus/
Установим права собственности пользователя и группы в каталогах для пользователя prometheus
rm -rf prometheus-2.38.0.linux-amd64.tar.gz prometheus-2.38.0.linux-amd64
Настраиваем Prometheus и копируем дефолтный конфиг
curl -sSL https://raw.githubusercontent.com/lesnikutsa/cosmos-monitoring/main/prometheus.yml > /etc/prometheus/prometheus.yml
Задаем переменные для нашего конфига
VALIDATOR_IP=80.241.219.135
VALOPER_ADDRESS=nolusvaloper153ar58plwg2x8a8zsxhyjgkqyngkhkzw464k3d
WALLET_ADDRESS=nolus153ar58plwg2x8a8zsxhyjgkqyngkhkzwv2qnjs
PROJECT_NAME=nolus
$HOME/prometheus/add_node.sh $VALIDATOR_IP $VALOPER_ADDRESS $WALLET_ADDRESS $PROJECT_NAME
tee /etc/systemd/system/prometheusd.service > /dev/null <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && \
systemctl enable prometheusd && \
systemctl restart prometheusd && sudo systemctl status prometheusd
Проверяем, что метрики отдаются
Проверяем информацию в браузере
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):9090/\033[0m"
Вставляем ссылку в браузер http://91.201.113.218:9090/
Выбираем раздел Status - Targets
sudo apt-get install -y adduser libfontconfig1 && \
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.1.3_amd64.deb && \
sudo dpkg -i grafana-enterprise_9.1.3_amd64.deb
systemctl daemon-reload && \
systemctl enable grafana-server && \
systemctl restart grafana-server && sudo systemctl status grafana-server
Узнаем адрес и вставляем в браузер
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):3000/\033[0m"
Переходим по ссылке http://91.201.113.218:3000/
Меняем пароль на другой (в моем случае это admin1 )
Заходим в конфигурацию и добавляем Prometheus, в моем случае Prometheus и Grafana на одном сервере, поэтому в URL указываю - http://localhost:9090 и после этого сохраняю.
Далее необходимо импортировать json в дашборд, я скачал здесь
https://grafana.com/grafana/dashboards/17100-cosmos-node-monitoring-from-neobase/
Теперь можно мониторить все метрики