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
- 绿色表示正常
- 红色则表示有问题 如果出现红色了,首先要检查系统中是否安装了zabbix-agent软件包,然后再确认服务是否开启,第三个要检查状态是否已启用。各位可以尝试停止zabbix-agent服务,并且点击一下状态下的已启用按钮改为停用,看一下彻底不好用是什么样的。
systemctl stop zabbix-agent
客户端安装部署
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服务
6.在zabbix-server上添加host
7.检查新添加的host
三、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。