0
点赞
收藏
分享

微信扫一扫

OpenEuler22.03 LTS部署Zabbix

回望这一段人生 2024-11-28 阅读 16
zabbix运维

OpenEuler22.03 LTS部署Zabbix

以下文档部分参考:Zabbix 6.2 安装:国产系统篇(OpenEuler)-zabbix 5.0安装

主机拓扑图

主机名

ip

硬盘

cpu


zabbix-server

192.168.48.101

100g

2v


zabbix-agent

192.168.48.102

100g

2v


基础配置

操作节点:[server]

不要一股脑的复制,注意修改网卡的名字,我这里是ens33,包括修改ip段,比如我的是192.168.48.你就要修改成你的172.8.3.最后那一个主机位就不用管,其他不变

vi system_init.sh

#!/bin/bash
 if [ $# -eq 2 ];then
   echo "设置主机名为:$1"
   echo "ens33设置IP地址为:192.168.48.$2"
 else
   echo  "使用方法:sh $0 主机名 主机位"
   exit 2
 fi
 
 echo "--------------------------------------"
 echo "1.正在设置主机名:$1"
 hostnamectl set-hostname $1
 
 echo "2.正在关闭firewalld、selinux"
 systemctl disable firewalld &> /dev/null
 systemctl stop firewalld
 sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
 setenforce 0
 
 
 echo "3.正在设置ens33:192.168.48.$2"
 cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
 TYPE=Ethernet
 PROXY_METHOD=none
 BROWSER_ONLY=no
 BOOTPROTO=static
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=yes
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_FAILURE_FATAL=no
 NAME=ens33
 UUID=53b402ff-5865-47dd-a853-7afcd6521738
 DEVICE=ens33
 ONBOOT=yes
 IPADDR=192.168.48.$2
 GATEWAY=192.168.48.2
 PREFIX=24
 DNS1=192.168.48.2
 DNS2=114.114.114.114
 EOF
 nmcli c reload
 nmcli c up ens33
 
 
 echo "4.新增华为云源"
 mkdir /etc/yum.repos.d/bak/
 cp /etc/yum.repos.d/* /etc/yum.repos.d/bak/
 sleep 3
 #切换为华为云,下载速度更快
 sed -i 's/\$basearch/x86_64/g' /etc/yum.repos.d/openEuler.repo
 sed -i 's/http\:\/\/repo.openeuler.org/https\:\/\/mirrors.huaweicloud.com\/openeuler/g' /etc/yum.repos.d/openEuler.repo
 
 echo "5.更新yum源软件包缓存"
  yum clean all && yum makecache
 
 echo "6.添加hosts解析"
 cat > /etc/hosts <<EOF
 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 192.168.48.101 zabbix-server
 192.168.48.102 zabbix-agent
 EOF
 
 echo "7.安装chrony服务,并同步时间"
 yum install chrony -y
 systemctl enable chronyd --now
 timedatectl set-timezone Asia/Shanghai
 timedatectl set-local-rtc 1
 timedatectl set-ntp yes
 chronyc -a makestep
 chronyc tracking
 chronyc sources
 
 echo "8.必备工具安装"
 yum install wget psmisc vim net-tools telnet socat device-mapper-persistent-data lvm2 git -y
 
 echo "9.重启"
 reboot
 

运行

sh system_init.sh 主机名  主机位
 
 [zabbix-server] sh system_init.sh zabbix-server 101
 
 [zabbix-agent] sh system_init.sh zabbix-agent 102
 

zabbix-server安装

zabbix服务段安装

操作节点:[server]

#创建zabbix用户
 groupadd --system zabbix
 useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
 #创建zabbix安装目录
 mkdir -p /app/zabbix

下载 Zabbix 源码

OpenEuler22.03 LTS部署Zabbix_zabbix

#server端下载源码包,你也可以手动下载上传到虚拟机即可,我是放到了root目录下
 wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.5.tar.gz
 tar -zxvf zabbix-7.*.tar.gz

开始编译安装

  • prefix 指定安装目录。
  • enable-server 启用 Zabbix Server。
  • enable-agent 启用 Zabbix agent。
  • with-mysql 后端指定数据库为mysql。
  • net-snmp 支持 snmp 协议。

其实还有很多参数,大家可以参考 ./configure --help 自行研究 ,官方文档里也有案例

#安装需要的组件
 dnf -y install mysql-devel libevent-devel pcre-devel
 #开始编译(/app/zabbix)是zabbix的安装目录,以下编译会安装在/app/zabbix
 mv zabbix-7.0.5 zabbix && cd zabbix
 ./configure --prefix=/app/zabbix --enable-server --enable-agent --with-mysql

出现这个页面是编译完成

OpenEuler22.03 LTS部署Zabbix_zabbix_02

#开始安装
 make install
 #安装完成!

OpenEuler22.03 LTS部署Zabbix_zabbix_03

整体目录情况

OpenEuler22.03 LTS部署Zabbix_zabbix_04

PHP部分

openEuler 22.04 自带8.0版本,所以符合6.0以上版本的需求。

OpenEuler22.03 LTS部署Zabbix_zabbix_05

dnf -y install php php-fpm

Apache

由于安装PHP会自动安装apache(httpd)服务,所以安装过程并未提及apache的安装过程

现在移动zabbix前端网页文件到/var/http/html(这是apache网页的运行根目录文件)

[root@zabbix-sever zabbix]# pwd
 /root/zabbix
 #我现在/root/zabbix是刚刚解压源码包的地方,别走错了,看你的位置在哪
 cd /root/zabbix
 #这个命令会递归地复制 ui 目录下的所有内容,包括子目录和文件,到 /var/www/html/ 目录中并且保留文件的权限和属性
 cp -rp ui/* /var/www/html/
 #启动apache
 systemctl start httpd && systemctl enable httpd
 systemctl start php-fpm && systemctl enable php-fpm

访问192.168.48.101

选择中文

OpenEuler22.03 LTS部署Zabbix_zabbix_06

这里显示有些php扩展没下载等

OpenEuler22.03 LTS部署Zabbix_zabbix_07

dnf -y install php-gd php-mysqlnd php-bcmath php-xml php-mbstring

安装完依赖此时不需要重启任何服务,接下来调整PHP的配置文件。

根据报错来调整三个值分别是 post_max_size,max_execution_time,max_input_time

  • 所要求的最小PHP post大小是16M (配置项"post_max_size")。
  • 所要求的最小PHP脚本执行时间是300 (配置项 "max_execution_time")。
  • 所要求的PHP脚本最小解析时间是300 (配置项"max_input_time")。

#一键修改命令
 sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /etc/php.ini
 sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
 sed -i 's/max_input_time = 60/max_input_time = 300/g' /etc/php.ini

改完之后需要重启php-fpm服务。

systemctl restart php-fpm

刷新页面就ok了

OpenEuler22.03 LTS部署Zabbix_zabbix_08

安装mysql

安装mysql

dnf -y install mysql-server
 systemctl start mysqld && systemctl enable mysqld
 mysql_secure_installation
 
 #提示信息:VALIDATE PASSWORD COMPONENT can be u ····· gh. Would you like to setup VALIDATE PASSWORD component?
 #验证密码组件可用于测试密码和提高安全性。它检查密码的强度,并允许用户只设置那些足够安全的密码。要设置VALIDATE PASSWORD组件吗?
 Press y|Y for Yes, any other key for No: NO (填NO)
 New password: 
 Re-enter new password:
 #输入你的秘密,我这里是qianyios007
 #是否删除匿名用户
 Remove anonymous users?  (Press y|Y for Yes, any other key for No) : Y
 #是否禁止root用户远程登录
 Disallow root login remotely? (Press y|Y for Yes, any other key for No) : No
 #是否删除测试数据库?
 Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 #是否重新加载特权表吗?
 Reload privilege tables now?  (Press y|Y for Yes, any other key for No) : Y
 
 # 验证登入数据库
 mysql -u root -pqianyios007
 

OpenEuler22.03 LTS部署Zabbix_zabbix_09

创建Zabbix所需要的数据库和用户

mysql -u root -pqianyios007
 #创建一个名为zabbix的新数据库,并指定字符集为utf8mb4,排序规则为utf8mb4_bin。
 create database zabbix character set utf8mb4 collate utf8mb4_bin;
 #创建一个新用户zabbix,该用户只能从localhost连接,密码设置为123456。
 create user zabbix@localhost identified by '123456';
 #授予zabbix用户对zabbix数据库的所有表的所有权限。
 grant all privileges on zabbix.* to zabbix@localhost;
 #设置全局变量log_bin_trust_function_creators为1,这允许创建存储函数时不受二进制日志的限制
 set global log_bin_trust_function_creators = 1;
 quit;

导入Zbbix 的数据文件

cd /root/zabbix
 cat database/mysql/schema.sql | mysql -uzabbix -p123456 zabbix
 cat database/mysql/images.sql | mysql -uzabbix -p123456 zabbix
 cat database/mysql/data.sql | mysql -uzabbix -p123456 zabbix
 mysql -u root -pqianyios007
 #相关数据导入完成后关掉log_bin_trust_function_creators功能。
 set global log_bin_trust_function_creators = 0;
 quit;

完成这部分,就可以在前端进入数据库配配置界面。

OpenEuler22.03 LTS部署Zabbix_zabbix_10

OpenEuler22.03 LTS部署Zabbix_zabbix_11

OpenEuler22.03 LTS部署Zabbix_zabbix_12

报错了,此时会出现无法创建,这是由于目标目录没有权限导致的,可以点击蓝色字体(网页中下载配置文件)将配置得好的文件下载下来,然后传到前端提示的目录里,该文这里路径为:

/var/www/html/conf/

OpenEuler22.03 LTS部署Zabbix_zabbix_13

自行下载用工具传过去即可

OpenEuler22.03 LTS部署Zabbix_zabbix_14

放过去之后刷新即可

管理员用户名密码为Admin/zabbix

OpenEuler22.03 LTS部署Zabbix_zabbix_15

服务端安装成功!

OpenEuler22.03 LTS部署Zabbix_zabbix_16

zabbix-server基本配置

这里可以看姐server端是没有启动的,说明要对于他进行配置

OpenEuler22.03 LTS部署Zabbix_zabbix_17

首先来说说zabbix server 目录的一些情况

  • 程序文件路径为/app/zabbix/sbin/
  • 配置文件路径为/app/zabbix/etc/
  1. 编辑配置文件

sed -i 's|^LogFile=.*|LogFile=/var/log/zabbix/zabbix_server.log|' /app/zabbix/etc/zabbix_server.conf
sed -i '/^# DBPassword=/a \  DBPassword=123456' /app/zabbix/etc/zabbix_server.conf
sed -i '/^# PidFile=\/tmp\/zabbix_server.pid$/a \  PidFile=/var/log/zabbix/zabbix_server.pid' /app/zabbix/etc/zabbix_server.conf

  1. 制作zabbix server守护文件

cat > /usr/lib/systemd/system/zabbix-server.service <<"EOF"
 [Unit]
 Description=Zabbix Server
 After=syslog.target
 After=network.target
 After=postgresql.service
 After=pgbouncer.service
 After=postgresql-13.service
 
 [Service]
 Environment="CONFFILE=/app/zabbix/etc/zabbix_server.conf"
 EnvironmentFile=-/etc/sysconfig/zabbix-server
 Type=forking
 Restart=on-failure
 #pid文件要改哦,看你在哪个位置
 PIDFile=/var/log/zabbix/zabbix_server.pid
 KillMode=control-group
 ExecStart=/app/zabbix/sbin/zabbix_server -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 TimeoutSec=0
 
 [Install]
 WantedBy=multi-user.target
 EOF

由于是源码编译安装,所以存放日志文件的目录不存在,所以需要自行创建和给予权限

mkdir /var/log/zabbix
 chown zabbix:zabbix /var/log/zabbix

启动zabbix-server和查看服务的状态。

systemctl start zabbix-server && systemctl enable zabbix-server
 systemctl status zabbix-server

OpenEuler22.03 LTS部署Zabbix_zabbix_18

查看日志也正常

tail -f /var/log/zabbix/zabbix_server.log

OpenEuler22.03 LTS部署Zabbix_zabbix_19

查看网页已经在运行了

OpenEuler22.03 LTS部署Zabbix_zabbix_20

zabbix-agent安装

server端安装agent

操作节点[server]

#制作 Zabbix agent 守护文件
 cat > /usr/lib/systemd/system/zabbix-agent.service<<"EOF"
 [Unit]
 Description=Zabbix Agent
 After=syslog.target
 After=network.target
 [Service]
 Environment="CONFFILE=/app/zabbix/etc/zabbix_agentd.conf"
 Type=simple
 Restart=on-failure
 #PID文件要改
 PIDFile=/var/log/zabbix/zabbix_agentd.pid
 KillMode=control-group
 ExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 User=zabbix
 Group=zabbix
 [Install]
 WantedBy=multi-user.target
 EOF
 #修改agent配置文件也是和server一样修改日志文件和pid文件位置
 sed -i 's|^LogFile=.*|LogFile=/var/log/zabbix/zabbix_agentd.log|' /app/zabbix/etc/zabbix_agentd.conf
 
 sed -i '/^# PidFile=\/tmp\/zabbix_agentd.pid$/a \  PidFile=/var/log/zabbix/zabbix_agentd.pid' /app/zabbix/etc/zabbix_agentd.conf
 #启动zabbix agent
 systemctl daemon-reload
 systemctl start zabbix-agent && systemctl enable zabbix-agent

这样在server主机的zabbix的server端和agent端已经安装好了,但是现在就是说只有一个agent端也就是本机,只能监控自己,现在就教你们去监控其他机子

OpenEuler22.03 LTS部署Zabbix_zabbix_21

其他主机安装agent

操作节点:[zabbix-agent]

#agent端下载源码包,你也可以手动下载上传到虚拟机即可,我是放到了root目录下
 wget https://cdn.zabbix.com/zabbix/sources/stable/7.0/zabbix-7.0.5.tar.gz
 tar -zxvf zabbix-7.*.tar.gz
 #创建zabbix用户
 groupadd --system zabbix
 useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
 #创建zabbix安装目录
 mkdir -p /app/zabbix
 #安装需要的组件
 dnf -y install mysql-devel libevent-devel pcre-devel
 #开始编译(/app/zabbix)是zabbix的安装目录,以下编译会安装在/app/zabbix 这里只需要启用agent即可server不用
 mv zabbix-7.0.5 zabbix && cd zabbix
 ./configure --prefix=/app/zabbix --enable-agent 
 #开始安装
 make install
 #修改配置文件
 sed -i 's|^LogFile=.*|LogFile=/var/log/zabbix/zabbix_agentd.log|' /app/zabbix/etc/zabbix_agentd.conf
 sed -i '/^# PidFile=\/tmp\/zabbix_agentd.pid$/a \  PidFile=/var/log/zabbix/zabbix_agentd.pid' /app/zabbix/etc/zabbix_agentd.conf
 #修改测试机agent配置文件里的serve-ip,这里要填server机的ip(修改192.168.48.101即可)
 sed -i 's/Server=127.0.0.1/Server=192.168.48.101/g' /app/zabbix/etc/zabbix_agentd.conf
 sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.48.101/g' /app/zabbix/etc/zabbix_agentd.conf
 ##名字随意
 sed -i 's/Hostname=Zabbix server/Hostname=zabbix-agent/g' /app/zabbix/etc/zabbix_agentd.conf
 
 #制作 Zabbix agent 守护文件
 cat > /usr/lib/systemd/system/zabbix-agent.service<<"EOF"
 [Unit]
 Description=Zabbix Agent
 After=syslog.target
 After=network.target
 [Service]
 Environment="CONFFILE=/app/zabbix/etc/zabbix_agentd.conf"
 Type=simple
 Restart=on-failure
 #PID文件要改
 PIDFile=/var/log/zabbix/zabbix_agentd.pid
 KillMode=control-group
 ExecStart=/app/zabbix/sbin/zabbix_agentd -c $CONFFILE
 ExecStop=/bin/kill -SIGTERM $MAINPID
 RestartSec=10s
 User=zabbix
 Group=zabbix
 [Install]
 WantedBy=multi-user.target
 EOF
 #由于是源码编译安装,所以存放日志文件的目录不存在,所以需要自行创建和给予权限
 mkdir /var/log/zabbix
 chown zabbix:zabbix /var/log/zabbix
 #启动zabbix agent
 systemctl daemon-reload
 systemctl start zabbix-agent && systemctl enable zabbix-agent

zabbix页面配置测试机监控端

OpenEuler22.03 LTS部署Zabbix_zabbix_22

OpenEuler22.03 LTS部署Zabbix_zabbix_23

OpenEuler22.03 LTS部署Zabbix_zabbix_24

最终效果,点击添加即可

OpenEuler22.03 LTS部署Zabbix_zabbix_25

OpenEuler22.03 LTS部署Zabbix_zabbix_26

测试端的机子已经添加好了

测试

Zabbix Web 配置模板(监听 Port 80)

操作节点:[zabbix-agent]

安装nginx并配置网页

因为没有适配openeuler的版本,这里直接用centos8的来代替,兼容的没关系,你可以根据你的系统去自行替换

cat >/etc/yum.repos.d/nginx.repo << "EOF"
[nginx-stable]
name=nginx stable repo
#baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
#原本是$releasever的,但是没有openeuler的版本直接用8来代替也就是centos8,openeuler兼容centos
baseurl=http://nginx.org/packages/centos/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
#baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
baseurl=http://nginx.org/packages/mainline/centos/8/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
yum install nginx -y
systemctl enable nginx --now

这样就会随时安装最新版本的nginx

添加测试网页

/etc/nginx/conf.d/default.conf

[root@zabbix-agent ~]# cat /etc/nginx/conf.d/default.conf
 server {
 #80端口
     listen       80;
     server_name  localhost;
 
     #access_log  /var/log/nginx/host.access.log  main;
 
     location / {
     #这里就是网站的根目录了
         root   /usr/share/nginx/html;
         index  index.html index.htm;
     }
     error_page   500 502 503 504  /50x.html;
     location = /50x.html {
         root   /usr/share/nginx/html;
     }
     #。。。。。
 }

直接修改80端口下的网站里面的内容

vim /usr/share/nginx/html/index.html

里面的内容全部删了,写入以下内容,然后保存退出即可

<h1>welcome to qianyios.blog</h1>

重启服务

nginx -s reload

OpenEuler22.03 LTS部署Zabbix_zabbix_27

配置80端口模板

创建监控80端口状态的模板

OpenEuler22.03 LTS部署Zabbix_zabbix_28

创建监控项

OpenEuler22.03 LTS部署Zabbix_zabbix_29

OpenEuler22.03 LTS部署Zabbix_zabbix_30

创建触发器

点击触发器,创建触发器

OpenEuler22.03 LTS部署Zabbix_zabbix_31

OpenEuler22.03 LTS部署Zabbix_zabbix_32

创建图形

OpenEuler22.03 LTS部署Zabbix_zabbix_33

OpenEuler22.03 LTS部署Zabbix_zabbix_34

配置测试机应用80端口模板

OpenEuler22.03 LTS部署Zabbix_zabbix_35

更新一下

OpenEuler22.03 LTS部署Zabbix_zabbix_36

80端口模板测试

OpenEuler22.03 LTS部署Zabbix_zabbix_37

当我们模拟80端口down

systemctl stop nginx

OpenEuler22.03 LTS部署Zabbix_zabbix_38

OpenEuler22.03 LTS部署Zabbix_zabbix_39

然后我们再开起来

systemctl start nginx

OpenEuler22.03 LTS部署Zabbix_zabbix_40

到此监测80端口成功

 特别声明

千屹博客旗下的所有文章,是通过本人课堂学习和课外自学所精心整理的知识巨著
难免会有出错的地方
如果细心的你发现了小失误,可以在下方评论区告诉我,或者私信我!
非常感谢大家的热烈支持!


举报

相关推荐

0 条评论