Zabbix安装部署


zabbix的安装部署

配置要求图片

关于Zabbix 6.0的一些介绍可以参考:https://www.zabbix.com/documentation/6.0/zh/manual/introduction/whatsnew600

初始环境

关闭系统防火墙

[root@Zabbix ~]# systemctl  stop firewalld 
[root@Zabbix ~]# systemctl  disable firewalld
[root@Zabbix ~]# vim /etc/selinux/config
SELINUX=disabled

关闭交换分区

[root@Zabbix ~]# swapoff  -a 
[root@Zabbix ~]# vim /etc/fstab 
#/dev/mapper/centos-swap swap       swap    defaults        0 0

部署各类软件

部署nginx+php环境

安装配置nginx

[root@Zabbix ~]# rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
[root@Zabbix ~]# mkdir /web
[root@Zabbix ~]# vim /etc/nginx/conf.d/zabbix.conf 
server {
    listen 80;
    server_name localhost;
    root /web;
    location / {
        index index.php index.html;
    }
    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;
        }
}
[root@Zabbix ~]# systemctl  enable nginx 
[root@Zabbix ~]# systemctl  start nginx 

安装并配置php

[root@Zabbix ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@Zabbix ~]# yum -y install epel-release
[root@Zabbix ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@Zabbix ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm   #webtatic源,一个web服务的源#安装php7及其它依赖软件
[root@Zabbix ~]# yum -y install gcc gcc-c++ php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd
[root@Zabbix ~]# cd /web/
[root@Zabbix web]# vim index.php   #创建php测试页
<?php
phpinfo();
?>
[root@Zabbix web]# systemctl  enable php-fpm
[root@Zabbix web]# systemctl  start php-fpm

图片

部署数据库

注:zabbix6.0不支持mariadb5.5,要安装新版本数据库。

配置mariadb源

[root@Zabbix web]# vim  /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB?spm=a2c6h.25603864.0.0.33b75602iN6BeE
gpgcheck = 1
enable = 1

下载并启动

[root@Zabbix web]# yum -y install mariadb-server
[root@Zabbix web]# systemctl  enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@Zabbix web]# systemctl  start mariadb

初始化数据库

[root@Zabbix web]# mysql_secure_installation
Enter current password for root (enter for none):   #回车
Switch to unix_socket authentication [Y/n] n       #是否更改套接字
Change the root password? [Y/n] y       #修改MySQL的root密码
Remove anonymous users? [Y/n] y         #清除匿名用户
Disallow root login remotely? [Y/n] y   #是否允许root远程登录
Remove test database and access to it? [Y/n] y    #清除测试数据库
Reload privilege tables now? [Y/n] y    #刷新表权限

创建zabbix用户及数据库

[root@Zabbix web]# mysql -uroot -p 
输入创建MySQL密码
MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@'10.10.10.%' identified by 'zabbix';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.001 sec)

编译安装Zabbix-server

下载zabbix6.0包

[root@Zabbix web]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.9.tar.gz

安装依赖

[root@Zabbix web]# yum -y install  mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel   libcurl-devel

编译安装zabbix

[root@Zabbix web]# tar xzf zabbix-6.0.9.tar.gz 
[root@Zabbix web]# cd zabbix-6.0.9
[root@Zabbix zabbix-6.0.9]# ./configure --sysconfdir=/etc/zabbix --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre
[root@Zabbix zabbix-6.0.9]# make install 

修改zabbix服务端配置文件

[root@Zabbix zabbix-6.0.9]# vim /etc/zabbix/zabbix_server.conf
[root@Zabbix zabbix-6.0.9]# grep -n '^[a-Z]' /etc/zabbix/zabbix_server.conf
12:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=zabbix
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1

向数据库中导入zabbix的库表及数据

#注意导入的顺序
[root@Zabbix zabbix-6.0.9]# cd database/mysql/
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < schema.sql 
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < images.sql 
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < data.sql 
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < double.sql 
[root@Zabbix mysql]# mysql -uroot -pzabbix zabbix < history_pk_prepare.sql 

移动zabbix前端页面到网站根目录

[root@Zabbix ~]# cp -r /web/zabbix-6.0.9/ui/*  /web/

配置zabbix系统启停命令

[root@Zabbix mysql]# vim /usr/lib/systemd/system/zabbix.service
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target
[root@Zabbix mysql]# systemctl daemon-reload     #加载配置文件
[root@Zabbix mysql]# systemctl enable zabbix
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix.service to /usr/lib/systemd/system/zabbix.service.
[root@Zabbix mysql]# systemctl start zabbix

进入访问页面及后续问题解决

浏览器访问zabbix

网页输入IP自动跳转安装页面图片点击下一步会遇到报错如下图,这时候需要修改php配置文件图片

