当前位置: 首页 > news >正文

centos安装zabbix

isocentos7.9

服务端

1、关闭selinix 关闭防火墙

setenforce 0

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

systemctl stop firewalld

systemctl disable firewalld

2、下载zabbix安装源,安装zabbix-sever

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

yum install zabbix-server-mysql zabbix-agent -y

yum install centos-release-scl  -y

将前端的repo开启

vi /etc/yum.repos.d/zabbix.repo
        [zabbix-frontend]
        name=Zabbix Official Repository frontend - $basearch
        baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
        enabled=1    "#0改1"
        gpgcheck=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

安装zabbix-前端

yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl  -y

3、安装数据库,配置数据库

yum install mariadb-server -y
systemctl start mariadb
mysql
    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;

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

mysql
        MariaDB [(none)]> use zabbix
        Reading table information for completion of table and column names
        You can turn off this feature to get a quicker startup with -A
        
        Database changed
        MariaDB [zabbix]> show tables;
        MariaDB [zabbix]> exit;

4、zabbix中的简单配置

填入数据库密码

vi /etc/zabbix/zabbix_server.conf
        DBUser=zabbix
        ### Option: DBPassword
        #       Database password.
        #       Comment this line if no password is used.
        #
        # Mandatory: no
        # Default:
        DBPassword=password  "#填入zabbix密码"

更改前端用户和时区

vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
        [zabbix]
        user = apache
        group = apache
        
        listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
        listen.acl_users = apache,nginx   "#添加nginx"
        listen.allowed_clients = 127.0.0.1
        
        pm = dynamic
        pm.max_children = 50
        pm.start_servers = 5
        pm.min_spare_servers = 5
        pm.max_spare_servers = 35
        
        php_value[session.save_handler] = files
        php_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/
        
        php_value[max_execution_time] = 300
        php_value[memory_limit] = 128M
        php_value[post_max_size] = 16M
        php_value[upload_max_filesize] = 2M
        php_value[max_input_time] = 300
        php_value[max_input_vars] = 10000
        php_value[date.timezone] = Asia/Shanghai  "# 去掉注释符,改为上海时区"

更改前端端口

