带你搞懂如何部署zabbix监控?

一、监控概述

1、监控的目的?
报告系统运行状况:吞吐量 反应时间 使用率
提前发现问题:性能调整、系统瓶颈

2、监控的资源类别
公开数据:Web FTP SSH 数据库 TCP/UDP
私有数据:CPU 内存 磁盘 网卡 用户 进程

3、系统监控命令

ps 				//ps -aux 进程信息
uptime			//cpu平均负载 1 5 15分钟信息
free			//内存和交换分区信息
swapon -s		//交换分区信息
df -h			//磁盘信息
ifconfig		//网卡信息
netstat  ss		//ss -atnup 端口信息
ping			//网络连通信息
traceroute		//跟踪路由 traceroute 192.168.4.2
iostat			//yum -y install sysstat 磁盘IO
sar				//sar 1 (每隔1秒钟) 1 (取1次cpu信息)

4、自动化监控系统
Cacti 绘图能力强
Nagios 报警快速,插件多,绘图差
Zabbix 绘图能力强,监控机制多,分布式监控

5、监控拓扑
1)监控服务器
监控服务器通过SNMP或Agent采集数据
数据可以写入MySQL,Oracle等数据量
服务器使用LNMP实现web前端的管理
2)被监控主机
被监控主机需要安装Agent
常见的网络设备一般支持SNMP

二、LNMP环境准备

1、安装前准备
监控服务器
设置主机名:zabbixserver
设置IP地址:192.168.2.5
关闭防火墙、SElinux
监控客户端
主机web1:192.168.2.100
主机web2:192.168.2.200
关闭防火墙,SElinux

#sed -i /^SELINUX/s/enforcing/permissive /etc/selinux/config //关闭SElinux
#yum -y install vim psmisc net-tools bash-completion //安装软件包

2、部署LNMP,安装nginx及依赖包

[root@zabbixserver ~]# yum -y install gcc make pcre-devel openssl-devel	//安装源码依赖包
[root@zabbixserver ~]# tar -xf /lnmp_soft.tar.gz 
[root@zabbixserver ~]# cd lnmp_soft/
[root@zabbixserver ~]# tar -xf nginx-1.17.6.tar.gz 
[root@zabbixserver ~]# cd nginx-1.17.6/
[root@zabbixserver ~]# ./configure --with-http_ssl_module //编译
[root@zabbixserver ~]# make && make install	//配置 安装
[root@zabbixserver ~]# yum -y install php php-fpm php-mysql mariadb mariadb-server mariadb-devel

3、修改nginx配置

[root@zabbixserver ~]# vim /usr/local/nginx/conf/nginx.conf
//配置动态界面和php缓存
        fastcgi_buffers 8 16k;
        fastcgi_buffer_size 32k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }

4、启动服务、设置开机自启动