[root@Zabbix mysql]# vim /etc/php.ini 
[root@Zabbix mysql]# egrep -n '^max_.*_time|post_max' /etc/php.ini 
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
[root@Zabbix mysql]# systemctl  restart php-fpm

配置数据库图片其它设置图片安装完成需要创建zabbix.conf.php文件,可以根据页面提示保存到相对位置下图片

[root@Zabbix mysql]# cd /web/conf/
[root@Zabbix conf]# ll
总用量 12
drwxr-xr-x 2 root root    6 10月 14 15:30 certs
-rw-r--r-- 1 root root 1036 10月 14 15:30 maintenance.inc.php
-rw-r--r-- 1 root root 1732 10月 14 15:48 zabbix.conf.php
-rw-r--r-- 1 root root 1710 10月 14 15:30 zabbix.conf.php.example

登录图片图片

解决Zabbix中文乱码问题

字体设置中文后查看图标会出现如下图的问题图片上传一个中文的ttf字体替换zabbix自用的字体即可

[root@Zabbix conf]# cd /web/assets/fonts/
[root@Zabbix fonts]# ll
总用量 740
-rw-r--r-- 1 root root 756072 10月 14 15:30 DejaVuSans.ttf
[root@Zabbix fonts]# rz -E
rz waiting to receive.
[root@Zabbix fonts]# ll
总用量 4780
-rw-r--r-- 1 root root  756072 10月 14 15:30 DejaVuSans.ttf
-rw-r--r-- 1 root root 4135804 3月   9 2020 simkai.ttf
[root@Zabbix fonts]# rm -rf DejaVuSans.ttf 
[root@Zabbix fonts]# mv simkai.ttf DejaVuSans.ttf

图片

zabbix 配置文件详解

server端配置文件

主要参数及其作用如下所示:

DBHost #数据库主机地址
DBName #数据库名称
DBUser、DBPassword  #数据库用户名和数据库密码
DBPort  #数据库连接端口
AlertScriptPath  #告警脚本存放路径
CacheSize  #缓存大小
CacheUpdateFrequency  #缓存更新时间
DebugLevel  #日志级别
LogFile  #日志文件名称
LogFileSize  #日式文件大小,超出指定的值会进行自动切割
LogSlowQueries  #数据库慢查询时间,单位为毫秒
PidFile  #PID文件
ProxyConfigFrequency  #在Proxy被动模式下,Server主动向Proxy同步配置文件的时间
ProxyDataFrequency  #在Proxy被动模式下,Server主动向Proxy请求历史数据时间
StartDiscovers  #发现规则的线程数
Timeout  #链接Agent超时时间
TrendCacheSize  #历史数据缓存大小
User  #执行zabbix监控的用户
HistoryCacheSize  #历史记录缓存大小
ListenIP     #监听的IP地址
ListenPort   #监听的端口号
LoadModule   #加载的模块
LoadModulePath  #加载模块的路径

监控本机

zabbix默认就是对本机进行监控的,但是一定要开启zabbix-agent服务,在对应的界面,我们可以看到,zabbix的监控有四种:

  • ZBX
  • SNMP
  • JMX
  • IPMI

image20200216003900217.png

  • 绿色表示正常
  • 红色则表示有问题 如果出现红色了,首先要检查系统中是否安装了zabbix-agent软件包,然后再确认服务是否开启,第三个要检查状态是否已启用。各位可以尝试停止zabbix-agent服务,并且点击一下状态下的已启用按钮改为停用,看一下彻底不好用是什么样的。
systemctl stop zabbix-agent

image20200216004245599.png

客户端安装部署

1.安装zabbix agent

当我们把监控端配置启动以后,我们需要来设置一下我们的被监控端,我们在被监控的主机安装好zabbix-agent,设置好他的所属的监控端server,并把他添加到server端,就能将其纳入我们的监控系统中去了。

# 配置阿里云下载源
vim /etc/yum.repos.d/zabbix.repo
内容如下:
[zabbix]
name=Zabbix Official Repository
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/6.0/rhel/7/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

# 清除yum安装包建立新的缓存
yum clean all && yum makecache
# 安装zabbix
yum install -y zabbix-agent

2.配置zabbix_agentd.conf

