NO.A.0005.zabbix_lnmp+zabbix.agent.编译安装/批量监控和100台设备/自动发现
一、安装客户端
1、Zabbix Server端和Zabbix Agent执行如下代码:
Zabbix监控平台部署,至少需要安装四个组件,分别是Zabbix_Server/Zabbix_Web/Databases/Zabbix_Agent如下为Zabbix.Agent安装配置详细步骤:
2、部署环境:
Server端 ————>192.168.1.59
Agent端 ————>192.168.1.60
CentOS版本 ————>CentOS 7.6.1810
ZABBIX版本 ————>Zabbix 4.0.19
部署zabbix_server,zabbix_agent
// zabbix源码下载地址(建议从官网下载):
// https://www.zabbix.com/download_sources#tab:40LTS
//OR
[root@localhost ~]#
> wget -c https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.25.tar.gz //-c:断点续传
[root@localhost ~]# md5sum zabbix-4.0.25.tar.gz //查看他的md5值
0694c540b1d014cdc5c6a50d361d77f2 zabbix-4.0.25.tar.gz
//因为zabbix基于C语言开发;安装编译时依赖包、库文件://本机不用安装,编译zabbix_server时已安装
[root@localhost ~]# yum -y install gcc curl curl-devel net-snmp net-snmp-devel perl-DBI
> libxml2-devel libevent-devel pcre mysql-devel
2、编译安装zabbix-agent
//解压zabbix-4.0.25.tar.gz
[root@localhost ~]# tar -xzvf zabbix-4.0.25.tar.gz
//-x extract解压,-z gzip压缩,-v verbose详细,-f file文件
//zabbix-server编译安装,需要通过源代码部署三个步骤:
//1、预编译:
[root@localhost zabbix-4.0.25]# ./configure --prefix=/usr/local/zabbix --enable-agent
//建议使用命令 开启--enable-agent就可以了
//2、编译
[root@localhost zabbix-4.0.25]# make
//3、安装:
[root@localhost zabbix-4.0.25]# make install
//4、添加软链接(相当于快捷方式);启动脚本要找/usr/local/sbin;不然启动时会报错
[root@localhost ~]# ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
//5、修改zabbix_agentd.conf文件
[root@localhost etc]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=192.168.1.59 //指向服务端IP地址
ServerActive=192.168.1.59 //开启主动模式,并设置传输数据的服务器地址
Hostname=192.168.1.60 //指向自己的主机名或者IP地址
//6、同时cp zabbix_server启动脚本至/etc/init.d/目录,
// 启动zabbix_agent Zabbix_agent默认监听端口为10050
[root@localhost zabbix-4.0.25]#cp misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
[root@localhost ~]# chmod o+x /etc/init.d/zabbix_agentd
[root@localhost ~]# /etc/init.d/zabbix_agentd restart
zabbix-agent的监听端口为10050
[root@localhost ~]# netstat -tunlp |grep -aw 10050
tcp 0 0 0.0.0.0:10050 LISTEN 14210/zabbix_agentd
tcp6 0 0 :::10050 LISTEN 14210/zabbix_agentd
[root@localhost ~]# /etc/init.d/zabbix_agentd restart
zabbix_agentd [113015]: user zabbix does not exist
zabbix_agentd [113015]: cannot run as root!
Zabbix agent started.
//创建用户和用户组即可:
[root@localhost ~]# groupadd zabbix
[root@localhost ~]# useradd -g zabbix zabbix
[root@localhost ~]# usermod -s /sbin/nologin zabbix
二、使用脚本批量化部署agent端:
1、编辑配置脚本配置文件:auto_install_zabbix_agent_v3.sh
[root@localhost ~]# vim auto_install_zabbix_agent_v3.sh
SERVER_IP="192.168.1.59"
[root@localhost ~]#sh auto_install_zabbix_agent_v3.sh
Please confirm whether to install Zabbix Server,yes or no? no
//选择yes安装客户端,选择no安装服务
主动模式:在/usr/local/zabbix/etc/zabbix_agentd.conf下ServerActive=192.168.1.59是主动模式的配置指令。
主动模式是:客户端自己会监控自己的数据,并且把数据发送给zabbix_server服务器
[root@localhost ~]# cat /tmp/zabbix_agentd.log
113048:20201030:232112.078
> no active checks on server[192.168.1.59:10051]: host [192.168.1.60] not found
因为我们的部署平台上还没有创建主机,所以无法检测到数据。
主动模式:客户端自己检测自己的数据,并把数据推送给server服务器,可以减少server的压力。
被动模式:客户端等着server来过来拉取数据,生产环境都是用主动模式。
三、主动模式监控一台client:在web平台创建主机
1、配置 ——> 主机 ——> 创建主机(图一) ——> 创建监控项(图二)或者导入模板 ——> 检测到数据。
图一
手动创建太麻烦,我们直接使用模板:绑定主机和模板
配置 ——> 主机 ——> 打开主机 ——> 模板
图二
配置zabbix-agent端信息:
检测状态如下:
2、批量检测十台主机(我们开启了十台zabbix-docker-client客户端:
自动发现:server端会开启discover进程,去扫描区域网的服务器:
配置 ——> 自动发现 ——> Local network(重新定义规则)(图一)
图一
[root@localhost ~]# ps -ef |grep -i discover
//查看discover进程; 默认就一个扫描进程,肯定很慢,开启多个扫描进程。
zabbix 6206 00:00:03 /usr/local/sbin/zabbix_server: discoverers rming discovery]
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
// 配置discover多进程同时探测。
StartDiscoverers=10 //默认是1个,改为10个 //企业中我们给为50或者100台设备。
[root@localhost ~]# /etc/init.d/zabbix_server restart
//重启zabbix_server 扫描完需调小一点,毕竟它还是占用我们的资源。
查看扫描的设备:
检测——> 自动发现列表(展示扫描的机器)
2.3、扫描之后还不会监控,我们需要给一个动作。
配置——> 动作——> 事件源(自动发现)(默认有一个动作是停用的,改为启用)——> 点击进入:Auto discovery. Linux servers
2.4、自动发现客户端客户端需要开启ssh服务,并打开22端口。
设备扫描到,还是不会监控数据,数据传达不到server服务端,需要安装agent来主动推送数据。
四、正在docker下批量创建10台容器,并运行我们的zabbix-agent。
//使用该命令去创建一个容器:具备systemctl启动权限。
[root@localhost ~]# docker run -tid --net=none --name=centos7-ssh2
> --privileged=true centos7-ssh:zabbix-agent /sbin/init //创建容器并运行
[root@localhost ~]# pipework br0 centos7-ssh 192.168.1.70/[email protected] //写入IP地址
[root@localhost ~]# docker exec -it centos7-ssh1 /bin/bash //使用该命令进入容器
[root@localhost ~]# for i in $(seq 1 10);do docker run -itd --privileged centos:centos7 ;done
//创建10台容器用来做client
[root@localhost ~]# docker ps -aq |xargs docker rm -f //删除docker下的所有程序
将容器打包成镜像并导入导出:
[root@localhost ~]# docker commit -a "yanqi" -m "centos7-ssh" 6cbc9ebfbc5f
> centos7-ssh:zabbix-agent //将容器打包成镜像
[root@localhost ~]# docker save > centos7-ssh.tar centos7-ssh:zabbix-agent //从容器导出镜像
[root@localhost ~]# docker import centos7-ssh.tar centos7-ssh1:zabbix-agent //导入镜像
[root@localhost ~]# cat centos7-ssh.tar | docker import - centos7-ssh2:zabbix-agent //导入镜像
END
声明:JavaBBS论坛主要用于IT技术专题的交流学习,为开源技术爱好者提供广泛、权威的技术资料。若您在技术专题有更好的想法或者建议,欢迎交流!!!
推荐阅读
Recommended reading
Git JavaBBS
→
JavaBBS大数据
/dsj
JavaBBS云存储
/ycc
JavaBBS数据库
→
/sjk
JavaBBS云计算
/yjs
JavaBBSIT.Log
→
JavaBBSNginx
→
/ngx
JavaBBSzabbix
→
/zbx
JavaBBSJavaSE
→
/jse
JavaBBS社区文章
→
/bwz
JavaBBS社区资料
→
/bzl