[root@zabbixserver ~]# /usr/local/nginx/sbin/nginx	//启动服务
[root@zabbixserver ~]# systemctl restart php-fpm mariadb
[root@zabbixserver ~]# systemctl enable php-fpm mariadb
[root@zabbixserver ~]# vim /usr/lib/systemd/system/nginx.service //nginx开机自启
[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[root@zabbixserver ~]# systemctl enable nginx			

5、测试界面

[root@zabbixserver ~]# vim /usr/local/nginx/html/test.php	//创建test.php测试界面
<?php
$i=33;
echo $i;
?>
[root@zabbixserver ~]# curl 192.168.2.5/test.php			//访问,验证结果为33

三、安装Zabbix
搭建思路
1、安装zabbix
2、初始化数据库,授权导库
3、安装php依赖,修改php配置文件,启动服务
4、被管理主机安装zabbix,配置Server服务端

1、安装软件

[root@zabbixserver ~]# cd lnmp_soft/
[root@zabbixserver ~]# tar -xf zabbix-3.4.4.tar.gz 
[root@zabbixserver ~]# cd zabbix-3.4.4/
[root@zabbixserver ~]# yum -y install curl-devel net-snmp-devel libevent-devel
[root@zabbixserver ~]# which mysql_config
[root@zabbixserver ~]# ./configure --enable-server --enable-proxy --enable-agent --with-net-snmp --with-libcurl --with-mysql=/usr/bin/mysql_config
[root@zabbixserver ~]# make install
[root@zabbixserver ~]# ls /usr/local/etc/
zabbix_agentd.conf    zabbix_proxy.conf.d   zabbix_agentd.conf.d  zabbix_server.conf
zabbix_proxy.conf     zabbix_server.conf.d
[root@zabbixserver ~]# ls /usr/local/bin/
zabbix_get  zabbix_sender
[root@zabbixserver ~]# ls /usr/local/sbin/
zabbix_agentd  zabbix_proxy  zabbix_server

2、初始化准备

[root@zabbixserver ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/database/mysql/
[root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < schema.sql 
[root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < images.sql 
[root@zabbixserver ~]# mysql -uzabbix -pzabbix zabbix < data.sql 
[root@zabbixserver ~]# cd lnmp_soft/zabbix-3.4.4/frontends/php/
[root@zabbixserver ~]# cp -a * /usr/local/nginx/html/
[root@zabbixserver ~]# chmod -R 777 /usr/local/nginx/html/*

3、安装依赖软件

[root@zabbixserver ~]# yum -y install php-gd php-xml php-ldap php-bcmath php-mbstring

4、修改PHP配置文件

[root@zabbixserver ~]# vim /etc/php.ini 
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 32M
max_input_time = 300
[root@zabbixserver ~]# systemctl restart php-fpm

在这里插入图片描述
在这里插入图片描述
5、启动服务

[root@zabbixserver ~]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
LogFile=/tmp/zabbix_server.log
[root@zabbixserver ~]# useradd zabbix
[root@zabbixserver ~]# zabbix_server
[root@zabbixserver ~]# ss -atnup | grep :10051

6、开机自启

[root@zabbixserver ~]# echo zabbix_server >> /etc/rc.local 
[root@zabbixserver ~]# echo zabbix_agentd >> /etc/rc.local 
[root@zabbixserver ~]# chmod +x /etc/rc.local

7、被监控主机配置,安装软件

[root@web1 ~]# yum -y install gcc make pcre-devel autoconf
[root@web1 ~]# tar -xf zabbix-3.4.4.tar.gz 
[root@web1 ~]# cd zabbix-3.4.4/
[root@web1 zabbix-3.4.4] ./configure --enable-agent
[root@web1 zabbix-3.4.4] make install
[root@web1 zabbix-3.4.4] ls /usr/local/etc/
[root@web1 zabbix-3.4.4] ls /usr/local/bin/
[root@web1 zabbix-3.4.4] ls /usr/local/sbin/

8、修改配置文件

[root@web1 zabbix-3.4.4] vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.2.5		//允许访问服务地址列表
ServerActive=192.168.2.5:10051		//监控服务器ip地址

9、启动服务

[root@web1 zabbix-3.4.4] useradd zabbix
[root@web1 zabbix-3.4.4] zabbix_agentd 
[root@web1 zabbix-3.4.4] ss -atnup | grep 10050

10、开机自启

[root@web1 zabbix-3.4.4] echo zabbix_agentd >> /etc/rc.local 
[root@web1 zabbix-3.4.4] chmod +x /etc/rc.local

四、基础监控

1、创建主机【配置>主机>创建主机】
在这里插入图片描述
在这里插入图片描述
2、选择模板【配置>主机>web1>模板】
在这里插入图片描述
3、查看web1的最新数据【检测中>最新数据>主机】
在这里插入图片描述
在这里插入图片描述

五、自定义监控

1、自定义key,被监控端修改Agent配置文件

[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1
Include=/usr/local/etc/zabbix_agentd.conf.d/

2、创建定义key

[root@web1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[root@web1 zabbix_agentd.conf.d]# Include=/usr/local/etc/zabbix_agentd.conf.d/
UserParameter=count.line.passwd,sed -n '$=' /etc/passwd

3、重启Agentd

[root@web1 zabbix_agentd.conf.d]# killall zabbix_agentd
[root@web1 zabbix_agentd.conf.d]# abbix_agentd 

4、测试定义的key是否生效

[root@web1 zabbix_agentd.conf.d]# zabbix_get -s 127.0.0.1 -k count.line.passwd 
[root@web1 zabbix_agentd.conf.d]# useradd tom
[root@web1 zabbix_agentd.conf.d]# useradd lisi ...

5、登录监控服务器Web管理界面,创建监控模板【配置>模板】
在这里插入图片描述
在这里插入图片描述
6、创建应用【配置>主机>应用集】在这里插入图片描述
在这里插入图片描述
7、创建监控项目【配置>主机>监控项】
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker是一种容器化技术,可以方便地部署和管理应用程序。Zabbix是一种流行的开源监控系统,可以监控服务器、网络设备和应用程序等。在Docker中部署Zabbix监控集群可以提高系统的可靠性和可扩展性。 要部署Zabbix监控集群,需要先创建一个Docker镜像,其中包含Zabbix Server和Zabbix Agent。可以使用Dockerfile文件来定义镜像的构建过程。然后,可以使用Docker Compose来定义和管理多个容器的部署和运行。 在Docker Compose文件中,需要定义Zabbix Server和Zabbix Agent的容器,并指定它们的网络配置和环境变量。可以使用Docker Swarm来管理多个Docker节点,以实现高可用性和负载均衡。 最后,可以使用Zabbix Web界面来配置和管理监控项、触发器和报警等。通过Docker部署Zabbix监控集群,可以简化部署和管理过程,提高系统的可靠性和可扩展性。 ### 回答2: Docker和Zabbix都是开源软件,可在各种操作系统上部署和使用。Docker可以帮助我们简化部署和管理多个容器的过程,而Zabbix则是一种开源监控解决方案,能够对各种设备和应用程序进行监控、报警和分析。在Docker中,我们可以利用容器来部署Zabbix监控集群,达到扩展和分布式监控的目的。 1. 首先,我们需要安装Docker和Docker Compose。安装完成后,我们可以创建一个新的Zabbix监控服务的Docker镜像。为此,我们可以使用类似以下命令的Dockerfile: FROM zabbix/zabbix-server-pgsql:alpine-3.2-latest # Install additional packages RUN apk add --update \ supervisor \ nginx \ php7-fpm \ php7-json \ php7-mysqli \ php7-session \ php7-simplexml \ php7-xml \ php7-xmlrpc \ && rm -rf /var/cache/apk/* # Configure services COPY nginx.conf /etc/nginx/nginx.conf COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY php-fpm.ini /etc/php7/php-fpm.d/www.conf RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log COPY entrypoint.sh / EXPOSE 80 EXPOSE 10051/TCP ENTRYPOINT ["/entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"] 其中entrypoint.sh是一个脚本,用于检查是否已经创建数据库和zabbix配置文件,并自动执行启动脚本。该脚本如下: #!/bin/sh set -e if [ ! -d "/var/lib/zabbix/alertscripts" ]; then mkdir -p /var/lib/zabbix/alertscripts cp /usr/share/zabbix/alertscripts/* /var/lib/zabbix/alertscripts/ -r chown -R zabbix.zabbix /var/lib/zabbix/alertscripts fi if [ ! -d "/var/lib/zabbix/modules" ]; then mkdir -p /var/lib/zabbix/modules chown -R zabbix.zabbix /var/lib/zabbix/modules fi if [ ! -d "/etc/zabbix/web" ]; then mkdir -p /etc/zabbix/web cp /usr/share/zabbix/conf/* /etc/zabbix/web/ chown -R zabbix.zabbix /etc/zabbix/web fi if [ ! -f "/etc/zabbix/zabbix_server.conf" ]; then cp /usr/share/zabbix/conf/zabbix_server.conf /etc/zabbix/ chown -R zabbix.zabbix /etc/zabbix fi if [ ! -f "/var/lib/postgresql/data/zabbix.sql" ]; then chown postgres.postgres /var/lib/postgresql/data su -c "/usr/bin/pg_ctl -D /var/lib/postgresql/data start" postgres su -c "psql -c \"CREATE USER zabbix WITH PASSWORD 'zbxpass';\"" postgres su -c "createdb -O zabbix zabbix" postgres su -c "/usr/bin/pg_ctl -D /var/lib/postgresql/data stop" postgres fi exec "$@" 2. 然后,我们可以使用Docker Compose创建一个Zabbix监控集群。我们将使用Zabbix Server、Zabbix Agent以及PostgreSQL数据库容器。可以使用以下配置文件: version: '3' services: db: image: postgres:9.6 volumes: - db_data:/var/lib/postgresql/data environment: - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zbxpass - POSTGRES_DB=zabbix ports: - "5432:5432" networks: - zbx_net zabbix_server: build: . volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./supervisord.conf:/etc/supervisor/conf.d/supervisord.conf - ./php-fpm.ini:/etc/php7/php-fpm.d/www.conf - zabbix_data:/var/lib/zabbix environment: - DB_SERVER_HOST=db - DB_SERVER_PORT=5432 - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zbxpass - POSTGRES_DB=zabbix ports: - "80:80" - "10051:10051" depends_on: - db networks: - zbx_net zabbix_agent: image: zabbix/zabbix-agent2:alpine-3.13-latest environment: - ZBX_HOSTNAME=zabbix-agent networks: - zbx_net volumes: db_data: driver: local zabbix_data: driver: local networks: zbx_net: 3. 在保存Docker Compose配置文件后,您可以通过以下命令创建并启动Zabbix监控集群: docker-compose up -d 4. 容器启动后,可以访问Zabbix Web界面并使用默认凭据登录。默认用户名和密码分别为Admin和zabbix。接下来,您可以开始监控您的设备和应用程序。 综上所述,我们可以使用Docker和Docker Compose来部署Zabbix监控集群。这种方法方便、可扩展和易于管理,能够让我们快速构建和部署一个强大的监控系统。 ### 回答3: Docker是一个开源的容器化应用平台,它可以帮助我们将应用程序和服务打包成一个容器,这样就可以更快速、更有效地部署和运行它们。而Zabbix是一款功能强大的监控软件,它可以帮助我们监测网络通信、服务器性能等。通过将Zabbix部署在Docker容器中,可以实现快速部署和升级。 在部署Zabbix集群之前,我们需要准备好Docker环境。首先,我们需要在主机上安装Docker Engine和Docker Compose。然后,我们需要创建一个Docker镜像,包含Zabbix Server和Zabbix Agent。可以使用Dockerfile文件来定义该镜像的构建过程。例如,我们可以通过以下方式构建Zabbix镜像: ```dockerfile FROM ubuntu:20.04 RUN apt-get update && apt-get -y install wget \ && wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb \ && dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb \ && rm -f zabbix-release_5.2-1+ubuntu20.04_all.deb \ && apt-get update \ && apt-get -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent mysql-client \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* EXPOSE 80 10050 CMD ["/bin/bash"] ``` 在这个Dockerfile中,我们首先从Ubuntu官方镜像开始构建。然后,我们下载最新的Zabbix Release,并安装Zabbix Server、Zabbix Agent、Zabbix Web等软件包。最后,我们暴露了80和10050两个端口,并在容器启动时启动Bash shell。 接下来,我们需要使用Docker Compose来编排这个镜像的部署。以下是一个简单的docker-compose.yml文件的示例: ```yml version: '3.2' services: zabbix-db: image: mysql:5.7 volumes: - ./data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: zabbix MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix zabbix-server: build: . volumes: - ./zabbix-server.conf:/etc/zabbix/zabbix_server.conf environment: DB_SERVER_HOST: zabbix-db MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix MYSQL_DATABASE: zabbix ports: - 80:80 zabbix-agent: image: zabbix/zabbix-agent:latest environment: ZBX_SERVER_HOST: zabbix-server ZBX_SERVER_PORT: 10051 ZBX_HOSTNAME: zabbix-agent ports: - 10050:10050 ``` 在这个docker-compose.yml文件中,我们定义了3个容器服务,分别是: 1. zabbix-db:MySQL数据库容器服务,用于存储Zabbix Server的监控数据。 2. zabbix-server:Zabbix Server容器服务,包含Zabbix Server和Zabbix Web等组件。 3. zabbix-agent:Zabbix Agent容器服务,用于监控其他容器的性能指标。 在这个文件中,我们还定义了一些环境变量和卷,以保证容器之间的数据共享。最后,我们将Zabbix Web的端口暴露给主机,以方便用户访问Zabbix监控界面。 在完成docker-compose.yml文件的编写后,我们可以使用以下命令来启动Zabbix集群: ```bash docker-compose up -d ``` 总之,使用Docker可以轻松地部署Zabbix监控集群,以帮助我们更好地监控和管理我们的应用程序和服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值