vi /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
        server {
                        listen          80;   " #取消注释"
                        server_name     localhost;  "#取消注释"
        
                        root    /usr/share/zabbix;

删除原有nginx的默认端口

vi /etc/opt/rh/rh-nginx116/nginx/nginx.conf
        :38,81 s/^/#/g

5、启动服务

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

访问http://    用户名admin  密码zabbix

客户端

1、关闭selinix 关闭防火墙

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

2、安装客户端

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum install zabbix-agent2 -y

修改Server地址

vi /etc/zabbix/zabbix_agent2.conf
        # Default:
        # Server=
        
        Server=10.10.17.199   "#修改Server地址"
        
        ### Option: ListenPort

3、启动zabbix-agent2

systemctl start  zabbix-agent2
systemctl enable  zabbix-agent2

网页配置

添加客户端

在网页中选择配置-主机-添加主机

输入主机名、群组(或新建群组)、客户端IP地址,端口

第二选项卡中模板,添加模板,(模板的作用就是基础的监控指标)

添加监控项

客户端自定义监控项

这里以监控用户登录数为例

通过shell命令获取关键数据

首先测试命令 w |awk 'NR==1{print $4}'

[root@client ~]# w
 22:44:02 up 17:31,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.2.176    20:59    2.00s  0.13s  0.01s w
[root@client ~]#w  |awk 'NR==1{print $4}'
1

方法一

客户端直接修改zabbix_agent2.conf

vi /etc/zabbix/zabbix_agent2.conf
                ### Option: UserParameter
                #       User-defined parameter to monitor. There can be several user-defined parameters.
                #       Format: UserParameter=<key>,<shell command>
                #       See 'zabbix_agentd' directory for examples.
                #
                # Mandatory: no
                # Default:
                # UserParameter=
                UserParameter=user_login_num,w |awk 'NR==1{print $4}'  "# 添加自定义监控项"

方法二

在/etc/zabbix/zabbix_agent2.d 中添加conf文件

[root@client zabbix_agent2.d]# pwd
/etc/zabbix/zabbix_agent2.d
[root@client zabbix_agent2.d]# vi user_login_ip_num.conf 
                UserParameter=user_login_ip_num,w |awk 'NR>2{print $3}' | sort -r |uniq -c |wc -l

自检测试

[root@client zabbix_agent2.d]# zabbix_agent2 -t user_login_ip_num
user_login_ip_num                             [s|2]

重启服务 

[root@client ~]# systemctl restart  zabbix-agent2

服务器端测试

安装测试工具 

[root@zabbix ~]# yum install zabbix-get -y
[root@zabbix ~]# zabbix_get -s 10.10.17.160 -k user_login_num
1
# -s <host-name-or-IP>   -k <key>

网页中测试 ,选在配置-主机-监控项

创建监控项,测试,确定

添加触发器

在网页中选择创建触发器,这里我们依然使用用户登陆数作为指标

添加触发器

观察仪表盘 、已经触发

可以设置触发报警音效

触发器恢复

添加触发器恢复机制,依然以用户登录数为例

此时观察仪表盘已经恢复了

查看问题的具体细节

Zabbix 邮件告警

配置发件人信息

在管理-报警媒介类型里修改/添加 Email邮箱

配置收件人信息

在管理-用户群组-用户里新建用户组和用户

在新建用户的时候需要添加报警媒介

权限需要修改为超级管理员

配置触发动作

在配置-动作里新建触发动作

触发动作后添加操作,添加操作步骤

再次触发报警后可以观察报警后触发动作

邮件已经可以正常接收

Zabbix 微信告警

微信端配置

打开企业微信后台管理器,在应用管理里新建一个应用

上传头像并选择可见用户

创建完成后即可查看Agentld、Secret 、企业ID

zabbix-server端设置

安装requests

yum install epel-release
yum install python-pip
pip install requests

查看alertscripts位置

vi /etc/zabbix/zabbix_server.conf 
                ### Option: AlertScriptsPath
                #       Full path to location of custom alert scripts.
                #       Default depends on compilation options.
                #       To see the default path run command "zabbix_server --help".
                #
                # Mandatory: no
                # Default:
                # AlertScriptsPath=${datadir}/zabbix/alertscripts
                
                AlertScriptsPath=/usr/lib/zabbix/alertscripts

编写脚本  /usr/lib/zabbix/alertscripts/weixin.py

#!/usr/bin/env python

#-*- coding: utf-8 -*-
import requests
import sys
import os
import json
import logging
logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
corpid='wwdcf6fc99ab28fd41' # qiyeID
appsecret='rIyZoR9-BPWRdOtixZ3ztI8v8np9sPR75FNIBSfFUjQ'  # Secret
agentid=1000004  # AgentId
#get accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
#send message
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n" +sys.argv[3]
params={
"touser": touser,
# "toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
req=requests.post(msgsend_url, data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

测试,此时微信后台应该可以收到测试短信

chmod +x weixin.py
./weixin.py  yangfan  'test' 'test'

zabbix-web端设置

配置发件人

在管理-报警媒介类型里添加一个报警媒介

在第二选项卡里定义发送的内容,zabbix已经定义好了,触发问题、问题回复、问题更新的脚本,无需另行修改。

第三选项卡可以定义尝试次数和尝试间隔,完成后点击确定

配置收件人

在管理-用户,点击对应用户后第二选项卡报警媒介,在这里添加微信报警的收件人信息

配置动作

在配置-动作里添加一个微信报警的动作

再次触发报警,微信中可以正常接收

这是我在配置过程中踩到的坑,如有类似问题可以借鉴

SNMP监控

简介

SNMP主要监控无法安装agent的设备,例如路由器、交换机、UPS、打印机等

版本:

SNMPV1: 实现操作成本低,海量数据读取能力较弱

SNMPV2c:主流,增加了GetBulk和inform操作

SNMPV3:安全较高,易扩展,适应性好

MIB:被管理设备的数据通过变量构建成数据库,包含了各种对象集合

ODI:对象标识符

服务端设置(被监控的机器)

以华为鲲鹏920服务器为例,IBMC版本6.26

默认SNMP是打开的

客户端设置(zabbix-server)

测试

通过snmpwalk正常获取到SNMP的值

[root@zabbix ~]# yum install net-snmp-utils -y
[root@zabbix ~]# snmpwalk -v 3 -u Administrator -a sha -A 'Admin@9000'  -x AES -X 'Admin@9000' -l authPriv 192.168.11.119 1.3.6.1.4.1.2011.2.235.1.1.12.50.1.2.1
SNMPv2-SMI::enterprises.2011.2.235.1.1.12.50.1.2.1 = IpAddress: 192.168.11.119
'# -v SNMP 版本  -u  用户名  -a 鉴权算法  -A 鉴权算法密码  -x 加密算法 -X 加密算法密码 -l 安全级别'

zabbix页面设置

在zabbix页面上新建一个SNMP的主机,如图所示填写内容

在第二个选项卡-模板里 至少添加一个监控模板 Template Module Generic SNMP

然后在主机页观察节点是否已经添加并成功监控

相关文章:

  • 前缀和以及哈希表优化
  • 【JavaSE】多线程篇(一)线程的相关概念与线程的基本使用
  • 8、学习 Java 中的方法(方法的定义、可变参数、参数的传递问题、方法重载、方法签名)通过官方教程
  • 数据库基本结论
  • Django-(3)
  • HyperLynx(十五)多板仿真
  • ElasticSearch(四):ES nested嵌套文档与父子文档处理
  • java 基于springboot员工实训项目管理系统
  • SaaS行业的六大安全问题
  • Geoserver+Cesium 发布带样式矢量数据
  • 【C语言】数据类型、存储类
  • 免关注阅读CSDN博客和复制代码(2022.9.1)
  • shell脚本(四)处理用户输入
  • 08 SpringMVC跨域请求
  • Mac下根目录和home目录的区别
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Angular 4.x 动态创建组件
  • Codepen 每日精选(2018-3-25)
  • docker容器内的网络抓包
  • flask接收请求并推入栈
  • JAVA之继承和多态
  • js 实现textarea输入字数提示
  • js算法-归并排序(merge_sort)
  • MYSQL 的 IF 函数
  • Next.js之基础概念(二)
  • Python学习之路16-使用API
  • SOFAMosn配置模型
  • SpiderData 2019年2月23日 DApp数据排行榜
  • 跨域
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 前嗅ForeSpider采集配置界面介绍
  • 如何选择开源的机器学习框架?
  • 删除表内多余的重复数据
  • 使用API自动生成工具优化前端工作流
  • 我是如何设计 Upload 上传组件的
  • hi-nginx-1.3.4编译安装
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • MyCAT水平分库
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​力扣解法汇总946-验证栈序列
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (C++20) consteval立即函数
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (六)c52学习之旅-独立按键
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET MVC之AOP
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】