北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

zabbix搭建+排错+批量监控_zabbix批量监控web接口

Zabbix软件的概念

Zabbix是一款开源的、免费的监控软件、项目,主要是7x24小时去监控网络设备、操作系统、应用程序、带宽等资源,一旦发现异常和故障能够给SA管理员发送告警信息。

Zabbix软件的特点

  • Zabbix是C/S结构,有server和client;
  • 可以支持批量监控服务器(1000、10000台);
  • 支持WEB界面管理:方便、快捷;
  • 可以远程到被监控端执行Linux指令(解决问题);
  • 支持Zabbix proxy代理节点,可以代替Server去监控客户端;
  • 可以支持二次开发,提供API接口跟运维平台整合。

Zabbix软件的组成

Zabbix监控平台主要是由五大组件组成的:Zabbix server、Zabbix database、Zabbix proxy、Zabbix web、Zabbix agent,每个组件的用途如图1所示

Zabbix server

Zabbix server是整个监控平台最核心的组件服务之一,主要是用于汇总、收集客户端的监控数据,将监控数据持久化写入到后端数据库(MYSQL)中。

Zabbix database

Zabbix database是关系型数据库系统(MYSQL、Mariadb、Oracle、DB2等)主要是用于存储整个Zabbix监控平台的核心数据:监控数据、历史数据、趋势数据、用户名、密码信息等。

Zabbix proxy

Zabbix proxy也被称为代理节点,主要是用于代替Zabbix server去监控客户端进而分担server的压力,Zabbix proxy获取的监控数据最终统一上报给server端。(主动模式、被动模式)

Zabbix web

Zabbix web是基于PHP语言开发的网站程序,主要是用于管理员通过WEB界面更好的去管理Zabbix监控:添加、删除、动作、邮件、微信告警、代理等。

Zabbix agent

Zabbix agent一般部署在客户端机器上(被监控端)主要是用于采集自身机器的CPU、MEM、I/0、打开文件数、进程数、端口、系统是否被黑客入侵等指标数据的。


基于OpenEuler 22.x Linux操作系统部署一套Zabbix监控平台,至少需要四个组件服务:Zabbix server, Zabbix database、Zabbix web和Zabbix agent。

部署Zabbix server的方法和指令如下

从Zabbix官网下载软件包如图2所示

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.32.tar.gz

解压zabbix-6.0.32.tar.gz(-x extract解压,-z gzip压缩格式,-v verbose详

细显示,-f file文件属性)如图3所示

tar -xzvf zabbix-6.0.32.tar.gz

cd切换至Zabbix源代码目录如图4所示

cd zabbix-6.0.32

#提前解决编译Zabbix所需的依赖环境、库文件(gcc,mysql-devel,libevent-devel,pcre-devel)如图5所示

yum install -y gcc mysql-devel libevent-devel pcre-devel

预编译如图6所示

./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql

编译(-j4,开启4个线程并行编译)如图7所示

make -j4

安装如图8所示

make -j4 install

查看Zabbix server程序是否部署成功如图9所示

ls -l /usr/local/zabbix/

拷贝zabbix server和agent启动脚本&赋予执行权限如图10所示

\cp misc/init.d/tru64/zabbix* /etc/init.d/
chmod o+x /etc/init.d/zabbix*

添加zabbix server和agent主程序文件软连接如图11所示

ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

创建用户和组如图12所示

useradd -s /sbin/nologin zabbix -M

启动zabbix server服务如图13所示

/etc/init.d/zabbix_server start

查看zabbix进程如图14所示

ps -ef|grep -aiE zabbix

Zabbix database安装部署

Zabbix database主要是用于存储整个监控平台核心的数据,此处采用MYSQL数据库作为后端存储,部署的方法和指令如下

安装MYSQL软件如图15所示

yum install -y mysql-server mysql

启动MYSQL进程

systemctl start mysqld.service

查看MYSQL进程状态如图16所示

ps -ef|grep -aiE mysql

进入MYSQL命令行终端如图17所示

mysql

创建zabbix库、用户和设置密码如图18所示

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'aaaAAA111';

授权本机访问数据库如图19所示

grant all privileges on zabbix.* to zabbix@localhost;

刷新权限如图20所示

flush privileges;

进入
/root/zabbix-6.0.32/database/mysql/目录下如图21所示

