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