主机 | 操作系统 | IP | 主要软件 |
服务器 | Centos 7.6(X86_64) | 172.20.77.201 | mysql-5.7.19.tar.gz |
客户机 | Centos 7.6(X86_64) | 172.20.77.202 | zabbix-4.0.2.tar.gz(agnetd端) |
zabbix server服务端的安装与配置
1.下载zabbix server源码包
[root@localhost src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download
2.安装依赖包
[root@localhost src]# yum install -y wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC libevent-devel mysql-devel libxml2-devel libssh2-devel OpenIPMI-devel java-1.8.0-openjdk-devel openldap-devel curl-devel unixODBC-devel -y --skip-broken
3.解压zabbix源码包
[root@localhost src]# tar -zxvf zabbix-4.0.4.tar.gz
4.配置编译环境
[root@localhost zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-ldap --with-libcurl --with-iconv
5.编译安装
[root@localhost zabbix-4.0.4]# make install
6.查看安装zabbix的版本
[root@localhost zabbix]# /usr/local/zabbix/sbin/zabbix_server -V
zabbix_server (Zabbix) 4.0.4
7.创建数据库(数据库在前面己经安装好了,这里就不做讲解)
[root@localhost zabbix-4.0.4]# mysql -uroot -p12346
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix@123456';
mysql>flush privileges;
8.导入数据表
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/schema.sql
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/images.sql
[root@localhost zabbix-4.0.4]# mysql -uzabbix -pzabbix@123456 zabbix < ./database/mysql/data.sql
9.创建启动zabbix服务的用户
[root@localhost zabbix-4.0.4]# groupadd --system zabbix
[root@localhost zabbix-4.0.4]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin zabbix
10.创建日志目录
[root@localhost zabbix-4.0.4]# mkdir -p /usr/local/zabbix/logs
11.修改目录权限所有者
[root@localhost zabbix-4.0.4]# chown -R zabbix:zabbix /usr/local/zabbix
12.修改zabbix_server配置文件
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_server.conf
PidFile=/usr/local/zabbix/logs/zabbix_server.pid
LogFile=/usr/local/zabbix/logs/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix@123456
13.修改zabbix_agentd配置文件
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1
[root@localhost zabbix-4.0.4]#
11.启动zabbix_server服务
[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_server
查看zabbix启动服务日志
[root@localhost zabbix-4.0.4]# tail /usr/local/zabbix/logs/zabbix_server.log
报错如下
110468:20200706:122007.979 database is down: reconnecting in 10 seconds
110468:20200706:122017.981 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
查询日志文件 /var/lib/mysql/mysql.sock,文件不存在
[root@localhost zabbix-4.0.4]# ll /var/lib/mysql/mysql.sock
ls: cannot access /var/lib/mysql/mysql.sock: No such file or directory
在系统中查找mysql.sock文件:
[root@localhost zabbix-4.0.4]# find / -name mysql.sock
/usr/local/mysql/mysql.sock
知道mysql.sock位置,有2种解决办法:
a.做一个mysql.sock的软链接
[root@localhost zabbix-4.0.4]# mkdir -p /var/lib/mysql
[root@localhost zabbix-4.0.4]# ln -s /usr/local/mysql/mysql.sock /var/lib/mysql/mysql.sock
重启mysql服务
[root@localhost zabbix-4.0.4]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
b.修改zabbix_server.conf中的mysql.sock的配置
[root@localhost zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_server.conf
DBSocket=/usr/local/mysql/mysql.sock
然后重启zabbix_server服务
12.启动客户端服务zabbix_agentd
[root@localhost zabbix-4.0.4]# /usr/local/zabbix/sbin/zabbix_agentd
查看客户端日志
[root@localhost zabbix-4.0.4]# tail -f /usr/local/zabbix/logs/zabbix_agentd.log
13.设置zabbix服务开机自启动
复制 zabbix 源程序 misc/init.d/tru64 下的启动脚本到 /etc/init.d 目录下
[root@localhost zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/* /etc/init.d/
#修改启动脚本使其支持 redhat 的 chkconfig,并修改实际路径
#修改服务端启动脚本
[root@localhost zabbix-4.0.4]# vi /etc/init.d/zabbix_server
# Zabbix-Directory
BASEDIR=/usr/local/zabbix #找到此项并修改为zabbix的安装路径
#修改客户端启动脚本
[root@localhost zabbix-4.0.4]# vi /etc/init.d/zabbix_agentd
# Zabbix-Directory
BASEDIR=/usr/local/zabbix
加入开机启动项
[root@client zabbix-4.0.4]# chkconfig --add zabbix_server
[root@client zabbix-4.0.4]# chkconfig --add zabbix_agentd
[root@localhost zabbix-4.0.4]# chkconfig zabbix_server on
[[root@localhost zabbix-4.0.4]# chkconfig zabbix_agentd on
[root@localhost zabbix-4.0.4]# chkconfig --list|grep zabbix
zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
zabbix_server 0:off 1:off 2:off 3:on 4:on 5:on 6:off
重启服务
[root@localhost zabbix-4.0.4]# service zabbix_server restart
Restarting zabbix_server (via systemctl): [ OK ]
[root@localhost zabbix-4.0.4]# service zabbix_agentd restart
Restarting zabbix_server (via systemctl): [ OK ]
14.将zabbix WEB服务程序复制到nginx对应的目录下并修改用户权限
[root@localhost zabbix-4.0.4]# cp -r frontends/php/* /usr/local/nginx/html/
[root@localhost php]# chown -R nginx:nginx /usr/local/nginx/html/
15.通过浏览器配置zabbix服务
#浏览器输入:http://172.20.77.201
#zabbix自动检查安装环境是否满足要求,如果出现不满足要求的情况,需要进一步的处理。这里看到关于PHP有三个参数预检没通过,修改PHP配置文件并重启php服务
[root@localhost etc]# vim /usr/local/php/etc/php.ini
post_max_size = 16M #修改
max_execution_time = 300 #修改
max_input_time = 300 #修改
date.timezone = Asia/Shanghai #此行有注释,去注释并修改
mysqli.default_socket = /var/lib/mysql/mysql.sock #指定php连接mysql的sock路径
[root@localhost etc]#systemctl restart php-fpm
#重新刷新index.php页面,发现所有fail项已经消失,但是还有一个warning存在
提示没有安装PHP LDAP模块,为了不影响后面的功能,现在把这个模块重新编译安装进去:
[root@localhost etc]# cd /usr/local/src/php-7.1.24/ext/
[root@localhost ext]# cd ldap
[root@localhost ldap]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the #报错提示没有安装autoconf
$PHP_AUTOCONF environment variable. Then, rerun this script.
[root@localhost ldap]# yum install -y autoconf
[root@localhost ldap]# /usr/local/php/bin/phpize #动态编译 PHP LDAP扩展库
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
............................
checking for stdint.h... (cached) yes
checking for unistd.h... (cached) yes
configure: error: Cannot find ldap libraries in /usr/lib.
[root@localhost ldap]# cp /usr/lib64/libldap* /usr/lib/
[root@localhost ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap
[root@localhost ldap]# make&&make install
[root@localhost ldap]# vim /usr/local/php/etc/php.ini
extension= #添加此项
[root@localhost ldap]# systemctl restart php-fpm
#重新刷新index.php页面,发现所有warning项已经消失,点Next继续下一步
#此处需要配置zabbix连接数据库的信息,修改完毕点Next继续下一步
如果提示写入配置文件失败,直接下载配置文件到本地再上传到服务器上
[root@localhost ldap]# rz #将配置文件上传到服务器
[root@localhost ldap]# mv zabbix.conf.php /usr/local/nginx/html/conf/
#刷新一下页面,可以看到配置已完成,且配置信息被保存在了/usr/local/nginx/html/conf/zabbix.conf.php文件中,如果后续需要修改配置,可以直接修改此文件。
#点Finish结束初始化
+
#完成网页配置
#登录Zabbix网页,默认账号Admin/zabbix
#登录成功界面如下
#如果想切换成中文界面
#此时界面己经切换成中文了
#可以看到己有监控数据的图形出来了
#发现上图有些文字显示中文是乱码的
#这是因为Zabbix使用的DejaVuSan.ttf字体,不支持中文,导致中文出现乱码,它存放的位置是在/usr/local/nginx/html/fonts/DejaVuSans.ttf
#解决办法,使用一个支持中文的字体,如果你手上没有相关字体的文件,最简单的办法就是找Windows系统里面的字体,它的位置一般在C:\Windows\Fonts;
#这里选用常规楷体字(simkai.ttf)上传至服务器/root目录下
[root@localhost ~]# ll simkai.ttf
-rw-r--r--. 1 root root 11785184 Jun 11 2009 simkai.ttf
[root@localhost ~]# mv simkai.ttf /usr/local/nginx/html/fonts/
[root@localhost ~]# cd /usr/local/nginx/html/fonts/
[root@localhost fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@localhost fonts]# mv simkai.ttf DejaVuSans.ttf
[root@localhost fonts]# chown nginx:nginx DejaVuSans.ttf
#重新刷新一下页面,就可以显示中文了
zabbix客户端(172.20.77.202)的配置
1.下载zabbix server源码包
[root@client src]# wget -O zabbix-4.0.4.tar.gz https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz/download
2.安装依赖包
[root@client src]# yum install -y curl curl-devel net-snmp net-snmp-devel prel-DBI gcc gcc-c++
[root@client src]# useradd -M -s /sbin/nologin zabbix
3.解压zabbix源码包
[root@client src]# tar -zxvf zabbix-4.0.4.tar.gz
4.配置编译环境
[root@client src]# cd zabbix-4.0.4/
[root@client zabbix-4.0.4]# ./configure --prefix=/usr/local/zabbix --enable-agent
5.编译安装
[root@client zabbix-4.0.4]#make install
6.设置zabbix_agentd服务开机自启动
复制 zabbix 源程序 misc/init.d/fedora/core/ 下的启动脚本到 /etc/init.d 目录下
[root@client zabbix-4.0.4]# cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@client zabbix-4.0.4]# vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
[root@client zabbix-4.0.4]# chkconfig --add zabbix_agentd #添加服务以便chkconfig可以管理zabbix_agentd
[root@client zabbix-4.0.4]# chkconfig zabbix_agentd on
[root@client zabbix-4.0.4]# chkconfig --list|grep zabbix
zabbix_agentd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
7.修改zabbix_agentd配置文件
[root@client zabbix-4.0.4]# mkdir -p /usr/local/zabbix/logs
[root@client zabbix-4.0.4]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@client zabbix-4.0.4]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Server=172.20.77.201 #zabbix server地址,可以多个用逗号,分隔
ServerActive=172.20.77.201 #主动监测本机数据并发给zabbix server
Hostname=client
UnsafeUserParameters=1
8.启动客户端服务并测试。
[root@client zabbix-4.0.4]#/etc/init.d/zabbix_agentd start
[root@client zabbix-4.0.4]#netstat -tnlp | grep –color zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 37959/zabbix_agentd
9.查看一下错误日志
[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38417:20200710:045201.506 agent #3 started [listener #2]
38418:20200710:045201.507 agent #4 started [listener #3]
38419:20200710:045201.507 agent #5 started [active checks #1]
38415:20200710:045201.508 agent #1 started [collector]
38419:20200710:045201.509 active check configuration update from [172.20.77.201:10051] started to fail (cannot connect to [[172.20.77.201]:10051]: [113] No route to host)
#日志显示到zabbix服务端网络不可达,zabbix_agentd启动成功,应该是服务端防火墙拦截了
#服务端防火墙放行10051端口
[root@localhost fonts]# firewall-cmd --permanent --add-port=10051/tcp
[root@localhost fonts]# firewall-cmd --reload
#重启zabbix_agentd服务并再次查看一下错误日志
[root@client zabbix-4.0.4]# service zabbix_agentd restart
[root@client zabbix-4.0.4]# tail -n 5 /usr/local/zabbix/logs/zabbix_agentd.log
38814:20200710:051049.445 agent #2 started [listener #1]
38815:20200710:051049.445 agent #3 started [listener #2]
38816:20200710:051049.445 agent #4 started [listener #3]
38817:20200710:051049.446 agent #5 started [active checks #1]
38813:20200710:051049.448 agent #1 started [collector]
#此时可以看到己经恢复正常了
PS:如果重启zabbix_agentd服务日志出现如下报错
[root@client zabbix-4.0.4]# tail -f /usr/local/zabbix/logs/zabbix_agentd.log
8138:20210219:000240.517 active check configuration update from [172.20.77.201:10051] started to fail (ZBX_TCP_READ() timed out)
[root@client ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Timeout=3 #修改此项,默认值为3秒,修改范围1-30秒,适当调大点可解决
Zabbix服务端管理后台的配置
1、服务端测试到客户的通讯是否正常
在zabbix的服务端执行下面的命令测试与客户端是否通讯
[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k system.uname
zabbix_get [38139]: Get value error: cannot connect to [[172.20.77.202]:10050]: [113] No route to host
#提示网络不可达,应该是客户端的防火墙拦截了
#客户端防火墙开放10050端口即可
[root@client zabbix-4.0.4]# firewall-cmd --permanent --add-port=10050/tcp
[root@client zabbix-4.0.4]# firewall-cmd --reload
#再次测试就正常了
[root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 172.20.77.202 -p10050 -k system.uname
Linux client.com.cn 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 #可以获取客户机系统信息,证明通讯正常
2、添加远程监控的客户机
#为监控的客户机添加模板
可以看到,己经配置成功了,如下图
#添加监控项,在添加主机中,已经添加了一个模板,即Template OS Linux (Template App Zabbix Agent)
,可以看看这个模板具体是监控了什么。一般来说是够用的,如有特殊的监控内容,可以添加监控项。
#页面下拉可以看到具体的细项
#设置自动发现规则
#可以修改发现的时间间隔
#将以前的更新时间间隔1h改成10s
#设置触发器
#自定义绘图颜色
配置zabbix监控apache服务
#客户机apache己提前安装好
#编辑apache配置文件,增加查看本地服务器状态页面
[root@client ~]# vim /etc/httpd/conf/httpd.conf #在行尾增加以下几行
ExtendedStatus On
<location /server-status>
SetHandler server-status
Order allow,deny
Allow from 127.0.0.1 172.20.77.0/24
</location>
#重启apache服务,防火墙放行80端口
[root@client ~]# systemctl restart httpd
[root@client ~]# firewall-cmd --permanent --add-port=80/tcp
[root@client ~]# firewall-cmd --reload
[root@client ~]# netstat -tlnp|grep 80
tcp6 0 0 :::80 :::* LISTEN 18303/httpd
#查看网址:http://172.20.77.202/server-status
是否显示正常,该页面用于收集客户端上apache服务的信息。
#下载解压apache监控脚本
[root@client src]# wget https:///lorf/zapache/archive/master.zip
[root@client src]# unzip master.zip
[root@client src]# cd zapache-master/
[root@client zapache-master]# ls -l
-rw-r--r--. 1 root root 676 Apr 22 2016 httpd-server-status.conf.sample
-rw-r--r--. 1 root root 1780 Apr 22 2016 README.md
-rw-r--r--. 1 root root 224 Apr 22 2016 userparameter_zapache.conf.sample
-rwxr-xr-x. 1 root root 6110 Apr 22 2016 zapache
-rw-r--r--. 1 root root 52258 Apr 22 2016 zapache-template-active.xml
-rw-r--r--. 1 root root 52024 Apr 22 2016 zapache-template.xml
#说明
httpd-server-status.conf.sample 是用于配置server-status的上个步骤已经配置过了
userparameter_zapache.conf.sample 、zapache 关键的文件
zapache-template-active.xml zapache-template.xml模板
[root@client zapache-master]# cp zapache /usr/local/bin/
#这里需要修改一下脚本的STATUS_URL的值,不然后面添加模板监控项可能不支持
[root@client zapache-master]# vim /usr/local/bin/zapache
STATUS_URL="http://172.20.77.202/server-status?auto" #修改
#可以用curl测试一下,能否打开上面的链接
[root@client src]# curl http://172.20.77.202/server-status?auto
Total Accesses: 3
Total kBytes: 4
Uptime: 4516
ReqPerSec: .000664305
BytesPerSec: .906997
BytesPerReq: 1365.33
BusyWorkers: 1
IdleWorkers: 5
Scoreboard:
[root@client zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@client zapache-master]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@client zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf
[root@client zabbix_agentd.conf.d]# vi userparameter_zapache.conf
UserParameter=zapache[*],/usr/local/bin/zapache \$1 #修改
#查看脚本用户是否有执行权限
[root@client zapache-master]# ll /usr/local/bin/zapache
-rwxr-xr-x. 1 root root 6110 Jul 15 09:10 /usr/local/bin/zapache
[root@client zabbix_agentd.conf.d]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #取消注释,修改路径,启用引用此目录
#重启zabbix_agentd服务
[root@client zapache-master]# service zabbix_agentd restart
服务端页面,后台导入模板,使用master.zip
里的zapache-template.xml
作为模板文件,点击“导入”
为监控的客户机添加apache监控模板
#查看最新数据,筛选Apache
#勾选几个想要查看的项目生成图形
配置zabbix监控mysql服务
#zabbix默认提供了mysql的监控模板。zabbix服务器默认有装mysql数据库,这里就用zabbix服务器监控它自己本身的mysql数据库。
# 对数据库用户zabbix,授予在任何对象上的usage权限
# 由于我们是监控的服务端上的mysql服务,在赋予权限的时,zabbix用户的密码应该与配置zabbix服务端时mysql用户zabbix的密码保持一致。
# 如果监控的不是服务端上的mysql,赋予zabbix用户时密码随意。
[root@server ~]# mysql -uroot -p123456
mysql> grant usage on *.* to zabbix@'%' identified by 'zabbix@123456';
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> exit
Bye
# 复制一份zabbix安装包中mysql用户参数配置文件到zabbix的安装配置目录下
[root@server ~]# cp /usr/local/src/zabbix-4.0.4/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ #取消注释,修改并启用
# 建立数据库与zabbix的连接
[root@server ~]# vim /usr/local/zabbix/etc/.my.cnf
#Zabbix Agent
[mysql]
host=localhost
user=zabbix
password=zabbix@123456
socket=/usr/local/mysql/mysql.sock
[mysqladmin]
host=localhost
user=zabbix
password=zabbix@123456
socket=/usr/local/mysql/mysql.sock
# 编辑zabbix中mysql用户参数配置文件,添加.my.cnf文件的路径
# 添加mysql的路径
# 主要看HOME所在行的目录是否正确。
[root@server ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
1 # For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
2
3 # Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
4 # Key syntax is mysql.status[variable].
5 UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql -N | awk '{print $$2}'
6
7 # Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
8 # Key syntax is mysql.size[<database>,<table>,<type>].
9 # Database may be a database name or "all". Default is "all".
10 # Table may be a table name or "all". Default is "all".
11 # Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".
12 # Database is mandatory if a table is specified. Type may be specified always.
13 # Returns value in bytes.
14 # 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
15 UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free ";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name= \"$2\"");" | HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysql -N'
16
17 UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/ /usr/local/mysql/bin/mysqladmin ping | grep -c alive
18 UserParameter=mysql.version,/usr/local/mysql/bin/mysql
# 重启zabbix_agentd服务
[root@server ~]# service zabbix_agentd restart
#为需要监控的主机添加模板“Template DB MySQL”
#配置好后,在监测-最新数据里就可以看到mysql监控数据了
如果在配置过程中没有得到想要的结果可以按照以下步骤排错:
①查看zabbix_server、zabbix_agentd是否已经启动,有没有监听到10050和10051端口号。
②查看zabbix服务端和客户端的日志文件,看看有没有报错。
③查看模板的脚本文件,看脚本里的一些命令能不能正确获取的数据。apache的是/usr/local/bin/zapache,mysql的是/usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
Zabbix邮件报警配置
邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件
这里演示如何调用第三方邮件服务来发送邮件:
第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件
[root@server ~]# yum install -y mailx
[root@server ~]# vi /etc/mail.rc #编辑mailx的配置文件,在最末尾添加如下信息
set from=example@126.com
set smtp=
set smtp-auth-user=example@126.com
set smtp-auth-password=你的密码 注意:此为126邮箱设置的客户端授权密码
set smtp-auth=login
[root@server ~]# echo "zabbix test mail" |mailx -s "zabbix" xxxxxx@ #测试邮件是否能发送成功
在zabbix服务端写邮件发送脚本:
[root@server ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@server alertscripts]# vim sendmail.sh
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mailx -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
[root@server alertscripts]# chown zabbix:zabbix sendmail.sh
[root@server alertscripts]# chmod +x sendmail.sh
修改主配置文件,让服务读取到这个脚本:
vim /usr/local/zabbix/etc/zabbix_server.conf
修改:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
为
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
测试发送脚本
/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxxx@ "测试邮件标题" "测试邮件内容"
[root@server alertscripts]#chmod 777 /tmp/sendmail.log
页面添加报警配置
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。
这是因为zabbix3.0之后,可以自定义参数了,所以不写参数,它是不会传参数的。
在2.x版本不存在这个问题,默认会传3个参数。
动作内容如下
名称:Action-Email
操作
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件
恢复操作
默认接收人:已恢复!{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {}
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件
测试,关闭 zabbix 客户端服务 zabbix_agentd
[root@server ~]# systemctl stop zabbix_agentd
观察结果:延迟比较大,大概要5-10分钟
可以在日志看送达状态:
使用Grafana美化Zabbix监控图表
安装Grafana
Grafana是一个将数据可视化的工具,是网络架构和应用分析中最流行的数据展示工具,相比于zabbix的图形界面而言Grafana拥有更美观的界面以及功能更强大的插件。
官方下载地址:
https://grafana.com/grafana/download
方法1:离线安装上传grafana-6.6.2-1.x86_64.rpm到linux上
[root@xuegod63 ~]# rz
[root@server ~]# yum install -y grafana-6.6.2-1.x86_64.rpm
启动服务
[root@server ~]# systemctl start grafana-server
方法2:在线安装
[root@server ~]# wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm
[root@server ~]# rpm -i --nodeps grafana-6.6.2-1.x86_64.rpm
访问web界面:http://172.20.77.201:3000/login
用户名:admin 密码:admin
第一次登陆,会提示让你设置一个新的密码,因为默认密码是弱口令密码,存在风险。
添加数据源,点两个位置都可以
但是Grafana默认并没有zabbix数据源的支持。
添加数据源拓展插件
方法1:离线安装插件上传grafana-zabbix-v3.10.5.zip到linux系统上
[root@server ~]# rz
方法2:网上下载:https://grafana.com/api/plugins/alexanderzobnin-zabbix-pp/versions/3.10.5/download
解压至插件目录
[root@server ~]# unzip grafana-zabbix-v3.10.5.zip -d /var/lib/grafana/plugins/
注:压缩包名称较长这里已经简短其文件名,如果自行下载的版本解压时注意文件名。
[root@xuegod63 ~]# systemctl restart grafana-server
方法2:在线安装插件
[root@xuegod63 ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
[root@xuegod63 ~]# systemctl restart grafana-server
启用插件下拉至最后找到zabbix点击启用
下拉至最后找到zabbix
点击启用
现在添加数据源就有zabbix的选项了
下拉到最后选择zabbix
zabbix API地址:http://172.20.77.201/api_jsonrpc.php
启用仪表盘,上一步骤是在settings中,点击切换到仪表盘即可开启。
导入成功:
查看效果
选择Linux Server仪表盘看一下效果
点击Zabbix Template Linux Server
关于Zabbix的源码包安装就讲到这里,如有错误,欢迎留言指正