百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Zabbix监控工具安装及配置实际操作记录

bigegpt 2024-08-06 12:00 8 浏览

以下记录是笔者两年前实际操作的完整记录,包含Zabbix平台的安装及配置,微信通知告警等实际操作,还包含不少在zabbix手册中不会提到但与实际应用密切相关的Linux相关操作,用这个记录文档一两天内做一个完整的Zabbix系统毫无问题,我已验证过。




#本文档目的是安装Zabbix 4.0LTS平台,依次Zabbix安装CentOS 7.4 / Zabbix平台及依赖包

#Dell R510带远程控制卡,可以WWW远程管理。在192.168.3.250上,zabbix@root

#安装好后从Zabbix_Server的log查询,结果如下:

# SNMP monitoring: YES

# IPMI monitoring: YES

# Web monitoring: YES

# VMware monitoring: YES

# SMTP authentication: YES

# Jabber notifications: NO

# Ez Texting notifications: YES

# ODBC: NO

# SSH2 support: NO

# IPv6 support: YES

# TLS support: NO

#Zabbix平台采用编译安装模式,支持SNMP及IPMI;CentOS建议安装最小服务器模式或带GUI的服务器模式

#Zabbix平台包括Zabbix_Server,Zabbix_agent

#首先安装好CentsOS

#最小化安装的系统缺乏一些组件,以下命令将它们安装

yum install lrzsz tree net-tools nmap vim bash-completion lsof dos2unix nc telnet ntp wget rng-tools psmisc screen -y

#配置时间同步

#查看时间同步情况

timedatectl

#安装NTP软件包并启动

yum install ntp -y

systemctl restart ntpd

systemctl enable ntpd

#最小安装包没有安装网络工具包,先安装下

yum -y install net-tools

#关闭防火墙及Selinux安全服务

#后期为了安全可以打开这两项服务,但需要重新配置

systemctl stop firewalld

systemctl disable firewalld

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

setenforce 0

#查看防火墙状态

firewall-cmd --state

#安装依赖软件包

yum install httpd mariadb mariadb-server php php-mysql php-devel php-xml php-bcmath php-mbstring php-gd wget expect net-snmp gcc mysql-devel libxml2-devel net-snmp-devel libevent-devel curl-devel -y

#下载Zabbix源文件(如先下载了,可以跳过,建议先下载,wget命令下载很慢)

wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.12/zabbix-4.0.12.tar.gz

#启动httpd及sql服务,并增加自启动

systemctl start httpd

systemctl enable httpd

systemctl enable mariadb

systemctl start mariadb

#数据库设置(根据要求答y或/n,应答参考initmysqlpassword.sh)

mysql_secure_installation

#解压缩下载或拷贝进来的zabbix源文件

tar -zxvf zabbix-4.0.12.tar.gz

#增加zabbix系统用户

cd zabbix-4.0.12

groupadd --system zabbix

useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

#MySQL数据库设置Zabbix用户及中文支持(这里实际使用的是CentOS自带的MySQL的开源分支MariaDB)

cd database/mysql/

mysql -uroot -p123456 -e "create database zabbix character set utf8 collate utf8_bin;"

mysql -uroot -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"

mysql -uroot -p123456 -e "flush privileges;"

mysql -uzabbix -pzabbix -e "use zabbix;source schema.sql;source images.sql;source data.sql;"

cd ../..

#openipmi安装

yum install OpenIPMI

yum install ncurses-devel

yum install OpenIPMI-devel

#Zabbix编译安装

./configure --enable-server --enable-agent --with-mysql --with-openssl --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

make install

#匹配Zabbix与数据库及httpd

#Zabbix配置文件位于/usr/local/etc;Log文件位于LogFile=/tmp

sed -i s/'# DBPassword='/'DBPassword=zabbix'/g /usr/local/etc/zabbix_server.conf

cp -r frontends/php/ /var/www/html/zabbix

sed -i s/'^max_execution_time.*'/'max_execution_time = 300'/g /etc/php.ini

sed -i s/'^max_input_time.*'/'max_input_time = 300'/g /etc/php.ini

sed -i s/'^post_max_size.*'/'post_max_size = 16M'/g /etc/php.ini

