基于lnmp部署zabbix监控平台

一、环境说明:

  • LNMP 说明:
    linux centos7系统
    nginx 实现前端服务器
    mysql 实现数据库fuwu
    php 实现页面

  • Zabbix监控系统具体监控系统流程:
    在这里插入图片描述

  • 主机部署
    在这里插入图片描述
    版本要求:
    Zabbix3.2+ PHP版本需要使用PHP5.4.0版本

二、zabbix-server 安装:

1、安装软件包:

安装nginx php php-mysql mariadb mariadb-server zabbix-server zabbix-web zabbix-mysql

  • yum install nginx mariadb mariadb-server mariadb-devel php php-mysql php-devel php-fpm -y
  • yum install zabbix40-web zabbix40-web-mysql zabbix40-server -y

2、 创建zabbix 数据库:

2.1 启动mariadb,创建zabbix数据库,授权zabbix 用户访问权限

systemctl start mariadb
mysql
MariaDB [(none)]> create database zabbix charset utf8;
MariaDB [(none)]> grant all on zabbix.* to "zabbix@localhost identified by “cui0116”;
MariaDB [(none)]> flush privileges;

2.2 安装zabbix需要的数据库文件:

yum install zabbix40-dbfiles-mysql -y
导入zabbix需要的sql:
mysql -uzabbix -pcui0116 zabbix </usr/share/zabbix-mysql/schema.sql
mysql -uzabbix -pcui0116 zabbix </usr/share/zabbix-mysql/images.sql
mysql -uzabbix -pcui0116 zabbix </usr/share/zabbix-mysql/data.sql

2.3 修改zabbix-server 配置文件中的用户名 密码、socket文件

vi /etc/zabbix/zabbix_server.conf
SocketDir=/var/lib/mysql
DBPassword=cui0116
启动服务:
systemctl start zabbix-server

3、修改nginx 配置文件,指向php,并修改主页文件

