1. 程式人生 > 其它 >docker執行prometheus 監控mysql

docker執行prometheus 監控mysql

安裝docker
配置阿里雲Docker Yum源
[root@xingdian ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 git
[root@xingdian ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝Docker新版本(比如Docker 2010.2):
[root@xingdian ~]# yum install docker-ce-20.10.2.ce -y
或者
[root@xingdian 
~]# yum install docker-ce -y 啟動Docker服務 [root@xingdian ~]# systemctl enable docker [root@xingdian ~]# systemctl start docker 檢視docker版本狀態 [root@xingdian ~]# docker -v Docker version 19.03.12, build 48a66213fe 檢視docker執行狀態: [root@xingdian ~]# docker info Client: Debug Mode: false Server: Containers: 0 Running:
0 Paused: 0 Stopped: 0 Images: 3 Server Version: 19.03.12 Storage Driver: overlay2 Backing Filesystem: extfs Supports d_type: true Native Overlay Diff: true Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host ipvlan macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json
-file local logentries splunk syslog Swarm: inactive Runtimes: runc Default Runtime: runc Init Binary: docker-init containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd init version: fec3683 Security Options: seccomp Profile: default Kernel Version: 3.10.0-1062.12.1.el7.x86_64 Operating System: CentOS Linux 7 (Core) OSType: linux Architecture: x86_64 CPUs: 4 Total Memory: 7.637GiB Name: xingdian ID:DW7V:VN63:7P5F:X36D:UPXA:WSXK:NVXU:FG4E:UIKY:ISIZ:AVW3:3RXT Docker Root Dir: /var/lib/docker Debug Mode: false Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false 方法 2:配置映象加速器 [root@xuegod63 ~]# tee /etc/docker/daemon.json << 'EOF' { "registry-mirrors":["https://rsbud4vc.mirror.aliyuncs.com" } EOF 重啟 docker 服務使配置生效 [root@xuegod63 ~]# systemctl daemon-reload && systemctl restart docker

prometheus安裝

下載映象包
docker pull prom/node-exporter docker pull prom/prometheus docker pull grafana/grafana
啟動node-exporter
docker run -d -p 9100:9100 \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
prom/node-exporter
等待幾秒鐘,檢視埠是否起來了
root@ubuntu:~# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1147/sshd       
tcp        0     36 192.168.91.132:22       192.168.91.1:63648      ESTABLISHED 2969/0          
tcp        0      0 192.168.91.132:22       192.168.91.1:63340      ESTABLISHED 1321/1          
tcp6       0      0 :::9100                 :::*                    LISTEN      3070/node_exporter
訪問url:
http://192.168.91.132:9100/metrics
效果如下: 這些都是收集到資料,有了它就可以做資料展示了 啟動prometheus 新建目錄prometheus,編輯配置檔案prometheus.yml
mkdir /opt/prometheus
cd /opt/prometheus/
vim prometheus.yml
內容如下:
global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['192.168.91.132:9100']
        labels:
          instance: localhost
注意:修改IP地址,這裡的192.168.91.132就是本機地址 啟動prometheus
docker run  -d \
  -p 9090:9090 \
  -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus
等待幾秒鐘,檢視埠狀態
root@ubuntu:/opt/prometheus# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1147/sshd       
tcp        0     36 192.168.91.132:22       192.168.91.1:63648      ESTABLISHED 2969/0          
tcp        0      0 192.168.91.132:22       192.168.91.1:63340      ESTABLISHED 1321/1          
tcp6       0      0 :::9100                 :::*                    LISTEN      3070/node_exporter
tcp6       0      0 :::22                   :::*                    LISTEN      1147/sshd       
tcp6       0      0 :::9090                 :::*                    LISTEN      3336/docker-proxy
訪問url: http://192.168.91.132:9090/graph 效果如下: 訪問targets,url如下: http://192.168.91.132:9090/targets 效果如下: 如果狀態沒有UP起來,等待一會,就會UP了 啟動grafana 新建空資料夾grafana-storage,用來儲存資料
mkdir /opt/grafana-storage
設定許可權
chmod 777 -R /opt/grafana-storage
因為grafana使用者會在這個目錄寫入檔案,直接設定777,比較簡單粗暴! 啟動grafana
docker run -d \
  -p 3000:3000 \
  --name=grafana \
  -v /opt/grafana-storage:/var/lib/grafana \
  grafana/grafana
等待幾秒鐘,檢視埠狀態
root@ubuntu:/opt/prometheus# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1147/sshd       
tcp        0     36 192.168.91.132:22       192.168.91.1:63648      ESTABLISHED 2969/0          
tcp        0      0 192.168.91.132:22       192.168.91.1:63340      ESTABLISHED 1321/1          
tcp6       0      0 :::9100                 :::*                    LISTEN      3070/node_exporter
tcp6       0      0 :::22                   :::*                    LISTEN      1147/sshd       
tcp6       0      0 :::3000                 :::*                    LISTEN      3494/docker-proxy
tcp6       0      0 :::9090                 :::*                    LISTEN      3336/docker-proxy
tcp6       0      0 192.168.91.132:9100     172.17.0.2:55108        ESTABLISHED 3070/node_exporter
訪問url: http://192.168.91.132:3000/ 預設會先跳轉到登入頁面,預設的使用者名稱和密碼都是admin 登入之後,它會要求你重置密碼。你還可以再輸次admin密碼! 密碼設定完成之後,就會跳轉到首頁 點選Add data source,由於使用的是映象方式,所以版本比較新。和網路上的文章展示的圖片不一樣! name名字寫Prometheus type 選擇Prometheus,因為資料都從它那裡獲取 url 輸入Prometheus的ip+埠 點選下面的Save & Test,如果出現綠色的,說明ok了 mysql所在機器操作: 安裝mysql
mysql的官方網站:www.mysql.com
mysql最新版本:8.0
mysql使用最多:5.7
預設情況下:centos的倉庫裡沒有mysql,去官網下載mysql倉庫安裝包
1.下載mysql的yum倉庫
[root@22e34e653991 /]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.安裝mysql的yum倉庫
[root@22e34e653991 /]# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
3.修改安裝版本(方法一)
[root@22e34e653991 /]# yum repolist all | grep mysql 檢視所有關於mysql的庫
[root@22e34e653991 /]# yum -y install yum-utils yum的工具包
[root@22e34e653991 /]# yum-config-manager --enable mysql57-community 啟動mysql57
[root@22e34e653991 /]# yum-config-manager --disable mysql80-community 禁用mysql80
4.安裝資料庫
[root@22e34e653991 /]# yum -y install mysql mysql-server
修改yum倉庫(方法二)
systemctl start mysqld
5.檢視資料庫的初始密碼
[root@22e34e653991 /]# grep 'password' /var/log/mysqld.log
2019-07-13T15:14:31.176905Z 1 [Note] A temporary password is generated for root@localhost: k12zPB1r;2Ta
6.使用密碼登陸
[root@22e34e653991 /]# mysql -u root -p'k12zPB1r;2Ta'
7.修改密碼
方法一:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Cj@123';
方法二:
[root@22e34e653991 /]# mysqladmin -u root -p'k12zPB1r;2Ta' password 'cj@123'
密碼:大小寫有特殊字元數字
cp -ar mysqld_exporter /usr/local/bin/ chmod +x /usr/local/bin/mysqld_exporter 2.登陸 mysql 為 mysql_exporter 建立賬號並授權 # 建立資料庫使用者。
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'XXXXXXXX' WITH MAX_USER_CONNECTIONS 3;
# 對 mysql_exporter 使用者授權
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
exit 退出 mysql 3.建立 mysql 配置檔案、執行時可免密碼連線資料庫:
cd mysqld_exporter-0.10.0.linux-amd64
cat my.cnf
[client]
user=exporter
password=Abcdef123!.
host=127.0.0.1

host一定要寫

4.啟動 mysql_exporter 客戶端
nohup ./mysqld_exporter --config.my-cnf=./my.cnf &
mysqld_exporter 的監聽埠是 9104 5.修改 prometheus-alertmanager-cfg.yaml 檔案,新增如下
vim /opt/prometheus/prometheus.yml
- job_name: 'mysql'
static_configs:
- targets: ['192.168.40.180:9104']
重啟prometheus
root@ubuntu:/opt/prometheus# docker ps |grep prometheus
0fa256f85750        prom/prometheus     "/bin/prometheus --c…"   About an hour ago   Up 29 seconds       0.0.0.0:9090->9090/tcp   wizardly_kirch

root@ubuntu:/opt/prometheus# docker restart 0fa256f85750
grafana 匯入 mysql 監控圖表 mysql-overview_rev5.json 最後就有資料啦