sed -i s/'^;date.timezone.*'/'date.timezone = Asia\/Shanghai'/g /etc/php.ini

#重启数据库及网页服务

systemctl restart httpd

systemctl enable httpd

systemctl restart mariadb

systemctl enable mariadb

#日志中发现Fping未装,补上,先在fping.org上下载源文件,在root目录下

tar zxf fping-4.2.tar.gz

cd fping-4.2

./configure && make && make install

#本例中Zabbix_Server.conf中fping路径指向 /usr/sbin/fping

#实际上fping在l/usr/local/sbin/fping

#fping缺省用户权限是root,zabbix建立了zabbix组的zabbix用户

ln -s /usr/local/sbin/fping /usr/sbin/fping

chown root:root /usr/sbin/fping

chmod u+s /usr/sbin/fping

#安装SNMP工具包

yum -y install net-snmp-utils

#Snmpwalk的一些简单用法

snmpwalk -v 2c -c public 127.0.0.1 system

snmpwalk -v 2c -c public 127.0.0.1 ifdescr

#启动Zabbix服务器及代理

#zabbix_server默认日志文件位于/tmp/zabbix_server.log,有问题可以查看这个日志文件

zabbix_server

#确认Zabbix的server及agent是否启动

netstat -anpt | grep zabbix

#Zabbix_agentd.conf中配置的Hostname需与Web管理端hosts中主机名完全一致

#进入http页面配置Zabbix_Server

#记住设置的Server Name,在Agent配置中的HostName与此要严格一致,含其它机器上的agent

#这里配置的是Zabbix.Dell

#此项配置中 PHP LDAP有报警,未安装

zabbix_agentd

#Zabbix相关进程的管理方法,systemctl关停进程好像不行

#CentOS精简版不含killall工具,killall在psmisc工具包中

yum install psmisc

#显示在运行的zabbix字头的进程

ps -ef|grep zabbix

killall zabbix_server

#软件的删除

#有些软件会有 make uninstall 之类的功能,但大多都没有,所以只有手动删除

#或者在configure的时候加个preifx参数,比如 --preifx=/opt/squid

#这样当你不用的时候直接rm -rf /opt/squid 就可以了。

#查看RPM方式安装的软件包,zabbix为指定名字

rpm -qa | grep zabbix

#企业微信已创建运维部,运维报警信息如下:

#zabbix中创建用户里对应的账户是微信账号而不是微信号

#AgentId=1000002

#Secret=xxxxxxxxxxxxxxxxxxx

#corpid=wxxxxxxxxxxx71d3244

#--user={ALERT.SENDTO}

#

#--msg={ALERT.MESSAGE}

#微信接口脚本文件位置/usr/lib/zabbix/alertscripts

chown zabbix.zabbix /usr/lib/zabbix/alertscripts/weixin

chmod 755 /usr/lib/zabbix/alertscripts/weixin

#wechat脚本不可用,wexin可用(oneSaas的)

./weixin --corpid=ww4a5f9280471d3244 --corpsecret=xxxxxxxxxxxxxxxxx="云平台版测试告警" --toparty=2 --agentid=1000002

./weixin.one --corpid=ww4a5f9280471d3244 --corpsecret=2wPqlt6VjygojMzq7-NQcRAZCb4YgXfHLhkct_fWo8o --msg="这里是XXX告警测试" --user=xxxxxxx --agentid=1000002

./wexin.py --corpid=ww4a5f9280471d3244 --corpsecret=2wPqlt6VjygojMzq7-NQcRAZCb4YgXfHLhkct_fWo8o --msg="吃完饭了吗打麻将去" --user=xxxxxxx --agentid=1000002


#解决zabbix中文显示乱码:

#(1)从Windows系列系统复制宋体 常规(simsun.ttc):

#文件路径 C:\Windows\Fonts

#(2)复制该字体文件到zabbix的web端的fonts目录下:

#默认rpm安装位置为:/var/www/html/zabbix/assets/fonts

#注:字体文件的文件后缀名需要是:.ttf,因此改成:simsun.ttf

#(3)修改php配置文件:

cd /var/www/html/zabbix/include/defines.inc.php

vim include/defines.inc.php

