【Linux】在docker上部署grafana+zabbix監控實錄

-------------------------------------------------------------------------------------------------  

| 歡迎關注個人公衆號 zclinux_note 第一時間獲取關於linux使用的技巧。探索Linux的奧祕 |  

-------------------------------------------------------------------------------------------------

環境:CentOS7  

內核:3.10.0-957.el7.x86_64 

grafana+zabbix-server主機IP:192.168.25.100

zabbix_agent 主機IP:192.168.25.10

 

前提:需要事先停止selinux,iptables,firewalld服務

 

1.首先安裝docker

 

(1)配置阿里雲repo

yum install wget -y

wget -O /etc/yum.repos.d/CentOS7-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all 

yum makecache fast

(2)清除系統上原有老版本docker

 

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

(3)安裝docker

安裝自己的docker,我這裏安裝的是18.0.6的docker

安裝環境依賴

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

下載阿里雲的docker的repo文件

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安裝docker

yum install docker-ce-18.06.0.ce -y

systemctl enable docker

systemctl start docker

查看docker版本是否正確

docker version

[root@docker ~]# docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:08:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:10:42 2018
  OS/Arch:          linux/amd64
  Experimental:     false

配置阿里docker鏡像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://bxdltesm.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

 

2.安裝完成後,再創建相關目錄環境

mkdir -p /data/zabbix/mysql

useradd mysql

chown -R mysql.mysql /data/zabbix/mysql

 

3.開始安裝zabbix-mysql,zabbix-nginx,zabbix-server

這裏強調一點,zabbix和server,agent,還有grafana都是最新版,在容器啓動的最後一行都是latest,如果需要特殊版本,需要特別指定

先啓動數據庫容器

docker run --name mysql-server -t \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="zabbix_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

-v /data/zabbix/mysql:/var/lib/mysql \

-d mysql:5.7

 

 啓動zabbix-mysql服務端容器

docker run --name zabbix-server-mysql -t \

-e DB_SERVER_HOST="mysql-server" \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="zabbix_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

--link mysql-server:mysql \

-p 10051:10051 \

-d zabbix/zabbix-server-mysql:latest

啓動zabbix-server容器

docker run --name zabbix-web-nginx-mysql -t \

-e DB_SERVER_HOST="mysql-server" \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="zabbix_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

--link mysql-server:mysql \

--link zabbix-server-mysql:zabbix-server \

-p 80:80 \

-d zabbix/zabbix-web-nginx-mysql:latest

 

4.安裝agent,客戶端需要修改ip,其實也可以手動安裝

docker run --name zabbix-agent \

-e ZBX_HOSTNAME="zabbix-agent"  \

-e ZBX_SERVER_HOST="192.168.25.100" \

-p 10050:10050 \

--privileged \

-d zabbix/zabbix-agent:latest

 

手動安裝zabbix-agent步驟

登陸該網站,選擇自己的zabbix-server的版本(查看版本的方法是zabbix_server -V)

https://www.zabbix.com/download

然後看到下面有rpm -Uvh的命令,將其複製並執行再agent的服務器上

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

 

我這裏是4.4的版本

完成後,執行yum install -y zabbix-agent

完成後,手動修改/etc/zabbix/zabbix-agentd.conf文件中的serverip,serveractive,

全部完成後,重啓agent進程

systemctl restart zabbix-agent

查看監聽端口10050是否被監聽

至此,agent全部安裝完成

 

5.安裝grafana

用戶名密碼都是admin

docker run -d --name=grafana -p 3000:3000 grafana/grafana

所有容器啓動後,查看容器是否都正常運行

[root@docker ~]# docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED                  STATUS                  PORTS                         NAMES
96b983e4ca77        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   Less than a second ago   Up Less than a second   0.0.0.0:80->80/tcp, 443/tcp   zabbix-web-nginx-mysql
1400794e747c        zabbix/zabbix-agent:latest             "/sbin/tini -- /usr/?   Less than a second ago   Up Less than a second   0.0.0.0:10050->10050/tcp      zabbix-agent
2695290c1afe        grafana/grafana                        "/run.sh"                21 hours ago             Up Less than a second   0.0.0.0:3000->3000/tcp        grafana
bf70f93e0a1c        zabbix/zabbix-server-mysql:latest      "/sbin/tini -- /usr/?   21 hours ago             Up Less than a second   0.0.0.0:10051->10051/tcp      zabbix-server-mysql
efd6f9b4460e        mysql:5.7                              "docker-entrypoint.s?   21 hours ago             Up Less than a second   3306/tcp, 33060/tcp           mysql-server

打開zabbix的網頁管理界面

http://192.168.25.100/zabbix

這裏無需setup,容器已經都自動安裝配置好,登陸直接就是控制檯

分別點擊【配置】 --> 【主機】-->【創建主機】

配置模板

完成後點擊保存(因爲我已經添加過了,所以顯示的是更新按鈕)

顯示爲綠色證明agent已經被server端監控好了

 

下面查看grafana是否安裝成功

http://192.168.25.100:3000

賬號密碼都是admin,第一次登陸會強制修改密碼

進入之後,需要創建新用戶

 

 

 

 

點擊邀請

創建的用戶可以分配不同權限,我這裏給了編輯權限,郵件選擇不發送

點擊複製邀請連接,在瀏覽器新界面點開

複製出來的地址可能是localhost,需要將其修改爲本地server的ip,我這裏是192.168.25.100

密碼完成後,會自動登陸

6.安裝grafana的zabbix插件

登陸到grafana的容器中操作

# docker exec -it grafana /bin/bash

root@a92fe62a4475:/# grafana-cli plugins install alexanderzobnin-zabbix-app

會提示一些信息,等待完成                                                                 

root@a92fe62a4475:/# exit

重啓grafana容器

docker restart grafana

完成後,再次進入到grafana的控制檯,使用admin用戶

找到zabbix

點擊enable,然後看下是否有更新update一下

完成後,進入到data sources中,配置zabbix的api

開始配置


成功後,會提示綠色的對勾

然後到上面找到這個

點擊導入import

其中配置這個地方的時候,地址的url寫的有問題,寫成了http//192.168.25.100/zabbix/api_jsonrpc.php

結果一直提示file not found.....

查了一些關於php的,也查看了配置文件,都是正常,最後要查的地方是nginx的配置

進入到容器中

[root@docker ~]# docker exec -it 96b983e4ca77  /bin/bash

找到nginx的配置文件

vi /etc/nginx/conf.d/下的nginx.conf文件

發現,nginx的配置直接就是在zabbix下的,

原來是烏龍,重新配置後才真正生效,網上也有直接配置http://192.168.25.100/zabbix的,雖然也生效,但是api接口不正確,最後獲取不到正確的數據的

7.簡單創建監控項

如果配置都正確的話,前面的group和host都好後,application和item會自動彈出監控項

這樣配置的api才正確

找到想監控的監控項後,修改名稱

最後,點擊保存,保存在標題欄上,一定要保存

這就是全部完整的流程

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章