专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

基于CentOS 8和LNMP环境的zabbix 4.4部署

前言

虽然不是第一次在网络上写博客了,但是写这种带一些专业性的技术博客倒是第一次。 也是第一次开始尝试使用Markdown写东西,虽然知道这东西有些日子了。

前阵子公司有个领导说想搞zabbix,正好我刚到也比较闲,也对技术类和zabbix很有兴趣,就在公司的vSphere上搞了一个。 以前部署zabbix的时候在网上找教程,都是针对旧版的,步骤也繁琐的多。有些已经用不上了。 正好这次在公司部署zabbix,就把全过程都记录下来了,发到blog上做备份。

在vsphere上部署的虚拟机的过程我就不累述了。双核4G,80G精简置备。 其实zabbix真正生产用途部署的话比较吃性能,是不建议这样的,尤其硬盘读写速度。公司里的就是普通蓝盘,连raid都没组,这几天天天读写延迟告警。有条件的话配置还是搞得好一点。

话不多说,开搞。

LNMP环境

这一步,其实是比较简单的。zabbix的部署环境要求并不复杂。再加上现在的yum功能实在给力,犯不着像别的教程一样安装个什么东西命令就一大串。为了安装方便,我所有Linux代码都是直接用root账户敲的,实际生产环境不怕麻烦最好还是sudo。

yum install lrzsz
yum install mysql-server        //这里yum会自己把我们需要的一些组件或者依赖都带上
yum install php             //所以安装命令短了很多
yum install nginx
yum install net-snmp

本来代码一行足以,为了不伤害大家的眼睛我决定分行。 lrzsz是个很好用的通过shell传文件的小程序,非常好用,安利一波。 snmp也是zabbix功能依赖的组件之一,这个需要手动安装。 这样基本环境的功能就是有了。配置的问题稍后再说。

Zabbix下载安装

官网给的安装代码其实挺给力的,现在基本可以无脑套用。

rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm 
yum clean all
yum makecache                   //为yum安装zabbix的资源包并应用 上面用的链接是zabbix官网提供的
yum install zabbix-server-mysql zabbix-agent    //安装zabbix

到这一步zabbix的安装算是初步完成,接下来的都是配置的事了。

MySQL配置

我这里用的是最新的MySQL 8。 版本新是新,跟现在满地教程的MySQL 5.6有些区别还是蛮大的。比如口令规则和创建用户的命令都有一些变化,和老版本基本不兼容,这里是需要注意的。 首先MySQL 8默认root账户不是空口令,初始化完成后会在控制台输出root的默认口令,或者在日志里有。MySQL 8要求所有口令都是强口令,有大小写有数字有符号。查看MySQL的root账户初始口令。vim /var/log/mysql/mysqld.log

MySQL 8在CentOS里安装使用并不顺畅,我也不知道为什么,大概是因为CentOS是mariaDB派吧。安装完不仅权限各种问容易导致启动失败,还有一些莫名其妙的事情。CentOS 8安装MySQL 8遇到问题不是第一次了,这里我就直接把代码拿上来,就算没问题无脑照做也不会出事。

chown mysql:mysql -R /var/lib/mysql     //MySQL系统账户赋权
mysqld --initialize             //MySQL初始化,这时就会生成root账户的初始密码了
systemctl start mysqld              //启动MySQL
systemctl enable mysqld             //mysql开机自启动
chmod -R 777 /var/lib/mysql         //如果不能启动可能是不名原因文件夹权限不足以让mysql运行,需要手动赋予
systemctl start mysqld              //再启动MySQL
mysql -u root -p                //mysql用root账户登录   登陆进去之后需要把root密码改了才能进行下一步操作

接下来输入密码,我们进到MySQL的控制台里继续。

use mysql;                              //先选择mysql数据库
alter user 'root'@'localhost' identified by 'password';         //登陆之后需要先修改root密码

root账户搞完了,我们可以给自己创建一个账户,因为我的密码都是直接用keepass生成的,所以对于口令这个东西简单了许多。这里不仅要注意口令强度,还有就是一定要注意语法和单引号。“@”前后的两对单引号不能省略任何一个。因为漏写了也能操作成功,但是你登录不进去。这里我吃了不少亏。

create user 'username'@'%' identified by 'password';        //创建用户  %代表此用户可以在任意地址登录
grant all on *.* to 'username'@'%';             //对此账户赋予了所有权限 

这一步操作完了之后,就开始给zabbix准备数据库了,这里的命令都是官方提供的,复制粘贴即可。

