十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
CentOS 7.5
IP:192.168.1.2
grafana-5.1.4
PostgreSQL-10、pg_stat_statements模塊
InfluxDB-1.5.3
Python3
#關(guān)閉selinux以及firewalld。
##自行安裝以上應(yīng)用?。?!本文不提供安裝過程?。?!
vi /var/lib/pgsql/10/data/postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
track_io_timing = on
#編輯postgresql.conf配置文件,添加如下兩行(前提:裝好pg_stat_statements模塊
vi /var/lib/pgsql/10/data/pg_hba.conf
local all all peer
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
#修改認(rèn)證模式,通過127.0.0.1訪問的用戶不需要密碼認(rèn)證
#為了安全請自行配置,pg_hba.conf配置文件詳解請自行百度~~
十余年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站定制,個人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設(shè)計流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù),專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁制作,對成都紗窗等多個方面,擁有多年的網(wǎng)站設(shè)計經(jīng)驗。
systemctl restart postgresql-10.service
#重啟數(shù)據(jù)庫
mkdir /app && cd /app
git clone https://github.com/cybertec-postgresql/pgwatch3.git
#克隆源碼倉庫,有一些東西需要用到。
su - postgres
psql -c "create user pgwatch3_grafana password 'xyz'"
psql -c "create database pgwatch3_grafana owner pgwatch3_grafana"
psql -c "create user pgwatch3 password 'xyz'"
psql -c "create database pgwatch3 owner pgwatch3"
psql -f /app/pgwatch3/pgwatch3/sql/datastore_setup/config_store.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/datastore_setup/metric_definitions.sql pgwatch3
#切換至postgre用戶以便操作數(shù)據(jù)庫。
#創(chuàng)建pgwatch3_grafana、pgwatch3用戶并設(shè)置密碼。
#創(chuàng)建pgwatch3_grafana、pgwatch3數(shù)據(jù)庫并設(shè)置所屬主。
#導(dǎo)入pgwatch3的數(shù)據(jù)。
vi /etc/influxdb/influxdb.conf
[http]
enabled = true
bind-address = "127.0.0.1:8086"
#修改配置文件,將http端的bind-address修改成127.0.0.1
#因為是做監(jiān)控用的,所以不做認(rèn)證,但僅允許本地地址訪問。
systemctl start influxdb
#啟動InfluxDB
influx
CREATE USER "pgwatch3" WITH PASSWORD 'xyz'
CREATE DATABASE pgwatch3
use pgwatch3
GRANT ALL ON pgwatch3 to "pgwatch3"
#創(chuàng)建pgwatch3用戶以及同名的數(shù)據(jù)庫,并且授權(quán)。
vi /etc/grafana/grafana.ini
[database]
type = postgres
host = 127.0.0.1:5432
name = pgwatch3_grafana
user = pgwatch3_grafana
password = xyz
#將Grafana的數(shù)據(jù)存入postgresql
http://192.168.1.2:3000
#訪問Grafana的web頁面進(jìn)行配置
#默認(rèn)用戶名與密碼:admin
#開始配置儀表盤
#源碼倉庫中:pgwatch3/grafana_dashboards/v5/路徑下就是所有的儀表盤內(nèi)容,每個文件夾為一個儀表盤
#每個文件夾內(nèi)都含有dashboard.json文件,把這個文件導(dǎo)入即可
#這里為了展示效果我就只導(dǎo)入一個:db-overview/dashboard.json
#github網(wǎng)頁上的會比較好復(fù)制,復(fù)制網(wǎng)頁中的所有內(nèi)容:
#https://raw.githubusercontent.com/cybertec-postgresql/pgwatch3/master/grafana_dashboards/v5/db-overview/dashboard.json
cd /app/pgwatch3/
pip3 install -U -r webpy/requirements.txt
cd webpy
python3 web.py
#進(jìn)入pgwatch目錄,pip安裝一些依賴庫
#執(zhí)行web.py
#訪問web頁面進(jìn)行下一步配置
#配置被監(jiān)控數(shù)據(jù)庫的信息,注意,這里填的是被監(jiān)控數(shù)據(jù)庫的信息?。?!
#也就是你要在對應(yīng)的數(shù)據(jù)庫創(chuàng)建用戶并且授權(quán),然后啟用pg_stat_statements模塊
#我這里僅僅只監(jiān)控本機(jī)上的pgwatch3數(shù)據(jù)庫。
#配置被監(jiān)控的數(shù)據(jù)庫
#這里我就只監(jiān)控pgwatch3數(shù)據(jù)庫
su - postgres
psql -d pgwatch3 -c "CREATE EXTENSION pg_stat_statements;"
psql -d pgwatch3 -c "CREATE EXTENSION plpythonu;"
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/stat_activity_wrapper.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/stat_statements_wrapper.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/cpu_load_plpythonu.sql pgwatch3
psql -f /app/pgwatch3/pgwatch3/sql/metric_fetching_helpers/table_bloat_approx.sql pgwatch3
#官方說明:https://github.com/cybertec-postgresql/pgwatch3#steps-to-configure-your-database-for-monitoring
#編譯pgwatch3程序
yum install go -y
cd /app/pgwatch3/pgwatch3
./build_gatherer.sh
#安裝go語言環(huán)境,進(jìn)入pgwatch3目錄,執(zhí)行build_gatherer.sh開始編譯
#這個過程會比較慢,因為會到github上下載東西,一定要保證電腦可以ping通github
#編譯完成后會生成一個pgwatch3的可執(zhí)行文件
./pgwatch3
#運(yùn)行pgwatch3程序
#因為剛才設(shè)置的所有賬戶密碼跟pgwatch3程序默認(rèn)值是一致的,所有直接運(yùn)行即可
#若不一致,請自行使用./pgwatch3 --help查看幫助
#執(zhí)行不報錯,接下來去Grafana看數(shù)據(jù)就行了!??!
#最后,把pgwatch3配置成可以用systemctl方式啟動
#把下面的內(nèi)容粘貼到/etc/systemd/system/pgwatch3.service
#然后就可以用systemctl start 啟動啦
#注意,通過這個方式啟動,所有的輸出信息都會在/var/log/messages
[Unit]
Description=pgwatch3
After=syslog.target
After=network.target
[Service]
User=root
Restart=on-failure
PIDFile=/tmp/pgwatch3.pid
KillMode=control-group
ExecStart=/app/pgwatch3/pgwatch3/pgwatch3
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target