在centos7上体验zabbix5.0
以下文档基于zabbix5.0、centos7.9、nginx1.16、php73、mysql5.7
,如有不同版本请自行修改。
官方文档:
https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx
参考文档:
https://www.cnblogs.com/clsn/p/7885990.html#auto-id-76
Agent端
安装
推荐使用agent2,支持更多zabbix自带的监控模板。
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent2 -y
Agent修改配置
vi /etc/zabbix/zabbix_agent2.conf
# 允许192.168.1.% 网段的服务器连接这个agent
Server=127.0.0.1,192.168.1.0/24
# 192.168.1.82是zabbix server的ip
ServerActive=192.168.1.82
# 本机的hostname,system.hostname是指取系统的hostname,也可以配置为固定值
HostnameItem=system.hostname
如果出现问题,可以先查看agent日志:/var/log/zabbix/
监控mysql(适用agent1)
创建用于监控的mysql用户
CREATE USER 'zabbix'@'%' IDENTIFIED BY '12345678';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';
在zabbix客户端默认配置路径下 /etc/zabbix 目录下新建 .my.cnf 文件,然后新增一个监控帐号,上面我们新建了一个zabbix帐号
[client]
user='zabbix'
password='12345678'
cat >/etc/zabbix/.my.cnf <<EOF
[client]
user='zabbix'
password='12345678'
EOF
复制配置文件
cp /usr/share/doc/zabbix-agent-5.0.12/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
sed -i 's%], mysql%],HOME=/etc/zabbix/ mysql%g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
systemctl restart zabbix-agent
最后,在web端mysql所在的主机上,添加关联模板Template DB MySQL by Zabbix agent
,为了减少警告,进入该模板的修改界面,跳转到宏
标签,将{$MYSQL.BUFF_UTIL.MIN.WARN}
的值改为1
。这个配置的意思是,当缓存池的利用率低于{$MYSQL.BUFF_UTIL.MIN.WARN}%的时候
,会有一个warning
级别的问题。默认值50
过高,不需要的话可以移除掉或者改为1
。
监控mysql(适用agent2)
创建用于监控的mysql用户
CREATE USER 'zabbix'@'%' IDENTIFIED BY '12345678';
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';
主机选择模板Template DB MySQL by Zabbix agent 2
,在主机
的宏
上添加值
{$MYSQL.DSN} tcp://127.0.0.1:3306
{$MYSQL.PASSWORD} 12345678
{$MYSQL.USER} zabbix
禁用模板的触发器
:MySQL: Buffer pool utilization is too low
监控redis
使用模板Template DB Redis
(仅适用于agent2
)
如果redis在本机且端口是6379,则直接可以监控。否则需要配置一下。
打开模板的宏
,找到{$REDIS.CONN.URI}
,修改host和端口。
如果redis还设置了密码,则需要增加一个宏,比如{$REDIS_PASS}
,然后,在这个模板的触发器
标签中,找到表达式
中含有["{$REDIS.CONN.URI}"]
的指令,点击进去修改成["{$REDIS.CONN.URI}","{$REDIS_PASS}"]
监控nginx
nginx编译时需要加上参数--with-http_stub_status_module
,如果已经有安装的nginx,通过nginx -V
查看是否有--with-http_stub_status_module
,有则表示可以使用stub status
模块。
在nginx配置文件中加上:
location = /basic_status {
stub_status;
allow 127.0.0.1;
allow 192.168.0.0/24;
allow 192.168.101.0/24;
allow ::1;
deny all;
}
nginx所在主机关联模板Template App Nginx by Zabbix agent
,其中以下宏为默认值
{$NGINX.STUB_STATUS.HOST} localhost
{$NGINX.STUB_STATUS.PATH} basic_status
{$NGINX.STUB_STATUS.PORT} 80
如果不是这些默认值,则在nginx所在主机
的宏
上添加对应的配置项即可。
服务端
安装
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum install zabbix-server-mysql zabbix-agent2 -y
Mysql
初始化的时候一定要按照文档,create database zabbix character set utf8 collate utf8_bin;
,不要换成utf8mb4,也不要修改collate成其他utf8,否则后面会出现无法连接mysql的错误。
导入mysql表结构
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uxxxx -p zabbix
编辑配置文件
/etc/zabbix/zabbix_server.conf,修改DBUser、DBPassword
部署web端可视化监控界面
使用已有的nginx和php73环境。
下载php-src(https://www.zabbix.com/cn/download_sources#tab:50LTS),压缩包中的ui
目录,就是php-src。
上传前端php项目代码并解压到/usr/share/zabbix
,并修改权限
chown -R nginx:nginx /usr/share/zabbix
# 为php-fpm配置做准备,这里路径可以自定义
mkdir -p /var/opt/rh/rh-php73/run/php-fpm/
mkdir -p /var/opt/rh/rh-php73/lib/php/session
chown nginx:nginx /var/opt/rh/rh-php73/lib/php/session
增加php-fpm配置文件
[zabbix]
user = nginx
group = nginx
# sock文件路径,在nginx配置文件中需要使用到,先把目录创建好并保证php-fpm可以写入
listen = /var/opt/rh/rh-php73/run/php-fpm/zabbix.sock
listen.acl_users = nginx
listen.allowed_clients = 127.0.0.1
# 默认的0660 修改成0666
listen.mode = 0666
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
php_value[session.save_handler] = files
# session文件存放目录,先把目录创建好并保证php-fpm可以写入
php_value[session.save_path] = /var/opt/rh/rh-php73/lib/php/session
php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai
重启php-fpm:systemctl restart php73-php-fpm
增加nginx配置文件
# 修改成自己的端口号和域名
server {
listen 1080;
server_name example.com;
root /usr/share/zabbix;
index index.php;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location ~ /(api\/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location ~ [^/]\.php(/|$) {
# 这里就是php-fpm中的listen指向的sock文件
fastcgi_pass unix:/var/opt/rh/rh-php73/run/php-fpm/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
重启nginx服务:systemctl restart nginx
生成zabbix要引用的文件/etc/zabbix/web/maintenance.inc.php,内容为空的php模板即可
<?php
并设置目录权限,以便web安装的时候可以写入配置文件
chown nginx:nginx /etc/zabbix/web/
访问nginx里配置的端口,将进入初始化,根据提示安装缺少的php模块
# 比如ldap模块
yum install -y php73-php-ldap
图形中文乱码
获取一个中文字体的ttf文件(比如阿里普惠体Alibaba-PuHuiTi-Regular.ttf
),上传到 /usr/share/zabbix/assets/fonts/ 下。
修改 /usr/share/zabbix/include/defines.inc.php 文件
define('ZBX_GRAPH_FONT_NAME', 'Alibaba-PuHuiTi-Regular');
define('ZBX_FONT_NAME', 'Alibaba-PuHuiTi-Regular');
web端
配置报警发送邮件
- 进入
管理
–报警媒介类型
–Email (HTML)
,配置发送邮件的邮箱信息,点击更新
;点击测试
测试邮件是否能发送成功。【这里不设置好会发送不了邮件】 - 进入
管理
–用户
,点击要设置邮件通知的用户,切换到报警媒介
,添加一个类型为Email (HTML)
、收件人填邮箱。【这里没设置好的话用户会收不到邮件】 - 进入
配置
–动作
–Trigger actions
,将默认的动作Report problems to Zabbix administrators
启用,也可以自己配置一个动作。【这里没启用的话,出问题不会触发发送邮件的动作】