zabbix-server配置文件详解
zabbix-server配置⽂件详解
zabbix-server端的配置⽂件在/etc/zabbix/zabbix_server.conf
# ListenPort=10051 #<===默认侦听的端⼝及端⼝取值范围,默认即可
# SourceIP= #<===使⽤哪个出⼝IP与外⾯通信,默认即可
# LogType=file #<===设置记录⽇志的类型,默认记录⾄⽂件
LogFile=/var/log/zabbix/zabbix_server.log #<===指定zabbix⽇志⽂件存放路径
LogFileSize=0 #<===指定⽇志⽂件⼤⼩及轮询相关,0表⽰禁⽤⽇志⾃动轮询,如果⽇志达到了限制,并且rotation失败,⽼⽇志⽂件将会被清空掉,重新⽣成⼀个新⽇志。
# DebugLevel=3 #<===指定debug调试信息级别,默认即可
PidFile=/var/run/zabbix/zabbix_server.pid #<===定义PID⽂件及路径
# DBHost=localhost #<===指定链接的数据库(默认为localhost,zabbix与数据库安装在⼀台机器上,直接使⽤localhost,这是通过socket链接mysql数据库的IP地址)
DBName=zabbix #<===默认链接数据库的名称(已事先创建好)
# DBSchema= #<===指定链接其他类型数据库
DBUser=zabbix #<===默认使⽤哪个⽤户链接数据库(已事先创建)
DBPassword=zabbix #<===⽤户链接数据库的密码(事先定义)
# DBSocket=/tmp/mysql.sock #<===zabbix数据库运⾏后,产⽣的socket⽂件及存放路径(主机为localhost)
# DBPort=3306 #<===数据库侦听的端⼝(默认MySQL端⼝,socket链接默认即可,若⽹络链接,可更改为其他)
# StartPollers=5 #<===pre-forked进程的数量,1.8.5之前,最⼤为255,默认为0,最⼤为1000,客户机较多可加⼤此值
# StartIPMIPollers=0 #<===⽤于IPmi技术⽤于获取硬件状态场景。若⽆相关监控项,建议设置为0
# StartPollersUnreachable=1 #<===进程数量(主机不可达)
# StartTrappers=5 #<===⽤于设置STRAPPER场景提交来的数据的接收进程数,若客户机被监控SNMP TRAPPER指标较多,建议加⼤此参数值(server端等待别⼈主动发送的其他监控选项)
# StartPingers=1 #<===⽤于设置启⽤icmp协议PING主机⽅式启动线程数量,若单台代理所管理机器超过500台,建议加⼤此数值
# StartDiscoverers=1 #<===⽤于设置⾃动发现主机的线程数量,若单台代理所管理机器超过500台,可以考虑加⼤此数值(仅适⽤于直接AGENT场景),很占⽤带宽,不建议使⽤
# StartHTTPPollers=1 #<===⽤于设置WEB拨测监控线程数,可视具体情况增加或减少此数值。
# StartTimers=1 #<===pre-forked监控项计时器
# StartEscalators=1
# JavaGateway= #<===Zabbix Java gateway的主机名或者ip地址,需要启动Java pollers
# JavaGatewayPort=10052 #<===Zabbix Java gateway监听端⼝
# StartJavaPollers=0 #<===进程数相关
# StartVMwareCollectors=0 #<===vmware的相关配置
# VMwareFrequency=60 #<===监控vmware虚拟机频率
# VMwarePerfFrequency=60
# VMwareCacheSize=8M
# VMwareTimeout=10
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log #<===指定StartSNMPTrapper⽇志路径
# StartSNMPTrapper=0 #<===是否打开StartSNMPTrapper功能,默认关闭
# ListenIP=127.0.0.1 #<===监听来⾃trapper的ip地址(默认监听所有ip地址)
# HousekeepingFrequency=1 #<===从数据库中移除过期数据,使⽤默认即可,housekeep执⾏频率,默认每⼩时回去删除⼀些过期数据。如果server重启,那么30分钟之后才执⾏⼀次,接下来,每隔⼀⼩时
# MaxHousekeeperDelete=5000 #<===housekeeping⼀次删除的数据不能⼤于MaxHousekeeperDelete
# SenderFrequency=30 #<===间隔多少秒,再尝试发送为发送的报警
# CacheSize=8M #<===配置缓存,⽤于存储host,item,trigger数据,2.2.3版本之前最⼤⽀持2G,最⼤⽀持8G
# CacheUpdateFrequency=60 #<===设置多少秒更新⼀次配置缓存
# StartDBSyncers=4 #<===预先foked DB Syncers的数量,1.8.5以前最⼤值为64
# HistoryCacheSize=16M #<===历史记录缓存⼤⼩,⽤于存储历史记录
# HistoryIndexCacheSize=4M
# TrendCacheSize=4M
# ValueCacheSize=8M 0表⽰禁⽤,设置history value缓存⼤⼩,当缓存超标了,将会每隔5分钟往server⽇志⾥⾯记录(查看⽇志很重要)
Timeout=4 #<===agent,snmp,external check的超时时间,单位为秒,默认值为3秒
# TrapperTimeout=300 #<===处理trapper数据的超时时间
# UnreachablePeriod=45 #<===当检测到主机不可⽤时,设置多少秒将它设置为不可达
# UnavailableDelay=60 #<===指定间隔时间多少秒检测主机是否不可⽤
# UnreachableDelay=15 #<===指定间隔时间多少秒检测主机是否不可达
AlertScriptsPath=/usr/lib/zabbix/alertscripts #<===指定告警脚本⽬录路径
# FpingLocation=/usr/sbin/fping #<===指定fping路径,如果zabbix⾮root启动,需给fping SUID特殊权限位
# Fping6Location=/usr/sbin/fping6 #<===同上
# SSHKeyLocation= #<===指定SSH公钥私钥路径
LogSlowQueries=3000 #<===慢查询相关
# TmpDir=/tmp #<===默认即可
# StartProxyPollers=1 #<===在zabbix proxy被动模式下⽤此参数,调整进程数量
# ProxyConfigFrequency=3600 #<===zabbix proxy被动模式下,server多少秒同步配置⽂件⾄zabbix代理proxy。
# ProxyDataFrequency=1 #<===被动模式下,zabbix server间隔多少秒向proxy请求历史数据,1-3600为取值范围
# AllowRoot=0 #<===是否允许使⽤root⾝份运⾏zabbix服务,默认不允许
# User=zabbix #<===启动zabbix server服务的⽤户,在配置禁⽌root启动,并且当前shell⽤户是root得情况下有效。如果当前⽤户是test,那么zabbix server的运⾏⽤户是test
# Include= #<===⽀持include⽅式包含其他配置⽂件(可使⽤正则表达式匹配),即⼦配置⽂件
# SSLCertLocation=${datadir}/zabbix/ssl/certs #<===SSL证书⽬录,⽤于web监控
# SSLKeyLocation=${datadir}/zabbix/ssl/keys #<===SSL认证私钥路径,⽤于web监控
# SSLCALocation= #<===设置SSL认证,CA路径。如果为空,将会使⽤系统默认的CA
# LoadModulePath=${libdir}/modules #<===指定加载的模块⽬录,格式: LoadModule=,⽂件必须在指定的LoadModulePath⽬录下,如果需要加载多个模块,那么写多个即可
# LoadModule=
# TLSCAFile= #<===使⽤TLS认证及设置TLS认证相关
# TLSCRLFile=
# TLSCertFile=
# TLSKeyFile=
解决zabbixserverisrunningNo.的方法
解决zabbixserverisrunningNo.的⽅法
根据⽇志报错排查
cat /var/log/zabbix/zabbix_server.log zabbix进程查看
ps aux |grep zabbix
查看监听zabbix server---------zabbix agent 10050---10051端⼝
netstat -nplut |grep zabbix
登陆报错解决 zabbix server is running | No.
解决⽅法1
setsebool -P httpd_can_network_connect on selinux 允许它通过httpd服务
关闭selinux
永久关闭vi /etc/selinux/config#SELINUX=disabled#SELINUXTYPE=targeted
临时关闭 setenforce 0
关闭防⽕墙
永久关闭 chkconfig iptables off
临时⽣效 iptables -F
解决⽅法2
cd /etc/zabbix/web/
修改配置⽂件
vi zabbix.conf.PHP
修改lochlhost为 ⾃⼰服务器的IP地址
修改$DB['SERVER'] = '192.168.30.6';
修改$ZBX_SERVER = '192.168.30.6';
重启服务
service httpd restartservice zabbix-agent restartservice zabbix-server restart
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。
Zabbix中文使用手册
Zabbix中⽂使⽤⼿册
⼀、Zabbix简介
详情参考“企业监控利器-zabbix”。⼆、Zabbix使⽤2.1 Zabbix框架介绍
在浏览器中输⼊http://192.168.0.189进⼊监控软件登陆界⾯(图⼆),登陆⽤户名和密码为network,登陆后的界⾯如图三所⽰。
图⼆:登录界⾯
图三:监控软件框架图
整个监控软件界⾯共分为七部份,分别是:浏览器栏、⼀级菜单栏、⼆级菜单栏、⽤户设定栏、时间条和图形显⽰区。2.2 windows监控代理介绍
信息部所使⽤的的zabbix版本为2.0;数据据版本mysql5.1;zabbix客户端代理安装在c:\zabbix⽬录下,该⽂件夹⼤⼩占⽤600k~1M;成功安装后在系统中⽣成服务“ZabbixAgent”,服务启动⽅式为⾃动(如图⼀所⽰);监控状态下windows监控代理每天(24⼩时)的数据传输量是14.0625K,对系统性能的影响⼩到可以可以忽略不计。当监控参数约为100个时(其中基本参数66个,IIS或SQL参数16到27个不等),每分钟取⼀个性能值(100*60*24=14400Byte)。
图⼀:zabbix agent服务图2.3 重要的监控参数介绍
在Windows操作系统中,查看系统的性能可以通过系统⾃带的性能监视器查看操作系统的性能指标(如图⼆五、⼆六所⽰)。
图⼆五:windows性能监视器
图⼆六:windows性能监视器
Zabbix可以通过相关参数直接获取windows系统的监控值并以图形的⽅式呈现。下⾯列出⼀些常见的windows监控参数。
Combined CPU Utilization % CPU利⽤率Physical Disk Percent Idle Time 物理磁盘空闲⽐Paging File % Usage 虚拟内存利⽤率Average Read Transfer Time to Disk _Total 磁盘平均读周期Average Write Transfer Time to Disk _Total 磁盘平均写周期IIS Current Connections IIS当前连接数 Requests/Sec .NET请求数SQL: Number of Connections SQL连接数SQL: % Processor Time SQL的CPU利⽤率SQL: Number Failed Jobs SQL失败的作业数2.4 菜单栏介绍
Zabbix ODBC 监控 Oracle 和 MySQL
ZabbixODBC监控Oracle和MySQL
本⽂章记录如何通过ODBC的⽅式远程监控MySQL、Oracle数据库
安装ODBC驱动1.
在ZabbixServer上安装即可
PowerShell
# 安装ODBC驱动
yum -y install unixODBC unixODBC-devel
# 显⽰版本信息
[root@demo ~]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 81
2
3
4
5
6
7
8
9
10
11
12
13
配置MySQLODBC连接2.
安装MySQLODBC驱动a.
在ZabbixServer上安装即可
Bash
yum -y install mysql-connector-odbc1
修改配置⽂件⼯作:odbcinst.ini,只需要配置⼀次,后续不需要修改Bash
# 配置odbcinst.ini主要是配置安装的ODBC数据库驱动,如MySQL,oracle,
[MySQL] # 驱动名称,在数据库⽂件中需要
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
zabbix监控DNS服务
zabbix监控DNS服务
为了⽅便公司内部访问jira、wiki等内⽹应⽤服务,我们搭建了DNS服务,为全公司提供域名解析服务,重要性可想⽽知,因此,有了监控
的需求,这⾥记录下使⽤zabbix来监控dns的过程。
监控DNS分为三部分
1. 端⼝监控(53)
1. ⽇志监控(/var/log/messages中出现named.*fatal)
1. 解析域名监控(脚本定时dig )监控实施:
为了⽅便迁移,结构清晰,使⽤创建模板,在模板中定义监控项(Items)、触发器(trigger),然后在主机中链接模板。这样以后再增加或
者迁移dns服务,直接套⽤模板就⾏了。端⼝监控
配置—模板–创建模板—-输⼊模板名称,然后点保存。
模板创建成功后,开始创建监控项:
配置—模板—DNS模板—-监控项—-创建监控项
填写名称、类型、键值,其他默认即可。创建完成后,点保存。
创建监控项,监控项可以去获取数据了。但是想要报警还需要添加触发器(trigger)来触发报警。
配置—-模板—DNS模板—触发器—创建触发器 ⽇志监控
同样在DNS模板中创建⽇志的监控项。
这⾥需要重点说⼀下监控项中的:键值(key) log[/var/log/messages,named.*fatal,,skip,]
zabbix的⽇志⽂件监控,它最主要的是监控⽇志⽂件中有没有某个字符串的表达式,对应⽇志轮转与否,zabbix都⽀持。
在配置Item的时候,类型选择Zabbix agent (active),这⾥主要需要配置的是键值(Key)。下⾯是监控⽇志的两种key——log和logtr。 log[/path/to/some/file,,,,,]
logtr[/path/to/some/filename_format,,,,,]
regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也可以,例如我想检索带ERROR关键词的记录
zabbix_proxy参数以及简单优化
zabbix_proxy参数以及简单优化
编写shell脚本
#!/bin/bash
A=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartPollers= | awk '{print $1}'`
B=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartTrappers= | awk '{print $1}'`
C=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartDBSyncers= | awk '{print $1}'`
D=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartPingers= | awk '{print $1}'`
E=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartPollersUnreachable= | awk '{print $1}'`
F=`cat -n /etc/zabbix/zabbix_proxy.conf | grep StartDiscoverers= | awk '{print $1}'`
H=`cat -n /etc/zabbix/zabbix_proxy.conf | grep HistoryCacheSize= | awk '{print $1}'`
sed -i ''"$A"'c StartPollers=500' /etc/zabbix/zabbix_proxy.conf
sed -i ''"$B"'c StartTrappers=200' /etc/zabbix/zabbix_proxy.conf
sed -i ''"$C"'c StartDBSyncers=50 ' /etc/zabbix/zabbix_proxy.conf
zabbix利用SNMPTrap接收交换机主动告警
zabbix利⽤SNMPTrap接收交换机主动告警
zabbix接收trap的⼯作流程:
1. snmptrapd 收到trap2. snmptrapd将trap传递给SNMPTT或调⽤Perl接收器3. SNMPTT或Perl trap接收器解析,格式化并将trap写⼊⽂件4. Zabbix SNMP trap读取并解析trap⽂件5. 对于每个trap,Zabbix发现主机接⼝与接收的trap地址匹配的所有“SNMP trap”监控项。请注意,在匹配期间只使⽤主机接⼝中选定的“IP”或“DNS”。6. 对于每个找到的监控项,将trap与“snmptrap[regexp]”中的regexp进⾏⽐较。 trap设置为all匹配项的值。如果没有找到匹配的监控项,并且有⼀个“snmptrap.fallback”监控项,则将trap设置为该值。7. 如果trap未设置为任何监控项的值,Zabbix默认记录不匹配的trap。(这由管理 - >常规 - >其它中的“记录不匹配的SNMP trap(Logunmatched SNMP traps)”配置。)
⼀、安装配置snmptrapd
1、yum install -y net-snmp net-snmp-utils net-snmp-perl #安装net-snmp及相关⼯具(⾥⾯包含SNMPTrapd)
2、vim /etc/snmp/snmptrapd.conf
authCommunity log,execute,net 团体名 #指定团体名 traphandle default /usr/sbin/snmptthandler #指定snmptt为trap接收器,此时还没安装snmptt3、systemctl start snmptrapd #启动snmptrapd
4、systemctl enable snmptrapd #加⼊开机启动项
5、交换机开启snmp和snmptrap,并指定团体名和trap⽬标主机IP
zabbix server is not running的N个解决办法
正常安装完zabbix后,登录后zabbix监控报错zabbix server is not running: the
information displayed may not be current,下面的几种情况都有可能引起这个错误,
1. selinux是否关闭。一定要关闭这个,开启selinux会引起一连串问题,甚至zabbix的discovery功能也不能正常使用
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
如果不想重启系统,使用命令setenforce 0
注:
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
2. zabbix web目录下面 $ZBX_SERVER 是否为ip,如果是localhost,ping下localhost是否能解析。如果不能,需要在/etc/hosts文件里增加相应的项目
3.查看php的fsockopen模块是否启用。
方法一:
第一步:
php.ini文件中查找
allow_url_fopen = On
使其值为On
第二步:
php.ini文件中查找
extension=php_openssl.dll
如果前面有分号,去掉分号
第三步:
重启web服务器,apache或IIS
还有一种情况,也就是方法二:
1. vi php.ini
找到 allow_url_fopen 这个参数设置成 On,即
allow_url_fopen = On
2. 让你的php支持 opensll扩展。
ZABBIX配置LDAP认证
ZABBIX配置LDAP认证
公司越来越大,人越来越多,配置人员的账号密码很麻烦。为了集中管理,zabbix系统配置实现通过域认证登录。zabbix配置ldap认证对接AD域,可使用户通过域账号登录,一方面减少zabbix管理员的用户管理工作,一方面用户不需要记额外的密码。
描述:
LDAP 的作用:通过LDAP验证,将zabbix 和windows 域控联系在一起,只有域控中有的用户才能登录zabbix
依赖:
zabbix配置ldap认证需要zabbix server这个服务器的php安装ldap插件。
服务器执行命令: php -m|grep ldap
如果有输出 说明安装了,否则需要单独安装。
配置步骤
▪ 1、准备一个域账号,该账号可以在AD上查询域账号
这里准备的域账号为ldap_admin
▪ 2、在zabbix上创建与该域账号同名的账号ldap_admin
设置ldap_admin的群组为“Zabbix Administrators”,用户类型为“超级管理员”,
▪ 3、用ldap_admin登录zabbix
▪ 4、配置LDAP认证
管理–>认证–>LDAP,配置如下图:
LDAP主机:[域控服务器IP]
端口号:389 (域控服务端口,默认为389) 基于DN: DC=tc,DC=com (在哪个DC下查找域账号,也即只有这个DC下的域账号可以登录zabbix,包括ldap_admin)
搜寻属性: sAMAccountName (必须为这个属性值)
绑定DN:
CN=ldap_admin,OU=User,OU=SysAppUsers,DC=tc,DC=com
(CN就LDAPuser在AD上的显示名称,OU就是LDAPuser属于哪个OU,DC是LDAPuser属于哪个DC)
配置好后,点击“测试”按钮,测试成功后,点击“更新”按钮,LDAP认证配置完成。
CentOS-7编译安装zabbix5.0(proxy端)
CentOS-7编译安装zabbix5.0(proxy端)
1、准备环境
zabbix-prxoy是⼀个代理服务器,它收集监控到的数据,先存放数据库,然后再传送到zabbix-server;所以代理需要⼀个单独的数据库
zabbix-prxoy的作⽤:
1、当监控设备过多时,⽤于分担zabbix-server监控压⼒
2、针对不同的⽹络环境,可以组成分布式监控
环境:已安装MySQL 5.7.31
2、开始安装
添加zabbix⽤户⽤于运⾏zabbix服务
[root@swarm-node2 local]# useradd -s /sbin/nologin zabbix
安装依赖包
yum install unixODBC-devel net-snmp-devel libevent-devel libxml2-devel libcurl-devel -y
解压源码包
[root@swarm-node2 local]# tar -zxf zabbix-5.0.2.tar.gz
编译参数
./configure --prefix=/usr/local/zabbix-proxy --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc
--prefix=/usr/local/zabbix-proxy # 编译安装路径
--enable-prxoy # 启动proxy端
--with-mysql=/usr/local/mysql/bin/mysql_config #编译连接mysql相关依赖包,并指定mysql_config的路径
--with-net-snmp #启动snmp相关,⽤于snmp监控设备
--with-libcurl #启动curl相关
Centos7.8系统源码安装部署zabbix5.0.3
Centos7.8系统源码安装部署zabbix5.0.3
⼀、安装nginx
⼆、安装PHP
三、源码安装zabbix
四、配置web页⾯
五、安装zabbix proxy
六、安装grafana
附1:安装php报错问题处理
附2:Mysql数据库配置
附3:配置centos7.8系统yum源
⼀、安装nginx
安装如下依赖包:sudo yum install gcc pcre-devel openssl-devel
创建nginx⽤户和⽤户组:sudo groupadd -f nginx
sudo useradd -g nginx nginx
下载上传nginx-1.19.2.tar.gz⾄服务器,解压⽂件包命令如下:tar -xvf nginx-1.19.2.tar.gz
安装编译nginx命令如下:./configure \
--group=nginx \
--user=nginx \
--prefix=/u01/nginx \
--conf-path=/u01/nginx/etc/nginx/nginx.conf \
--error-log-path=/u01/nginx/logs/error.log \
--http-log-path=/u01/nginx/logs/access.log \
--http-client-body-temp-path=/u01/nginx/tmp/nginx/client_body \
--http-proxy-temp-path=/u01/nginx/tmp/nginx/proxy \
--http-fastcgi-temp-path=/u01/nginx/tmp/nginx/fastcgi \
--pid-path=/u01/nginx/logs/nginx.pid \
--lock-path=/u01/nginx/lock/nginx \
--with-http_stub_status_module \
