一、Zabbix 监控理解
(一)监控定义
对操作系统进行 7 * 24 小时不间断的监控。
(二)监控目的
- 是软件生命周期重要环节。
- 事前告警,事后可依据监控内容排查问题。
- 主动发现告警,提升用户体验,避免被动响应。
(三)监控内容
- 硬件:磁盘、内存、负载、CPU。
- 软件服务:端口、进程、状态。
- 业务层面
- 业务数据分析,如订单量、注册用户等自定义监控。
- 从日志和数据库体现相关业务数据。
- 业务间接口调用监控,可利用 curl 测试。
(四)监控工具
- Zabbix:用于硬件、服务状态及自定义监控。
- Nagios:针对网络产品,如交换机、路由器。
- Cacti:主要监控流量。
- Open – Falcon:小米公司使用。
- Prometheus:监控容器(Kubernetes、Docker)。
- 监控宝等。
二、Zabbix 平台架构端口
- 基础架构:基于 LNMP 平台(Linux、Nginx、Mysql、PHP)。
- 端口信息
- Zabbix 客户端:10050 。
- Zabbix 服务端:10051 。
- Zabbix_proxy:10051 。
- Java_gateway:10052 。
三、centos7安装zabbix方法
1.选择版本信息及插件
- 访问官网(https://www.zabbix.com),进入下载页面,选择对应的服务器版本信息,包括 ZABBIX 版本(如 5.0 LTS)、OS 分布(CentOS)、OS 版本(如 7)、ZABBIX COMPONENT(如 Server、Frontend、Agent)、WEB SERVER(如 Nginx)等,同时确定要安装的 zabbix 插件。
2.下滑按照官方文档安装即可
四、麒麟安装zabbix方法
1.下载源码包,参考官方文档安装
五、麒麟系统zabbix安装部署
5.1 安装部署mysql
#1.下载mysql8.0版本
[root@zabbix ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar #此包在55课视频文件内
#2.解压数据库
[root@zabbix ~]# tar -xf mysql-8.0.36-1.el8.x86_64.rpm-bundle.tar
#3.rpm安装
[root@zabbix ~]# yum localinstall -y *.rpm
#4.启动数据库
[root@zabbix ~]# systemctl enable --now mysqld
#5.查看随机生成的密码
[root@zabbix ~]# cat /var/log/mysqld.log |grep root@local
2025-01-17T09:47:16.186119Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: T(hFL=m%b5p.
#6.进入数据库修改密码
[root@zabbix ~]# mysql -uroot -p'T(hFL=m%b5p.'
mysql> alter user root@localhost identified by 'Ytg123.com';
#7.创建zabbix库
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'localhost' identified by 'Ytg123.com';
mysql> alter user 'zabbix'@'localhost' identified with mysql_native_password by 'Ytg123.com';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
#8.清理mysql安装包
[root@zabbix ~]# rm -rf mysql-*
#9.下载zabbix源码包,将sql数据导入到zabbix库中
[root@zabbix ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.45.tar.gz #网址来源如下图
[root@zabbix ~]# tar -xf zabbix-5.0.45.tar.gz
#10.进入源码包存放数据库目录,给库导入数据
[root@zabbix ~]# cd zabbix-5.0.45/database/mysql/
[root@zabbix mysql]# ll
-rw-r--r-- 1 1000 1000 15252182 Nov 19 15:18 data.sql
-rw-r--r-- 1 1000 1000 282 Nov 19 15:18 double.sql
-rw-r--r-- 1 1000 1000 1978341 Nov 15 21:23 images.sql
-rw-r--r-- 1 1000 1000 482 Nov 19 15:18 Makefile.am
-rw-r--r-- 1 1000 1000 15936 Nov 19 15:18 Makefile.in
-rw-r--r-- 1 1000 1000 156294 Nov 19 15:18 schema.sql
#11.需要将schema.sql images.sql data.sql导入zabbix库
[root@zabbix mysql]# mysql -uzabbix -p'Ytg123.com' zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -p'Ytg123.com' zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -p'Ytg123.com' zabbix < data.sql
5.2 安装部署php
#1.安装php服务,比以前搭建多安装一个php-ldap
[root@zabbix ~]# yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-process php-xml php-json php-ldap
#2.修改监听方式为端口
[root@zabbix ~]# cat /etc/php-fpm.d/www.conf |grep -n '9000'
38:listen = 127.0.0.1:9000 #修改为127.0.0.1:9000
#3.启动并加入到开机自启
[root@zabbix ~]# systemctl enable php-fpm --now
#4.查看是否启动
[root@zabbix ~]# netstat -lntup|grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 56980/php-fpm: mast
5.3 安装部署nginx
#1.配置官网的nginx仓库
[root@zabbix ~]# cat /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#2.安装nginx服务
[root@zabbix ~]# yum -y install nginx
[root@zabbix ~]# nginx -v
nginx version: nginx/1.26.1
#3.配置nginx服务
[root@zabbix ~]# cat /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name _;
root /code;
index index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
#4.统一用户php和nginx都使用apache运行
[root@zabbix ~]# cat /etc/nginx/nginx.conf |grep -n apache
2:user apache; #把第二行启动用户改成和php相同的用户
#6.启动nginx并开机自启
[root@zabbix ~]# systemctl enable --now nginx
#7.检查3306端口、9000端口、80端口
[root@zabbix ~]# netstat -lntup|egrep '3306|9000|80'
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 56980/php-fpm: mast
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 57285/nginx: master
tcp6 0 0 :::3306 :::* LISTEN 55971/mysqld
tcp6 0 0 :::33060 :::* LISTEN 55971/mysqld
#8.将代码文件拷贝到/code目录下
[root@zabbix ~]# mkdir /code && cd /code
[root@zabbix code]# cp -a /root/zabbix-5.0.45/ui/* .
[root@zabbix code]# chown -R apache.apache /code/ #因为php和nginx都用apache用户启动,如果不改权限就没权限访问
5.4 编译zabbix
#1.进入源码目录
[root@zabbix ~]# cd zabbix-5.0.45/
#2.安装依赖包
[root@zabbix zabbix-5.0.45]# yum -y install libxml2 libxml2-devel net-snmp-devel curl-devel libevent-devel
#3.编译安装前配置zabbix
[root@zabbix zabbix-5.0.45]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
#4.编译,安装
[root@zabbix zabbix-5.0.45]# make &&make install
#5.完成后检查 在命令行输入zabbix tab键 检查是否有命令
[root@zabbix zabbix-5.0.45]# zabbix_
zabbix_agentd zabbix_js zabbix_server
zabbix_get zabbix_sender
#6.配置zabbix连接数据库信息
[root@zabbix ~]# grep -n ^DB /usr/local/etc/zabbix_server.conf
94:DBName=zabbix
110:DBUser=zabbix
118:DBPassword=Ytg123.com
#7.创建系统启用虚拟用户zabbix
[root@zabbix ~]# useradd -s /sbin/nologin -M zabbix
#9.配置systemctl启动方式
[root@zabbix home]# cat /usr/lib/systemd/system/zabbix.service
[Unit]
Description=Zabbix server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/zabbix_server
ExecStop=/usr/local/sbin/zabbix_server stop
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
#10.重新加载配置,启动
[root@zabbix home]# systemctl daemon-reload
[root@zabbix home]# systemctl enable --now zabbix
[root@zabbix home]# zabbix_agentd #启动agentd(客户端,自己监控自己)
#11.检查端口
[root@zabbix home]# netstat -lntup|grep 10051
[root@zabbix home]# netstat -lntup|grep 10050
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 68966/zabbix_server
tcp6 0 0 :::10051 :::* LISTEN 68966/zabbix_server
5.5 界面部署
- 网址:http://10.0.0.120/访问
- 根据要求修改php.ini配置文件,解除限制
#1.修改配置
[root@zabbix ~]# egrep -n 'post_max_size|max_execution_time|max_input_time|date.timezone' /etc/php.ini |grep -v ';'
383:max_execution_time = 300
393:max_input_time = 300
672:post_max_size = 16M
902:date.timezone = Asia/ShangHai
#2.重启服务
[root@zabbix ~]# php-fpm -t
[root@zabbix ~]# systemctl restart php-fpm
#3.刷新网页