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 源码
#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
出现这个页面是编译完成
#开始安装
make install
#安装完成!
整体目录情况
PHP部分
openEuler 22.04 自带8.0版本,所以符合6.0以上版本的需求。
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
选择中文
这里显示有些php扩展没下载等
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了
安装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
创建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;
完成这部分,就可以在前端进入数据库配配置界面。
报错了,此时会出现无法创建,这是由于目标目录没有权限导致的,可以点击蓝色字体(网页中下载配置文件)将配置得好的文件下载下来,然后传到前端提示的目录里,该文这里路径为:
/var/www/html/conf/
自行下载用工具传过去即可
放过去之后刷新即可
管理员用户名密码为Admin/zabbix
服务端安装成功!
zabbix-server基本配置
这里可以看姐server端是没有启动的,说明要对于他进行配置
首先来说说zabbix server 目录的一些情况
- 程序文件路径为/app/zabbix/sbin/
- 配置文件路径为/app/zabbix/etc/
- 编辑配置文件
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
- 制作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
查看日志也正常
tail -f /var/log/zabbix/zabbix_server.log
查看网页已经在运行了
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端也就是本机,只能监控自己,现在就教你们去监控其他机子
其他主机安装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页面配置测试机监控端
最终效果,点击添加即可
测试端的机子已经添加好了
测试
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
配置80端口模板
创建监控80端口状态的模板
创建监控项
创建触发器
点击触发器,创建触发器
创建图形
配置测试机应用80端口模板
更新一下
80端口模板测试
当我们模拟80端口down
systemctl stop nginx
然后我们再开起来
systemctl start nginx
到此监测80端口成功
特别声明
千屹博客旗下的所有文章,是通过本人课堂学习和课外自学所精心整理的知识巨著
难免会有出错的地方
如果细心的你发现了小失误,可以在下方评论区告诉我,或者私信我!
非常感谢大家的热烈支持!