以前一直用PTRG来进行运维,但在功能性上总感觉有一定欠缺,特别是在服务器监控和主动报警方面。因为国产开源堡垒机jumpserver用得一直很不错,所以第一选择肯定是国内的开源。目标放在了腾讯的蓝鲸社区版上,仔细阅读了文档,发现对我来说功能太强,软件过于庞大,于是放弃。兜兜转转后,选择了zabbix功能够用,对环境要求也不高。下面记录一下安装过程备忘。
一、安装准备
zabbix目前是6.0版,zabbix应该是我目前看到中文化最好的官网了,不但提供了很详细的安装步骤,难得的是官网会根据你选择的安装环境给出较详细的安装说明。
官网地址:下载Zabbix

如上图所示,zabbix 6.0和5.4都只对centos 8提供支持,而我目前正好有现成的CENTOS 7环境,所以我选择了5.0安装。其实根据文档zabbix 3.0的功能,我就足够了。
二、开始安装
1、安装 Zabbix repository
#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#yum clean all
2、安装 Zabbix server and agent
#yum install zabbix-server-mysql zabbix-agent
3、安装 Zabbix frontend
Enable Red Hat Software Collections
#yum install centos-release-scl
4、编辑配置文件 /etc/yum.repos.d/zabbix.repo,允许zabbix-frontend repository
[zabbix-frontend]
...
enabled=1
...
5、安装Zabbix frontend packages.
#yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
以上zabbix运行相关除数据库外全部安装完成
6、安装配置mysql
首先必须添加mysql社区repo,再安装:
#sudo rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
#yum -y install mysql-community-server
安装mysql5.7,同时自动替换掉MariaDB。
我在安装时的时候报错,提示某一个包安装不成功。错误提示为GPG校验错误。
失败原因
GPG对于包的源key的验证没有通过解决办法
在yum install 版本后面加上 --nogpgcheck,即可绕过GPG验证成功安装。比如yum install mysql-community-server --nogpgcheck
启动mysql服务:
systemctl start mysqld.service
加开机启动
systemctl enable mysqld.service
首次使用创建root管理员和密码
(mysql -u root -p输入密码,从5.7开始默认密码不再为空)
密码查看
# grep 'temporary password' /var/log/mysqld.log
2016-07-08T02:25:46.311098Z 1 [Note] A temporary password is generated for root@localhost: MtPqF0/oN5zo
即初始密码为 MtPqF0/oN5zo (密码是随机产生的,每台机器产生的都不一样哦)
2.登录及修改密码:
登录之后 第一步必须先修改密码,否则其他操作都执行不了。
修改密码的方法:
mysql> alter user root@localhost identified by 'tyzZ001!';
Query OK, 0 rows affected (0.00 sec)
新修改的密码中 必须包含 大小写字母数字及符号
7、创建初始数据库
在数据库主机上运行以下代码。其中第二行注意将zabbix的密码替换成你自己的密码。
# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。
如果你的mysql是5.7以下,在导入架构前先务必检查mysql的设置,
如遇“Specified key was too long; max key length is 767 byte”错误提示。是为因在mysql在5.6中默认 innodb_large_prefix 参数值为off,需要修改为on。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
8、为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf,修改为前面创建的密码
DBPassword=password
9、为Zabbix前端配置PHP
编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,去掉注释并设置 'listen' and 'server_name'为你自己服务对应的值
# listen 80;
# server_name example.com;
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, 在listen.acl_users添加 nginx
listen.acl_users = apache,nginx
并修改时区将 php_value[date.timezone] = Europe/Riga,修改为 Asia/Shanghai
php_value[date.timezone] = Asia/Shanghai
10、启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
11、配置Zabbix前端
连接到新安装的Zabbix前端: http://server_ip_or_name,这里是你设置的IP,当然对应的80端口一定要在防火墙开启,防火墙我还是习惯用iptables,具体方法见另一篇文章centos备忘。

打开界面后,开始进行设置。
设置过程为,1、检查环境,这步只要前面安装到位,基本没有问题;2、配置数据库;3、配置zabbix服务端口和名称;最后完成配置,出现登录页面。
二、使用zabbix
安装完成后,在浏览器打开zabbix服务器IP,可登录WEB管理后台。默认用户为Admin,默认密码为zabbix
1、安装zabbix客户端(linux系统)
a.修改客户端yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
b.清理缓存
yum clean all
c.安装zabbix客户端
yum install -y zabbix-agent
d.修改配置文件(写服务端IP)
vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,172.16.1.61 ={{ ansible_eth1.ipv4.address }} 变量
ServerActive=127.0.0.1,172.16.1.61 ={{ ansible_defult_ipv4.address }} 变量
e.启动服务加入开机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent
f.检查端口
netstat -lntup
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 21845/zabbix_agentd
g.防火墙增加zabbix-agent服务
firewall-cmd --add-service=zabbix-agent
也可以针对zabbix服务器开放规则
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="10050" accept'
把192.168.1.1换成你的zabbix服务器地址
配置完成后,需要重新装载firewall。重新启动firewalld服务。
firewall-cmd --reload
service firewalld restart
如果是iptables,则用
iptables -I INPUT -p tcp --dport 10050 -j ACCEPT
针对zabbix服务器开放规则
iptables -I INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
最后保存iptables配置
service iptables save
2、windows客户端安装
根据你操作系统的情况选择对应安装包,这里不需要安装agents 2。
三、故障排除
1、日志分析
zabbix日志位置 /var/log/zabbix/下,可通过查看日志查找故障原因。
2、安装完成后,不能启动zabbix,界面中提示运行“否”。
分析日志后,发现有“zabbix cannot bind socket..”提示,原因是selinux权限不对。若没有较高安全要求,可以关闭selinux,关闭后。重启服务器,zabbix运行正常。
3、语言切换为中文后,图表内中文显示不正常。
原因:zabbix缺少中文字体。
解决办法:将windows/fonts下的任意字体上传给服务器使用,并修改相关配置文件。我是将win10自带的微软雅黑msyh.ttc上传到服务器 /usr/share/zabbix/assets/fonts,并将文件名改为msyh.ttf,标准扩展名。然后修改 /usr/share/zabbix/include下的defines.inc.php,找到其中的 define('ZBX_GRAPH_FONT_NAME'),将默认值graphfont 修改为msyh ,然后刷新网页即可。
未经允许不得转载:生于七零年代 » 开源运维zabbix安装