@lsyAndroid
2019-05-12T23:46:41.000000Z
字数 9728
阅读 1209
运维向
CentOS7.6,内核版本3.1,承载Nginx服务和Zabbix+Grafana服务
四台IIS服务
WinServer2012
四台SQLServer服务
WinServer2016 + SQLServer2016
一台FileServer
WinServer2016
针对nginx监控
配置报警
标签(空格分隔): 运维向
CentOS7.6,内核版本3.10,承载Nginx服务和Zabbix+Grafana服务。需要注意的是,Docker 目前支持 CentOS 7 及以后的版本,内核要求至少为 3.10。
四台IIS服务
WinServer2012
四台SQLServer服务
WinServer2016 + SQLServer2016
一台FileServer
WinServer2016
zabbix安装和部署--利用docker进行安装部署
CentOS安装docker
注意:Docker 需要用到 centos-extra 这个源,如果您关闭了,需要重启启用,可以参考 Available Repositories for CentOS。
卸载旧版本
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
旧版本的内容在 /var/lib/docker 下,目录中的镜像(images), 容器(containers), 存储卷(volumes), 和 网络配置(networks)都可以保留。
Docker CE 包,目前的包名为 docker-ce。Docker现在分为两个版本,Docker CE和Docker EE
其中Docker CE为开源版,Docker EE为企业版
安装准备
为了方便添加软件源,支持 devicemapper 存储类型,安装如下软件包
$ sudo yum update$ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
添加 yum 软件源
添加 Docker 稳定版本的 yum 软件源
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo```- 安装 Docker更新一下 yum 软件源的缓存,并安装 Docker。```$ sudo yum update$ sudo yum install docker-ce```如果弹出 GPG key 的接收提示,请确认是否为 **060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35**,如果是,可以接受并继续安装。至此,Docker 已经安装完成了,Docker 服务是没有启动的,操作系统里的 docker 组被创建,但是没有用户在这个组里。**注意:**默认的 docker 组是没有用户的(也就是说需要使用 sudo 才能使用 docker 命令)。您可以将用户添加到 docker 组中(此用户就可以直接使用 docker 命令了)。加入 docker 用户组命令:```$ sudo usermod -aG docker USER_NAME
用户组更新信息后,重新登录系统生效。
$ yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
可以指定版本安装,版本号可以忽略 : 和 el7,如 docker-ce-18.09.1
$ sudo yum install docker-ce-<VERSION STRING>
至此,指定版本的 Docker 也安装完成,同样,操作系统内 docker 服务没有启动,只创建了 docker 组,而且组里没有用户。
启动docker
如果想添加到开机启动
$ sudo systemctl enable docker```启动 docker 服务```$ sudo systemctl start docker
验证安装
验证 Docker CE 安装是否正确,可以运行 hello-world 镜像
$ sudo docker run hello-world```- 更新和卸载Docker CE```# 更新 Docker CE$ sudo yum update docker-ce# 卸载 Docker CE$ sudo yum remove docker-ce```- 删除本地文件注意,docker 的本地文件,包括镜像(images), 容器(containers), 存储卷(volumes)等,都需要手工删除。默认目录存储在 /var/lib/docker。```$ sudo rm -rf /var/lib/docker
通过docker安装zabbix服务
首先需要把镜像下载下来,分为以下四个
# 下载镜像$sudo docker pull mysql$sudo docker pull zabbix/zabbix-java-gateway$sudo docker pull zabbix/zabbix-server-mysql$sudo docker pull zabbix/zabbix-web-apache-mysql
然后挨个进行启动
# mysql$ sudo docker run --name mysql-server -t \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-p 127.0.0.1:3306:3306 \-d mysql:5.7 \--character-set-server=utf8 --collation-server=utf8_bin# zabbix-java-gateway$sudo docker run --name zabbix-java-gateway -t \-d zabbix/zabbix-java-gateway:latest# zabbix-server-mysql$sudo docker run --name zabbix-server-mysql -t \--link mysql-server:mysql \-e DB_SERVER_HOST="mysql-server" \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-p 10051:10051 \-d \zabbix/zabbix-server-mysql:centos-4.0-latest# zabbix-web-apache-mysql$sudo docker run --name zabbix-web-nginx-mysql -t \--link mysql-server:mysql \--link zabbix-server-mysql:zabbix-server \-e DB_SERVER_HOST="mysql-server" \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-e PHP_TZ="Asia/Singapore" \-p 80:80 \-d \zabbix/zabbix-web-nginx-mysql:centos-4.0-latest
注意:
至此,zabbix服务端就部署完毕了,可以通过浏览器访问localhost:80进行访问了。
```
docker info
docker pull image_name
docker pull centos:latest
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 5.7 1b30b36ae96a 8 days ago 372MB
zabbix/zabbix-web-nginx-mysql centos-4.0-latest 8be5f91b2fa1 3 weeks ago 415MB
zabbix/zabbix-server-mysql centos-4.0-latest 8e5becf45c4e 3 weeks ago 326MB
docker rmi image_name/image_id
docker rmi zabbix/zabbix-web-nginx-mysql:centos-4.0-latest 或者 docker rmi 8be5f91b2fa1
docker ps
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b30307ad65be zabbix/zabbix-web-nginx-mysql:centos-4.0-latest "docker-entrypoint.sh" 7 days ago Exited (255) 8 minutes ago 443/tcp, 0.0.0.0:8080->80/tcp zabbix-web-nginx-mysql
0ad822cd52b7 zabbix/zabbix-server-mysql:centos-4.0-latest "docker-entrypoint.sh" 7 days ago Exited (255) 8 minutes ago 0.0.0.0:10051->10051/tcp zabbix-server-mysql
d01c89a112f7 mysql:5.7 "docker-entrypoint.s…" 7 days ago Exited (255) 8 minutes ago 3306/tcp, 33060/tcp mysql-server
docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id
docker attach container_name/container_id
docker rm container_name/container_id
docker logs -f container_name/container_id
docker inspect container_name/container_id
docker exec -it container_name/container_id bash
[root@localhost tmp]# docker cp --help
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
docker cp zabbix_config.sql mysql-server:/tmp
docker cp mysql-server:/tmp/zabbix_config.sql /tmp
docker rm -v $(docker ps -aq -f status=exited)
[root@centos7lined1 wangao]# docker help
Usage: docker [OPTIONS] COMMAND
A self-sufficient runtime for containers
Options:
--config string Location of client config files (default "/root/.docker")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit
Management Commands:
config Manage Docker configs
container Manage containers
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes
Commands:
attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
````
zabbix agent安装
LVS
直接安装,从软件源安装二进制包:
# 安装客户端$ sudo yum install zabbix-agent```安装完成之后,进行启动:```$ sudo service zabbix-agent start#或者执行以下命令:$ sudo systemctl start zabbix-agent# 停止、重启、查看状态,则需要执行以下命令:$ sudo service zabbix-agent stop$ sudo service zabbix-agent restart$ sudo service zabbix-agent status
编译安装(暂时不写)
WinServer
然后我们需要将其配置为系统服务并进行启动:
# cmd需要以管理员身份运行# 安装C:\ZabbixAgent\bin\zabbix_agentd.exe -c c:\ZabbixAgent\conf\zabbix_agentd.win.conf -i# 启动C:\ZabbixAgent\bin\zabbix_agentd.exe -c C:\ZabbixAgent\conf\zabbix_agentd.win.conf -i
操作完成之后需要从任务管理器里面查看是否存在ZabbixAgent服务,如果存在说明启动成功。
数据监控
针对win server
如果只是针对WinServer进行监控,不需要对Zabbix agent进行脚本的配置更改。
#日志文件存储位置LogFile=c:\ZabbixAgent\zabbix_agentd.log#zabbix主控端ip地址,也就是Server的地址Server=192.168.1.132#本机名,也可以在cmd下使用hostname命令获得,可以进行自定义Hostname=WinServer#zabbix主控端ip地址ServerActive=192.168.1.132
然后安装再重启即可。
创建WinServer主机
步骤如下:
查看上报数据
这样通过监测->图形,选择自己要监控的主机和监控数据类型,即可看到监控数据上报。如下图所示:
参数指标详解
针对linux server
如果只是针对WinServer进行监控,不需要对Zabbix agent进行脚本的配置更改。
注意:
1. agent部分所在服务器要开放10050和10051端口
2. agent部分所在服务器的配置文件内的Hostname,同创建主机时主机名称一致,如果不一致,无法看到主机的监控数据
3.