# 客户端配置文件默认路径/etc/zabbix/zabbix_agentd.conf
[root@test1 ~]# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.8.120
ServerActive=192.168.8.120
Hostname=test1
Include=/etc/zabbix/zabbix_agentd.d/*.conf

3.启动zabbix_agent

[root@test1 ~]# systemctl start zabbix-agent

4.设置开机自启动

[root@test1 ~]# systemctl enable zabbix-agent

5.检查agent服务

img

6.在zabbix-server上添加host

img

7.检查新添加的host

img

三、zabbix_agentd.conf 配置参数文件说明

  • AllowRoot 默认值:0 是否允许使用root身份运行zabbix,如果值为0,并且是在root环境下,zabbix会尝试使用zabbix用户运行,如果不存在会告知zabbix用户不存在。 0 - 不允许 1 - 允许
  • BufferSend 取值范围:1-3600 默认值:5 数据存储在buffer中最长多少秒
  • BufferSize 取值范围:2-65535 默认值:100 buffer最大值,如果buffer满了,zabbix将会将检索到的数据发送给zabbix server或者proxy
  • DebugLevel 取值范围:0-5 默认值:3 指定日志级别 0 - basic information about starting and stopping of Zabbix processes 1 - critical级别 2 - error级别 3 - warnings级别 4 - debug级别 5 - extended debugging (与级别4一样. 只能使用runtime control 来设置.)
  • EnableRemoteCommands 默认值:0 是否运行zabbix server在此服务器上执行远程命令 0 - 禁止 1 - 允许
  • HostMetadata 取值范围:0-255 字符 仅用于主机自动注册功能,如果当前值为定义,那么它的值默认为HostMetadataItem的值。这个选项在2.2.0之后加入,并且确保支付不能超过限制,以及字符串必须是UTF8,否则服务器无法启动
  • HostMetadataItem 功能同上,如果HostMetadata值未设置,这个配置才有效。支持使用UserParameters、alias、system.run[]
  • Hostname 默认值:HostnameItem配置的值 主机名,必须唯一,区分大小写。Hostname必须和zabbix web上配置的一直,否则zabbix主动监控无法正常工作。为什么呢?因为agent拿着这个主机名去问server,我有配置主动监控项 吗?server拿着这个主机名去配置里面查询,然后返回信息。 支持字符:数字字母、’.’、’ '、 ‘_’、 ‘-’,不超过64个字符
  • HostnameItem 默认值:system.hostname 设置主机名,只有当HostMetadata没设置,她才生效。不支持UserParameters 、aliases,支持system.run[]
  • Include 包含自配置文件,不同的配置写到不同的文件中,然后include,配置文件会显得规范。例如: /absolute/path/to/config/files/*.conf. Zabbix 2.4.0开始支持正则表达式。
  • ListenIP 默认值:0.0.0.0 监听IP地址,默认为所有接口,多个ip之间使用逗号分隔
  • ListenPort 取值范围:1024-32767 默认值10050 监听端口
  • LoadModule 加载模块文件,可以写多个 格式: LoadModule= 必须配置LoadModulePath
  • LoadModulePath 模块路径,绝对路径
  • LogFile 日志文件路径 如果未配置,日志会记录到syslog中
  • LogFileSize 取值范围:0-1024 默认值:1 日志文件大小,单位为MB。 0 - 关闭自动轮滚. 备注:如果日志文件到达了最大值并且文件轮滚失败,那么老日志文件会被清空掉。
  • LogRemoteCommands 默认值:0 记录原型执行的shell命令日志,级别为warrning 0 - disabled 1 - enabled
  • MaxLinesPerSecond 取值范围:1-1000 默认值:100 处理监控类型为log何eventlog日志时,agent每秒最大发送的行数。默认为100行
  • PidFile 默认值:/tmp/zabbix_agentd.pid PID文件名
  • RefreshActiveChecks 取值范围:60-3600 默认值:120 多久时间(秒)刷新一次主动监控配置信息,如果刷新失败,那么60秒之后会重试一次
  • Server zabbix server的ip地址,多个ip使用逗号分隔
  • ServerActive zabbix 主动监控server的ip地址,使用逗号分隔多IP,如果注释这个选项,那么当前服务器的主动监控就被禁用了
  • SourceIP zabbix对外连接的出口IP地址
  • StartAgents 取值范围:0-100 默认值:3 zabbix启动之后开启被动监控的进程数量,如果设置为0,那么zabbix被动监控被禁用,并且不会监听相应端口,也就是说10050端口不会开启。
  • Timeout 默认值:1-30 默认值:3 超时时间,单位秒
  • UnsafeUserParameters 取值范围:0,1 默认值: 0 允许所有字符的参数传递给用户定义的参数。
  • User 默认值:zabbix 运行zabbix程序的用户,如果AllowRoot被禁用,才有效果
  • UserParameter 用户自定义key,格式: UserParameter=, 例如:serParameter=system.test,who|wc -l

FAQ

1、启动zabbix_agent后日志报错

报错信息:

85462:20210307:144312.408 no active checks on server [192.168.0.127:10051]: host [test1] not found

解决方案

在zabbix-server上添加host,客户端安装部署步骤6。