zabbix4.0
zabbix监控范畴
zabbix依赖于mysql保存数据,所以第一步先安装mysql数据库,参考阿里云centos环境之mysql安装(二)
注意启动mysql报/var/lib/mysql/mysql.sock不存在时,要修改/etc/my.cnf,指定mysql.sock位置,默认位置是/tmp/mysq.sock。mysq.sock是一个临时文件,随着mysql服务启动而创建,关停而删除。
发布版本的包下载地址
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
如果上面报 file /etc/yum.repos.d/zabbix.repo from install of zabbix-release-4.1-1.el7.noarch conflicts with file from package zabbix-release-4.0-1.el7.noarch则使用
rpm -Uvh httpxxx这是一个更新命令。不仅安装了软件包,同时更新了cat /etc/yum.repos.d/zabbix.repo
刚才我们提到yum会从一个资源库(repository)中下载并安装软件包,zabbix.repo,指的就是资源库,它的路径在/etc/yum.repos.d/下
cat /etc/yum.repos.d/zabbix.repo如下:
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
注意上面省略了版本号。默认下载cat /etc/yum.repos.d/zabbix.repo里baseurl指定的url下版本。使用浏览器打开http://repo.zabbix.com/zabbix/4.0/rhel/7/可以看到各个版本,如果需要特殊版本,需要带个版本号,比如
yum install -y zabbix-server-mysql-4.2.0-0.1alpha1.el7.x86_64.rpm
这里其实安装的是mariadb数据库,MariaDB是MySQL的分支,也是它的进阶产品,未来很有可能替代MySQL,MariaDB的API和协议兼容MySQL,另外又添加了一些功能。外部看,其它两者的操作方式都一样的。
由于我试了很多方式,以二进制方式安装mysql,到最后一步zabbix web操作界面的Configure DB connection步骤时,报Can’t connect to local MySQL server through socket '/var/lib/mysql/mysql.sock,试了多种方式都不行,最后试了一下mariadb,一次就成功,所以使用了。其实两者数据库一样的。
yum install -y mariadb-server
systemctl start mariadb.service
systemctl enable mariadb.service
mysql -u root -p
可参考阿里云centos环境之mysql安装(二)修改root密码和开放外网访问能力。
在mysql那台机器上登陆数据库
mysql -uroot -p
输入密码
创建zabbix数据库并赋予用户zabbix从任何ip上都能连接mysql的权限。
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'localhost' identified by 'root';#密码设为root
flush privileges;
使用grant all privileges on来更改用户对应某些库的远程权限,如果没有这个用户,就在mysql.user表里添加这个帐号。
语法模板:grant all privileges on 库名.表名 to ‘用户名’@‘IP地址’ identified by ‘密码’;
初始化zabbix数据库,命令不是mysql命令行直接,而在是shell终端执行
解压脚本,使用zabbix登陆mysql,并在zabbix数据库时执行sql脚本
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
系统将提示您输入新创建的密码,create.sql.gz是zabbix提供的初始化脚本
有可能用户登陆失败,我说是有可能。在上面设置的密码没弄成功,其实密码是空,这时直接回车试试。
编辑配置文件
vi /etc/zabbix/zabbix_server.conf
修改密码
DBPassword=password
确认数据库用户及密码
grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
vi /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga->php_value date.timezone Asia/Shanghai
临时关闭
setenforce 0
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
less /var/log/zabbix/zabbix_server.log
进入Zabbix Server 二进制文件的路径/usr/sbin目录,执行
zabbix_server -V
在安装zabbix server的时候默认就安装了apache,zabbix依靠apache提供的web服务,修改Zabbix的浏览器访问端口,就是修改apache的服务端口(默认端口:80)
编辑httpd.conf文件:vim /etc/httpd/conf/httpd.conf
修改默认的侦听端口
Listen 8008
访问http://server_ip_or_name
/zabbix。
其实Database host填localhost而不是127.0.0.1,界面上127.0.0.1是因为在安装mysql数据库时由于使用localhost连接不成功换成127.0.0.1就连接成功时的情况,小概念事件。这里使用mariadb,故还是换成localhost。一直点next即可。
这些配置信息在/etc/zabbix/web/zabbix.conf.php里。如果删除这个文件,而界面就又切回初始化界面了。
默认是英文界面,点击右上角人物图标
语言选项选中文(zh_CN),更新按钮即可。
默认登陆用户名和密码:Admin/zabbix或Zabbix/zabbix
配置->主机查看zabbix server状态,如果ZBX显示绿色,则zabbix server运行正常,如果是红色ZBX表示失败,此时将鼠标移动到红色Z上,会有具体的提示。
这里需要注意,在上图里我添加了模板了,如果没给主机添加模板,后面ZBX始终是灰色的,将Windows_A加入了zabbix的监控范围,但是并没有对它进行任何实际的监控就是灰色
# 查看包名
rpm -qa|grep zabbix
#删除包,多个用空格间隔
yum remove -y 包名
后面想了万一数据库已经在centos上安装了,总不能再安装一个mariadb数据库了吧。
所以又测试了mysql5.7,发现可以。
至少我能知道zabbix4X与mysql5.7是匹配的。
打开/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
socket默认配置是socket=/var/lib/mysql/mysql.sock,可能是这原因。
测试一下zabbix连接的数据库放在另一台机器上效果。
虚拟机:192.168.2.33上安装zabbix,版本4.1
虚拟机:192.168.2.34上安装mysql,版本5.7
文件/etc/zabbix/zabbix_server.conf 相关配置如下
[root@localhost zabbix]# grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf
38:LogFile=/var/log/zabbix/zabbix_server.log
49:LogFileSize=0
72:PidFile=/var/run/zabbix/zabbix_server.pid
82:SocketDir=/var/run/zabbix
91:DBHost=192.168.2.34
100:DBName=zabbix
116:DBUser=root
124:DBPassword=root
131:DBSocket=/usr/local/mysql/mysql.sock
356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
473:Timeout=4
516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
527:ExternalScripts=/usr/lib/zabbix/externalscripts
563:LogSlowQueries=3000
最主要的是
91:DBHost=192.168.2.34
116:DBUser=root
124:DBPassword=root
有一点要注意,zabbix-server必需安装在linux上,而远程连接的数据必需是安装在linux系统上的,不能安装在windows上。因为zabbix会找不到mysql.sock文件
参考:
官文
Zabbix4.0中文手册
zabbix从放弃到入门(1):zabbix概念
zabbix从放弃到入门(2):zabbix安装