#原内容如下:

#define(‘ZBX_GRAPH_FONT_NAME’, ‘graphfont’);

#define(‘ZBX_FONT_NAME’, ‘graphfont’);

#修改成以下内容:

#define(‘ZBX_GRAPH_FONT_NAME’, ‘simsun’);

#define(‘ZBX_FONT_NAME’, ‘simsun’);

#SNMP Trapper也要单独安装?

#还需要安装NMAP,zabbix脚本用到

相关推荐

最全的MySQL总结,助你向阿里“开炮”(面试题+笔记+思维图)

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上...

Redis数据库从入门到精通(redis数据库设计)

目录一、常见的非关系型数据库NOSQL分类二、了解Redis三、Redis的单节点安装教程四、Redis的常用命令1、Help帮助命令2、SET命令3、过期命令4、查找键命令5、操作键命令6、GET命...

netcore 急速接入第三方登录,不看后悔

新年新气象,趁着新年的喜庆,肝了十来天,终于发了第一版,希望大家喜欢。如果有不喜欢看文字的童鞋,可以直接看下面的地址体验一下:https://oauthlogin.net/前言此次带来得这个小项目是...

精选 30 个 C++ 面试题(含解析)(c++面试题和答案汇总)

大家好,我是柠檬哥,专注编程知识分享。欢迎关注@程序员柠檬橙,编程路上不迷路,私信发送以下关键字获取编程资源:发送1024打包下载10个G编程资源学习资料发送001获取阿里大神LeetCode...

Oracle 12c系列(一)|多租户容器数据库

作者杨禹航出品沃趣技术Oracle12.1发布至今已有多年,但国内Oracle12C的用户并不多,随着12.2在去年的发布,选择安装Oracle12c的客户量明显增加,在接下来的几年中,Or...

flutter系列之:UI layout简介(flutter-ui-nice)

简介对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。在flutter中,基本上所有的对象都是wi...

Flutter 分页功能表格控件(flutter 列表)

老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来。PaginatedDataTablePaginatedDataTable是一个带分页功能的DataTable,...

Flutter | 使用BottomNavigationBar快速构建底部导航

平时我们在使用app时经常会看到底部导航栏,而在flutter中它的实现也较为简单.需要用到的组件:BottomNavigationBar导航栏的主体BottomNavigationBarI...

Android中的数据库和本地存储在Flutter中是怎样实现的

如何使用SharedPreferences?在Android中,你可以使用SharedPreferencesAPI来存储少量的键值对。在Flutter中,使用Shared_Pref...

Flet,一个Flutter应用的实用Python库!

▼Flet:用Python轻松构建跨平台应用!在纷繁复杂的Python框架中,Flet宛如一缕清风,为开发者带来极致的跨平台应用开发体验。它用最简单的Python代码,帮你实现移动端、桌面端...

flutter系列之:做一个图像滤镜(flutter photo)

简介很多时候,我们需要一些特效功能,比如给图片做个滤镜什么的,如果是h5页面,那么我们可以很容易的通过css滤镜来实现这个功能。那么如果在flutter中,如果要实现这样的滤镜功能应该怎么处理呢?一起...

flutter软件开发笔记20-flutter web开发

flutterweb开发优势比较多,采用统一的语言,就能开发不同类型的软件,在web开发中,特别是后台式软件中,相比传统的html5开发,更高效,有点像c++编程的方式,把web设计出来了。一...

Flutter实战-请求封装(五)之设置抓包Proxy

用了两年的flutter,有了一些心得,不虚头巴脑,只求实战有用,以供学习或使用flutter的小伙伴参考,学习尚浅,如有不正确的地方还望各路大神指正,以免误人子弟,在此拜谢~(原创不易,转发请标注来...

为什么不在 Flutter 中使用全局变量来管理状态

我相信没有人用全局变量来管理Flutter应用程序的状态。毫无疑问,我们的Flutter应用程序需要状态管理包或Flutter的基本小部件(例如InheritedWidget或St...

Flutter 攻略(Dart基本数据类型,变量 整理 2)

代码运行从main方法开始voidmain(){print("hellodart");}变量与常量var声明变量未初始化变量为nullvarc;//未初始化print(c)...