一、环境准备
1.1 Linux release 7+ (Core)
镜像下载参考地址 http://mirrors.sohu.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso
1.2 Zabbix5.0源码包
下载地址 https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz
1.3 Yum安装依赖组件
[root@bogon ~]# yum install net-snmp-devel libevent-devel libxml2 libxml2-devel curl-devel -y
1.4 创建zabbix用户组和用户
[root@bogon ~]# groupadd zabbix
[root@bogon ~]# useradd -r -g zabbix zabbix
1.5 关闭selinux和防火墙
[root@bogon data]# vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled ----------设置后需要重启Linux才能生效
[root@bogon data]# systemctl stop firewalld.service
[root@bogon data]# systemctl disable firewalld.service;
---------------------------------------------------------------------------------------------------------------------------------
二 、安装zabbix服务
[root@bogon ~]# cd /usr/local/src/
下载文件
[root@bogon src]# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz
或者通过上传的方式上传文件
[root@bogon src]# mkdir -p /usr/local/data/
[root@bogon src]# tar -xzf zabbix-5.0.1.tar.gz -C /usr/local/data/
[root@bogon src]# cd /usr/local/data/
2.1 安装MYSQL
yum安装MySQL57
[root@bogon data]# wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
[root@bogon data]# ls
mysql57-community-release-el7-10.noarch.rpm zabbix-5.0.1
[root@bogon data]# rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
[root@bogon data]# yum install -y mysql-community-server
启动MySQL服务
[root@bogon data]# systemctl start mysqld.service
查看MySQL状态
[root@bogon data]# systemctl status mysqld.service
获取MySQL临时用户名密码
[root@bogon data]# grep 'temporary password' /var/log/mysqld.log
A temporary password is generated for root@localhost: nc(9k0u;Fzff
输入MySQL的临时密码
[root@bogon data]# mysql -uroot -pnc(9k0u;Fzff
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30
因为MySQL的密码规则需要很复杂,我们一般自己设置的不会设置成这样,所以我们全局修改一下密码策略
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
设置自己想要的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
授权其他机器远程登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
保存退出MYSQL
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye
配置Mysql开机自启动
[root@bogon data]# systemctl enable mysqld
[root@bogon data]# systemctl daemon-reload
设置MySQL的字符集为UTF-8,令其支持中文
[root@bogon data]# vim /etc/my.cnf
改成如下,然后保存
# For advice on how to change settings please see
# MySQL :: MySQL 5.7 Reference Manual :: 5.1.2 Server Configuration Defaults
[mysql]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-storage-engine=INNODB
character_set_server=utf8
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启一下MySQL,令配置生效
[root@bogon data]# systemctl restart mysqld
---------------------------------------------------------------------------------------------------------------------------------
2.2 部署zabbix服务
[root@bogon data]# cd /usr/local/data/zabbix-5.0.1
编译安装Zabbix
[root@bogon zabbix-5.0.1]# ./configure --prefix=/usr/local/data/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@bogon zabbix-5.0.1]# make
[root@bogon zabbix-5.0.1]# make install
添加zabbix环境变量,可跳过此步使用绝对路径
[root@bogon data]# vim /etc/profile
# Zabbix Environment
export PATH=$PATH:/usr/local/data/zabbix/sbin/:/usr/local/data/zabbix/bin/
[root@localhost zabbix-4.2.6]# source /etc/profile
数据库建库,导入zabbix脚本
[root@bogon data]# mysql -uroot -p
创建zabbix数据库
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
创建用户并赋予权限
mysql> grant all privileges on zabbix.* to zabbix@‘localhost’ identified by ‘Heloo001’;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)
执行zabbix初始化脚本
mysql> use zabbix;
Database changed
mysql> source /usr/local/data/zabbix-5.0.1/database/mysql/schema.sql
mysql> source /usr/local/data/zabbix-5.0.1/database/mysql/data.sql
mysql> source /usr/local/data/zabbix-5.0.1/database/mysql/images.sql
编辑zabbix_server的配置文件
[root@bogon mysql]# vim /usr/local/data/zabbix/etc/zabbix_server.conf
###Option: LogFile
LogFile=/usr/local/data/zabbix/logs/zabbix_server.log
###Option: LogFileSize
LogFileSize=0
###Option: DBHost
DBHost=localhost
###Option: DBName
DBName=zabbix
###Option: DBUser
DBUser=zabbix
###Option: DBPassword
DBPassword=Hello001
###Option: DBSocket
DBSocket=/tmp/mysql.sock
###Option: DBPort
DBPort=3306
###Option: Timeout
Timeout=30
###Option: AlertScriptsPath
AlertScriptsPath=/usr/local/data/zabbix/alertscripts
###Option: ExternalScripts
ExternalScripts=/usr/local/data/zabbix/externalscripts
###Option: LogSlowQueries
LogSlowQueries=3000
创建相关文件夹并赋权
[root@bogon mysql]# mkdir /usr/local/data/zabbix/logs
[root@bogon mysql]# mkdir /usr/local/data/zabbix/pid
[root@bogon mysql]# chown -R zabbix:zabbix /usr/local/data/zabbix/
---------------------------------------------------------------------------------------------------------------------------------
2.3 安装PHP73
首先安装 EPEL 源
yum install epel-release
安装 REMI 源
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
安装 Yum 源管理工具:
yum install yum-utils
安装 PHP7.3:
yum install -y php73-php-fpm php73-php-cli php73-php-bcmath php73-php-gd php73-php-json php73-php-mbstring php73-php-mcrypt php73-php-mysqlnd php73-php-opcache php73-php-pdo php73-php-pecl-crypto php73-php-pecl-mcrypt php73-php-pecl-geoip php73-php-recode php73-php-snmp php73-php-soap php73-php-xmll
设置开机自启
systemctl enable php73-php-fpm
启动PHP服务
systemctl start php73-php-fpm
[root@bogon data]# vim /etc/ld.so.conf
/usr/local/lib ---------添加此路径
[root@bogon data]# ldconfig
Zabbix 使用php编写,需要为Web界面做PHP配置优化,编辑php.ini文件
[root@bogon zabbix-5.0.1]# vi /etc/opt/remi/php73/php.ini
修改如下内容:
max_execution_time = 30 修改为350-(zabbix_web优化)
max_input_time = 60 修改为350-(zabbix_web优化)
post_max_size = 8M 修改为32M-(zabbix_web优化)
date.timezone = Asia/Shanghai 添加-(zabbix_web优化)
找到设置cgi.fix_pathinfo的参数, 这将用分号(;)注释掉,默认设置为“1”
cgi.fix_pathinfo=0
重启PHP
[root@bogon zabbix-5.0.1]# systemctl restart php73-php-fpm
---------------------------------------------------------------------------------------------------------------------------------
2.4 PHP安装后,配置zabbix服务文件
前面添加环境变量后,可直接启动执行 zabbix_server 启动服务
[root@bogon data]# zabbix_server
杀死zabbix进程
[root@bogon data]# ps -ef | grep zabbix_server | grep -v grep | awk ‘{print $2}’ | xargs kill -9
创建服务文件,配置开机自启动
[root@bogon data]# vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix
After=network.target
[Service]
Environment=“CONFFILE=/usr/local/data/zabbix/etc/zabbix_server.conf”
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/data/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
开机自动启动
[root@bogon zabbix-5.0.1]# systemctl daemon-reload
[root@bogon zabbix-5.0.1]# systemctl enable zabbix-server
zabbix停止、启动、重启命令
[root@bogon zabbix-5.0.1]# systemctl stop zabbix-server
[root@bogon zabbix-5.0.1]# systemctl start zabbix-server
[root@bogon zabbix-5.0.1]# systemctl restart zabbix-server
---------------------------------------------------------------------------------------------------------------------------------
2.5 安装Nginx
下载Ng安装文件
[root@bogon local]# wget http://nginx.org/download/nginx-1.9.9.tar.gz
[root@bogon local]# tar -zxvf nginx-1.9.9.tar.gz
[root@bogon local]# cd nginx-1.9.9/
编译安装Ng
[root@bogon nginx-1.9.9]# ./configure --prefix=/usr/local/nginx/
[root@bogon nginx-1.9.9]# make
[root@bogon nginx-1.9.9]# make install
[root@bogon nginx-1.9.9]# cd /usr/local/nginx/sbin/
[root@bogon sbin]# ./nginx
[root@bogon data]# ps -ef | grep nginx
创建前端文件目录
[root@bogon zabbix-5.0.1]# mkdir -p /usr/local/nginx/html/zabbix
拷贝前端UI文件至Ng目录
[root@bogon zabbix-5.0.1]# cp -a /usr/local/data/zabbix-5.0.1/ui/* /usr/local/nginx/html/zabbix/
创建Ng服务文件,配置开机自启
[root@bogon zabbix-5.0.1]# vim /lib/systemd/system/nginx.service
[UNIT]
Deion=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
[root@bogon zabbix-5.0.1]# systemctl daemon-reload
[root@bogon zabbix-5.0.1]# systemctl enable nginx
Nginx 启停命令
[root@bogon zabbix-5.0.1]# systemctl stop nginx
[root@bogon zabbix-5.0.1]# systemctl start nginx
若启动失败,需重启服务器
[root@bogon zabbix-5.0.1]# systemctl restart nginx
修改nginx相关配置,使PHP页面生效
[root@bogon zabbix-5.0.1]# vim /usr/local/nginx/conf/nginx.conf
Nginx 配置文件详解
listen - 定义Nginx将侦听的端口。
root - 定义存储网站服务的文档根目录。
index- 配置Nginx请求索引文件时优先处理index.php命名的文件。
server_name - 将此指令指向服务器的域名或公共IP地址。
location /- 第一个位置块包括一个try_files指令,该指令检查是否存在满足URI请求的文件。如果Nginx找不到合适的文件,则会返回404错误。
location ~ .php$- 此位置块通过将Nginx指向fastcgi-php.conf配置文件和php7.2-fpm.sock文件来处理实际的PHP处理,该文件声明了与哪个套接字相关联php-fpm。检查/etc/php/7.0/fpm/pool.d/www.conf文件并查找“listen”行。
location ~ /.ht- 通过添加deny all指令,如果任何.htaccess文件碰巧进入文档根目录,它们将不会被提供给访问者。
修改如下内容:
user root;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
root /usr/local/nginx/html/zabbix;
index index.php index.html index.htm;
location / {
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
# root /usr/local/nginx/html;
#}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
# root html;
fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
验证nginx配置文件语法错误
[root@bogon zabbix-5.0.1]# sudo nginx -t
重新加载配置文件
[root@bogon zabbix-5.0.1]# systemctl reload nginx
[root@bogon zabbix-5.0.1]# nginx -s reload
重启Nginx
[root@bogon zabbix-5.0.1]# systemctl restart nginx
然后浏览器访问Zabbix web
默认点击下一步
若出现报错:
PHP xmlreader extension missing zabbix
解决办法:
Find 命令找到自己的xmlwriter.so和xmlreader.so路径位置 ,添加至php.ini
Vi /etc/opt/remi/php73/php.ini
extension=/opt/remi/php73/root/usr/lib64/php/modules/xmlreader.so
extension=/opt/remi/php73/root/usr/lib64/php/modules/xmlwriter.so
再次重启php和nginx即可。
字体显示异常的解决办法:
Zabbix 字体目录 /usr/local/nginx/html/zabbix/assets/fonts
将Win10操作系统C:\Windows\Fonts 目录下的任意字体,拷贝到此目录,更改后缀为’.ttf’
修改php脚本文件 vi /usr/local/nginx/html/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name
define('ZBX_FONT_NAME', 'msyh');
重启zabbix、nginx服务完成安装
[root@bogon zabbix-5.0.1]# systemctl restart zabbix-server
[root@bogon zabbix-5.0.1]# systemctl restart nginx
2 安装zabbix-agent
2.1、 下载zabbix-agent 二进制文件,安装后配置开机自启
Linux 系统版本 6 请使用4.0的agent版本。
wget https://repo.zabbix.com/zabbix/4.0/rhel/6/x86_64/zabbix-agent-4.0.0-2.el6.x86_64.rpm
rpm -ivh zabbix-agent-4.0.0-2.el6.x86_64.rpm
chmod +x /etc/rc.local
echo 'service zabbix-agent start ' >> /etc/rc.local
Linux 系统版本 7+ 请使用5.0的agent 版本
wget http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.1-1.el7.x86_64.rpm
rpm -ivh zabbix-agent-5.0.1-1.el7.x86_64.rpm
systemctl enable zabbix-agent.service
2.2 配置agent接入服务端
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Hostname=db01 #本机的主机名
Server=192.168.1.63 #zabbix服务器的地址,使用内网地址
UnsafeUserParameters=1 #添加脚本监控的开关
2.3 启动
[root@db01 ~]# systemctl start zabbix-agent.service
2.4 web界面操作
2.4.1 在面板中依次点击:配置——>主机——>创建主机(如果前面添加了主机也可以选择克隆主机,修改信息进行添加)
填写主机信息
选择模板
添加完后点击添加,稍等一会儿状态变为绿色。至此,客户端主机添加完成!
3、调整触发器配置
使用模板所默认的触发器设置的阈值,在当前虚拟机的环境中会不适用,启用模板机会发生报警情况,因此需要进行配置
在面板中依次点击:配置——>模板——>Template OS Linux——>触发器——>Too many processes,根据实际情况调整值为合适的大小,以及修改触发器的严重性
4、开启声音告警
在面板中依次点击:用户——>警报声音,开启声音提醒——>更新,配置完成后,从下次采集数据开始,如果触发了触发器定义的规则,系统将发出报警声音
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
systemctl start php73-php-fpm
/usr/local/data/zabbix/sbin/zabbix_server -c /usr/local/data/zabbix/etc/zabbix_server.conf
systemctl restart zabbix-agent