cd /root/zabbix-6.0.32/database/mysql/

将zabbix自带三个SQL基础数据(schema.sql、images.sql、data.sql)导入zabbix库中如图22所示

mysql -uzabbix -paaaAAA111 zabbix < schema.sql
mysql -uzabbix -paaaAAA111 zabbix < images.sql
mysql -uzabbix -paaaAAA111 zabbix < data.sql

zabbix web部署

因为zabbix web是基于PHP语言开发的,需要借助LNMP架构(环境)对其发布,部署的方法和指令如图23所示:

安装Nginx、PHP-FPM;(Nginx和PHP会自动整合)

yum install php php-cli php-common php-devel php-embedded php-fpm php-gd php-mbstring php-mysqlnd php-opcache php-pdo php-xml -y

启动Nginx和PHP-FPM进程如图24所示

systemctl start nginx.service
systemctl start php-fpm.service

或者

for i in $(echo nginx php-fpm);do systemctl start $i.service ;done

查看Nginx和PHP-FPM进程如图25所示

for i in $(echo nginx php-fpm);do ps -ef|grep -aiE $i ;done

将zabbix web程序拷贝至LNMP发布目录即可如图26所示

\cp -a /root/zabbix-6.0.32/ui/* /usr/share/nginx/html/

调整SELinux策略

临时关闭SELinux(测试用)如图27所示

setenforce 0

永久关闭(需重启)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

防火墙拦截

临时开放HTTP服务如图28所示

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

根据如下zabbix监控平台指令、步骤的操作,用户通过浏览器可以访问zabbix web界面,如图29所示

点击下一步时报错如图30所示

进入/etc/php.ini修改post_max_size、max_execution_time、max_input_timew值如图31所示

vim /etc/php.ini

安装PHP bcmath如图32所示

yum -y install php-bcmath

如下图全部报错已处理如图33所示

填写数据库密码aaaAAA111如图34所示

填写zabbix名称如图35所示

下一步如图36所示

下载配置文件上传到
/usr/share/nginx/html/conf/zabbix.conf.php如图37所示

或者将
/usr/share/nginx/html/conf/目录所有者设置为apache如图38、图39所示

chown -R apache /usr/share/nginx/html/conf/
ls -l /usr/share/nginx/html/conf/

输入用户名和密码:Admin/zabbix如图40所示

服务器没有运行如图41所示

查看zabbix日志所在路径如图42所示

grep -aiE "log" /usr/local/zabbix/etc/zabbix_server.conf | grep -aivE "^#"|awk -F\= 'NR==1 {print $2}'

查看zabbix日志内容如图43所示

tail -n 30 $(grep -aiE "log" /usr/local/zabbix/etc/zabbix_server.conf | grep -aivE "^#"|awk -F\= 'NR==1 {print $2}')

修改
/usr/local/zabbix/etc/zabbix_server.conf主配置文件内的DBPassword=aaaAAA111如图44所示

vim /usr/local/zabbix/etc/zabbix_server.conf

重启zabbix服务如图45所示

/etc/init.d/zabbix_server restart

刷新网页如图46所示

zabbix agent报错如图47所示

启用/etc/init.d/zabbix_agentd如图48所示

/etc/init.d/zabbix_agentd start

批量监控20台服务器如图49所示

安装docker

yum install docker -y

启动docker服务

systemctl start docker.service

上传openeuler.tar如图50所示

导入openeuler.tar到docker如图51、图52所示

docker load -i openeuler.tar

批量启动20台虚拟机如图53所示

for i in $(seq 1 20);do docker run -itd --name=sbians-vm0$i --privileged openeuler:latest ;done

查看启动的20台虚拟机如图54所示

查看IP地址如图55所示

for i in $(docker ps | grep -aiE sbians|awk '{print $1}');do docker inspect $i|grep -aiE ipaddr|tail -1|grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}" ;done

配置自动发现主机如图56所示

配置发现范围,探测规则,以IP唯一标识如图57所示

成功发现主机如图58、图59所示

配置规则如图60所示

修改
/usr/local/zabbix/etc/zabbix_server.conf下的StartDiscoverers值提高发现速度如图61所示

vim /usr/local/zabbix/etc/zabbix_server.conf

重启zabbix服务如图62、图63所示

/etc/init.d/zabbix_server restart
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言