vi /etc/nginx/conf.d/default.conf

    location / {
        root   /usr/share/zabbix/;
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        root           /usr/share/zabbix/;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 32 64K;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

启动nginx、php服务
systemctl start nginx php-fpm

4、前台访问zabbix

4.1 浏览器中输入主机地址:192.168.10.135

在这里插入图片描述

4.2 按照提示修改php的配置文件内容:

vi /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone =Asia/Shanghai
保存后重启php服务:
systemctl restart php-fpm
浏览器中原先的错误已消失:
在这里插入图片描述

4.3 之后输入mysql中grant语句中的授权的用户名、密码:

在这里插入图片描述
发现一直提示错误,应该是msyql创建zabbix数据库是,字符编码出现了问题,
在这里插入图片描述

4.4 按照以下方法重建:
MariaDB [(none)]> drop database zabbix;
Query OK, 144 rows affected (0.08 sec)

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin
    -> ;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all on zabbix.* to "zabbix"@localhost identified by "cui0116";
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

并重新导入sql:
[root@node2 web]# mysql -uzabbix -pcui0116 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@node2 web]# mysql -uzabbix -pcui0116 zabbix < /usr/share/zabbix-mysql/images.sql
[root@node2 web]# mysql -uzabbix -pcui0116 zabbix < /usr/share/zabbix-mysql/data.sql

再次访问就可以连接了,并自动安装zabbix-web:
在这里插入图片描述

在这里插入图片描述

4.5 安装完成后,在本机的 /etc/zabbix/web 目录下会自动生成配置文件,里面的用户名、密码、db等数据库相关的信息会按照你前几步填的内容生成好:
[root@node2 web]# cat zabbix.conf.php 

<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'cui0116';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '京峰监控';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

接下来,就可以进入zabbix的主页,对监控做配置了:
登录Zabbix WEB界面,默认用户名和密码为:Admin/zabbix
在这里插入图片描述

4.6 自此安装zabbix server端已完成:

在这里插入图片描述
语言可选择中文:
点击页面右上角—> 选择语言复选框,选择中文:
在这里插入图片描述

三、zabbix-server 安装:

1、客户端安装:

134、136 主机上执行:
[root@node3 ~]# yum install zabbix40-agent -y
修改配置文件:
vi /etc/zabbix_agent.conf

Server=192.168.10.135

启动 agent
systemctl start zabbix-agent

2、web 页面添加规则,添加agent

  • Zabbix监控客户端分为主动监控与被动监控,主被动模式以客户端为参照,Zabbix监控客户端默认为被动模式,可以修改为主动模式,只需要在客户端配置文件中添加。可以关闭被动模式的方法:在配置文件中加入 StartAgents=0,即为关闭被动模式。主被动监控模式区别如下:
     Zabbix主动模式:Agent主动请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy,Zabbix agent首先向ServerActive配置的IP请求获取active items,获取并提交active items数据值server或者proxy;
     Zabbix被动模式:Server向agent请求获取监控项的数据,agent返回数据,Server打开一个TCP连接,Server发送请求agent.ping,Agent接收到请求并且响应,Server处理接收到的数据。
2.1 基于自动发现方式添加agent主机

1、添加自动发现的规则,IP地址选择对应虚拟机的IP范围;
检查类型选择zabbix客户端,这样就是只有客户端启动了zabbix-agent就可以发现它:
在这里插入图片描述
2、创建动作,基于刚才创建的规则去执行动作:

在这里插入图片描述
点击创建动作:
选择自动发现规则,选择刚刚创建的规则的名字:
在这里插入图片描述
动作包括:添加主机、添加主机到群组、链接到模板:
在这里插入图片描述
添加后,到主机页面查看主机添加成功:
在这里插入图片描述

2.2 基于主动注册方式添加agent主机

1、为保证操作的准确性,将刚才自动发现规则的动作禁用掉,并删除刚刚添加成功的主机:
在这里插入图片描述
在这里插入图片描述
现在监控主机列表是初始状态了,是空的:
在这里插入图片描述
开始添加主机了:

1、修改134、135、136 主机的agent 配置文件:
  • 将Server、ServerActive 都修改为zabbix-server对应的IP地址;
  • HostMetadata 修改为统一的内容,方便下一步添加主动注册的规则

1、 agent -134:
[root@node1 ~]# grep -iavE “^$|#” /etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.135
ServerActive=192.168.10.135
Hostname=agent-node1
HostMetadata=zabbix-linux

2、 agent-136:
[root@node3 ~]# grep -iavE “^$|#” /etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.135
ServerActive=192.168.10.135
Hostname=agent-node3
HostMetadata=zabbix-linux

3、 server-136:
[root@node2 web]# grep -iavE “^$|#” /etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.135
ServerActive=192.168.10.135
Hostname=zabbix-server
HostMetadata=zabbix-linux

2、web页面添加主动注册规则

配置—>发现 选择自动注册,点击创建:
在这里插入图片描述
主机元数据,选择刚才添加的HostMetadata键对应的值zabbix-linux
在这里插入图片描述
动作跟刚才自动发现方式的保持一致:
在这里插入图片描述
保存后,到主机页面,查看主机添加成功:

在这里插入图片描述

可以看到,三台主机的名称跟刚才自动发现方式添加的主机名称不一致,原因我主动注册这种方式添加主机时,是会默认先读取hostname的值,如果hostname注释了,则读取 HostnameItem的值,HostnameItem的值其实就是 主机 uname 的值

四、实现邮件告警

1、安装邮件插件

zabbix-server 135 主机上执行: yum install mailx -y
修改mailx 的配置文件:
set from=xxxx@139.com #发件箱 个人邮箱的账号
set smtp=221.176.9.170 smtp.139.com:25 #smtp地址,直接就用139的服务器地址和端口就行
set smtp-auth-user=xxx@139.com
set smtp-auth-password=xiaocui123 #邮箱的密码
保存后即可进行邮件发送测试:
[root@node2 alertscripts]# echo “zabbix test mail” |mail -s “zabbix” xxx@139.com ##这个是收件箱地址,测试用的话可以和你的个人邮箱一样的:

在这里插入图片描述

2 、收到邮件就成功了,接下来编写一个邮件发送用的脚本,为下一步实现邮箱告警做准备:

找到zabbix_server.conf 配置文件中的 AlertScriptsPath目录

[root@node2 alertscripts]# grep -i script /etc/zabbix_server.conf
### Option: AlertScriptsPath
#	Full path to location of custom alert scripts.
# AlertScriptsPath=/usr/share/zabbix/alertscripts
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts

到/var/lib/zabbixsrv/alertscripts下编写脚本,
cd /var/lib/zabbixsrv/alertscripts
[root@node2 alertscripts]# vi mail.sh
#!/bin/bash
echo “$3” | mail -s “$2” $1

3、到web页面配置邮箱告警媒介:

管理----报警媒介类型:
在这里插入图片描述
选择脚本,并填写名称为刚才编辑的脚本名称,参数即对应 脚本中的第1、2、3个参数:
在这里插入图片描述
之后点击页面的右上角,编辑管理员:
在这里插入图片描述
这样邮件报警的前期准备工作完成了:

4、添加告警

4.1、到 主机—>监控项 下添加一个新的监控项:

举例:添加一个nginx服务是否正常的告警:
在这里插入图片描述
监控内容如下,选择一个 tcp port 的键值监控,当服务能正常tcp连接时返回值1,否则返回值0:
在这里插入图片描述
到134 主机上启动nginx服务:

[root@node1 ~]# systemctl start nginx
[root@node1 ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      13603/nginx: master 

到135 zabbix-server 主机 执行zabbix_get 测试监控项是否能正常返回数值:

[root@node2 alertscripts]# zabbix_get -s 192.168.10.134 -p 10050 -k 'net.tcp.port[192.168.10.134,80]'
1

当134上停止nginx服务时,上述命令的结果就是0:

[root@node2 alertscripts]# zabbix_get -s 192.168.10.134 -p 10050 -k 'net.tcp.port[192.168.10.134,80]'
0

到web页面上查看该监控项生成的数据图形,应该是值为1的图形:
在这里插入图片描述
在这里插入图片描述

4.2 添加一个关联该监控项的触发器:

主机---->触发器—>创建触发器
在这里插入图片描述
监控项与上述添加的nginx 监控项进行关联,结果不为1 就触发告警:
在这里插入图片描述

在这里插入图片描述

4.3 添加触发器执行的动作

表示当nginx的监控项监控到nginx服务不正常,即zabbix_get -s 192.168.10.134 -p 10050 -k 'net.tcp.port[192.168.10.134,80]'的返回值不为1时,即触发到触发器,由触发器执行哪些动作,以及该触发器恢复后又进行哪些动作:

在这里插入图片描述
这里为了测试,选择 当触发器的示警程度大于等于 信息 即告警:

在这里插入图片描述
或者,也可以只针对某个特定的触发器执行某些动作,那么触发条件这里就写触发器,选择那里填刚才添加的触发器名称,进行关联:
在这里插入图片描述

操作是指,当告警触发了该触发器时,执行哪些操作,这里配置成发邮件给管理员:
在这里插入图片描述
恢复操作,是指当nginx监控项的返回值正常,或手动处理关闭该告警值应执行什么动作,这里还是配置成发邮件给管理员:
在这里插入图片描述
更新操作,可不改

4.4 测试:

134 主机上将启动着的nginx服务停止,测试告警能否通过邮件发送:
[root@node1 ~]# systemctl stop nginx
web页面上 监测—>问题
在这里插入图片描述
可以看到已经执行了第一步,发送邮件:
在这里插入图片描述
恢复nginx服务测试邮件是否通知:
[root@node1 ~]# systemctl start nginx
在这里插入图片描述
已经执行了第2个动作,查看邮箱:
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在银河麒麟系统V10上安装部署LNMPzabbix6.4,你可以按照以下步骤进行操作: 1. 首先,安装LNMP(Linux、Nginx、MySQL、PHP)环境。你可以使用以下命令安装Nginx和MySQL: ``` yum install -y nginx mysql ``` 2. 安装PHP。你可以使用以下命令安装PHP及相关扩展: ``` yum install -y php php-fpm php-mysql ``` 3. 配置Nginx和PHP。根据你的需求,你需要编辑Nginx的配置文件(通常位于`/etc/nginx/nginx.conf`)和PHP的配置文件(通常位于`/etc/php.ini`)。确保Nginx正确指向你的网站目录,同时配置PHP的参数以满足zabbix的要求。 4. 下载并编译安装zabbix。你可以按照以下步骤进行操作: ``` # 下载zabbix源码包 wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/6.4.0/zabbix-6.4.0.tar.gz # 解压源码包 tar -xzvf zabbix-6.4.0.tar.gz # 进入解压后的目录 cd zabbix-6.4.0 # 编译安装zabbix ./configure --prefix=/usr/local/zabbix make install ``` 5. 创建zabbix用户。你可以使用以下命令创建一个具有合适权限的zabbix用户: [3] ``` useradd -u 8005 -M -s /sbin/nologin zabbix ``` 6. 配置zabbix。你需要编辑zabbix的配置文件(通常位于`/usr/local/zabbix/etc/zabbix_server.conf`)并设置数据库信息、Nginx等相关配置。 7. 启动服务。你可以使用以下命令启动Nginx、MySQL和zabbix服务: ``` systemctl start nginx systemctl start mysql systemctl start zabbix-server systemctl start zabbix-agent ``` 请注意,以上步骤只是一个基本的指导,具体的操作可能因为你的环境和需求而不同。在实际操作中,请确保你已经阅读并理解相关文档并根据需要进行适当调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [银河麒麟系统v10安装zabbix(mariadb篇)及踩坑排雷总结](https://blog.csdn.net/Kaylee_123/article/details/119893139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值