create user 'zabbix'@'localhost' identified WITH mysql_native_password by 'password';   //创建zabbix的仅限本地登录账户
create database zabbix character set utf8 collate utf8_bin;             //创建zabbix数据库
grant all privileges on zabbix.* to 'zabbix'@'localhost';               //给zabbix的账户赋权使用
flush privileges;                                   //刷新权限,使所有配置生效
quit;

到这数据库上的操作基本就完事了,其实还有最后一步导入zabbix提供的模板,不过这一步不在MySQL的控制台里操作。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix       //接下来需要输入密码

这里管道符传入的命令不太一样,可能是因为zabbix官方制作教程的时候用的是旧版本MySQL,不过不耽误使用。

修改配置文件

接下里需要编辑一波配置文件了。首先是zabbix的数据库连接。

vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=*password*

systemctl start zabbix_server
systemctl start zabbix_agent        //让zabbix跑起来

其实这里应该改一波PHP的性能配置的,这里我只丢个文件位置出来,具体怎么改可以百度,或者到后面web部署上有详细说明,它会告诉你需要改什么。除了PHP的性能配置,还需要再修改一下时区。

vim /etc/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

systemctl restart php-fpm           //PHP的配置改完之后需要重启php-fpm使其生效

这里有一点需要注意的是:不管是zabbix的配置文件,还是PHP的配置文件,部分要修改的内容是有重叠的,例如这个时区,我第一次部署的时候修改的是PHP的配置文件。第二次同样,却怎么也过不了,找了好久终于找到了zabbix的配置文件也改了才过。可能跟我的部署环境有关,毕竟第一次是Apache,第二次却是NGINX。

Web访问组件

安装zabbix的web端

yum install zabbix-web zabbix-web-mysql zabbix-nginx-conf       //这里根据我的搭建环境选择了额外的组件

接下来为NGINX配置站点,关于NGINX的配置方法建议nginx.cn好好学习一下,非常有用。
这里抛上来一个样本,大家看看就好。

server {
    listen       80 default_server;
    listen       [::]:80 default_server;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
server_name localhost;
index zabbix.html zabbix.php;
root /usr/share/zabbix/;
access_log /tmp/zabbix_access.log main;
error_log /tmp/zabbix_error.log;

location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;
        include        fastcgi_params;
 }

这里改完了需要用以下命令

nginx -t        //测试一下配置文件能不能通过,能通过才算配置完成
nginx -s reload     //重载配置文件
systemctl start nginx

防火墙与seLinux

有的教程会直接建议你关掉防火墙,因为方便,我估计是因为他们对配置防火墙的命令并不熟悉,如果说防火墙没用,我觉得还有一些可能,毕竟都是内网环境,不过即使是内网环境我也不建议关掉。
在这里我们配置防火墙的时候针对服务,而不是针对端口。这样即使我们的Web服务器移动的到其他端口上去也不需要做更改。

firewall-cmd --zone=public --add-service=http --permanent       //--add-service=http(https) 自己根据情况选择
firewall-cmd --reload                           //防火墙重载配置使其生效
systemctl restart firewalld                     //这是重载防火墙配置的另一种方法,直接重启服务

最后设置各个服务开机器自动,Shell上能做的事情基本就算完事了。

systemctl enable nginx
systemctl enable mysqld
systemctl enable php-fpm
systemctl enable zabbix-server
systemctl enable zabbix-agent
systemctl enable net-snmp

关于seLinux:关不关取决于你。会玩不怕麻烦就开着,不会玩又不需要就关掉。至于到底要不要关掉,就要看你有没有遇到这个坎了。作为一个运维人,我建议还是学会怎么玩seLinux,虽然可能真的用不上。

vim /etc/selinux/config         //修改seLinux的配置文件
SELINUX=disabled            //关闭seLinux

reboot                  //修改完了需要重启才能生效 

Web部署

Web部署是安装zabbix的最后一步了,输入主机IP直接就打开zabbix的页面。然后跟着页面上指示照做就行,除了修改PHP的性能配置几乎毫无技术含量。我就不再累述。

这次因为不是一边部署一边码文。虽然命令都是在机器里跑过一次的,肯定没问题,不过还是差了点味道。
以后再写这种blog的时候,如果不是一边部署一边码,估计会先贴代码上来,文章的部分慢慢补。
如果一边部署一边写的话,大概临场效果会好一些。不过文章估计就没有这么精练了。

文章永久链接:https://tech.souyunku.com/25137

未经允许不得转载:搜云库技术团队 » 基于CentOS 8和LNMP环境的zabbix 4.4部署

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们