Zabbix 监控服务
0. 环境准备:在zabbix服务器上搭建lnmp服务,让zabbix监控用网页展示出来
0.1 安装nginx,并修改主配置
http {
……
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
……
server {
……
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
……
}
……
}
0.2 安装数据库服务mariadb,给zabbix创建一个登陆用户,以及存储数据的库
[root@zabbix ~]# yum install -y mariadb-server mariadb
systemctl restart mariadb
mysqladmin -uroot password '密码'
mysql -u root -p密码 -e'create database 库名 character set utf8'
mysql -u root -p密码 -e'grant all on 库名.* to 用户名@"localhost" identified by "密码"'
0.3 准备php环境 ,装包php-fpm并启动服务即可,然后查看一些nginx能不能解析php文件。
0.4 创建一个zabbix用户
1. 安装Zabbix服务
1.1 安装依赖项软件
[root@zabbix ~]# yum -y install gcc make net-snmp-devel curl-devel libevent-devel(这个包可能没有,需要到网上下载)
1.2 进行原玛编译安装
[root@zabbix ~]# tar -xf zabbix.tar.gz && cd zabbix
[root@zabbix zabbix]# ./configure --prefix=/安装位置 --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
# 配置成功后,会有下面这个提示,然后可以安装了
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* *
***********************************************************
[root@zabbix zabbix]# make && make install
--enable-server | 安装部署zabbix服务器端软件 |
--enable-agent | 安装部署zabbix被监控端软件,让zabbix可以监控自己 |
--enable-proxy | 安装部署zabbix代理相关软件,这样zabbix可以连接代理服务器进行监控 |
--with-mysql=数据库目录 | 配置mysql_config路径, =数据库目录 可以不写,这样默认数据存在/var/lib/mysql下 |
--with-net-snmp | 允许zabbix通过snmp协议监控其他设备 (需要依赖项) |
--with-libcurl | 安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态 (需要依赖项) |
1.3 进行数据初始化,从源码包中拷贝php文件,导入数据库信息
[root@zabbix zabbix]# cp -r frontends/php/ /网站网页目录/html/zabbix
[root@zabbix zabbix]# cd database/mysql/
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < schema.sql
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < images.sql
[root@zabbix mysql]# mysql -u 用户 -p密码 zabbix < data.sql
1.4 进行php基本配置
[root@zabbix ~]# yum -y install php-gd php-xml php-ldap
[root@zabbix ~]# yum install -y php-bcmath php-mbstring php-common
# 这几个yum默认没有,需要上网下载,而且他们的版本需要一样,其中php-common系统默认安装是是5.4.16版本
# 修改php参数然后重启服务
[root@zabbix ~]# sed -i '/max_execution_time/cmax_execution_time = 300' /etc/php.ini
sed -i '/^max_input_time/cmax_input_time = 300' /etc/php.ini
sed -i '/post_max_size/cpost_max_size = 16M' /etc/php.ini
sed -i '/;date.timezone/cdate.timezone = Asia\/ShangHai' /etc/php.ini
[root@zabbix ~]# systemctl restart php-fpm
php.ini配置解释 | |
date.timezone | 设置时区 |
max_execution_time | 最大执行时间,秒 |
post_max_size | POST数据最大容量 |
max_input_time | 服务器接收数据的时间限制 |
memory_limit | 内存容量限制 |
2. 进行Zabbix服务初始配置
2.1 进行网页配置
[root@zabbix ~]# cp -r /zabbix/frontends/php/ /网站网页目录/html/zabbix
[root@zabbix ~]# chmod o+w /网站网页目录/html/zabbix/conf/
两个办法:一个是用浏览器访问Zabbix的php网页然后进行配置,不过再进行配置前,需要修改权限:暂时让一个其他人可以修改,在页面配置好后,再改回来
另一个是手写配置文件 再拷贝了源码包中的php文件目录下的conf文件中写一个zabbix.conf.php
[root@zabbix ~]# cat > /网站网页目录/conf/zabbix.conf.php <
2.2 改配置文件,以及拷贝启动脚本到path位置,然后就可以用脚本开始启动服务
[root@zabbix ~]# sed -i '/DBHost=/cDBHost=localhost' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/^DBName=/cDBName=zabbix数据库名' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/^DBUser=/cDBUser=zabbix数据库用户名' /zabbix工作目录/etc/zabbix_server.conf
sed -i '/DBPassword=/cDBPassword=数据库密码' /zabbix工作目录/etc/zabbix_server.conf
cp /zabbix源码包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_server
[root@zabbix ~]# zabbix_server start
netstat -ntlup | grep 10051
DBHost=localhost | 数据库主机,默认该行被注释 |
DBName=zabbix | 设置数据库名称 |
DBUser=zabbix | 设置数据库账户 |
DBPassword=zabbix | 设置数据库密码,默认该行被注释 |
LogFile=/tmp/zabbix_server.log | 设置日志,仅查看以下即可 |
3. 基本监控配置
3.1 监控本机
LogFile | 指定日志文件的存储信息 |
Server | Agent服务可以被哪些IP访问 |
ServerActive | zabbix监控服务器的IP和端口 |
UnsafeUserParameters | 可以自定义监控命令 |
Include=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf | 自定义操作命令的配置信息 |
[root@zabbix ~]# sed -i '/^Server=/cServer=127.0.0.1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=127.0.0.1:10051' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_agentd
[root@zabbix ~]# zabbix_agentd start
netstat -ntlup | grep 10050
3.2 监控远端主机(装包[源码编译]、配置、启服务)
3.2.1 安装依赖项、解压目录、配置、编译、安装
[root@mysql ~]# yum install -y gcc pcre-devel
[root@mysql ~]# tar -xf zabbix源码包
[root@mysql ~]# cd zabbix解压后源码包目录
[root@mysql zabbix]# ./configure --prefix=/zabbix工作目录 --enable-agent && make && make install
3.2.2 修改agent配置文件、拷贝并修改启动脚本
[root@mysql ~]# sed -i '/^Server=/cServer=127.0.0.1,监控服务器的IP' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive=/cServerActive=监控服务器的IP:10051' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/UnsafeUserParameters=/cUnsafeUserParameters=1' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/Option: Include/aInclude=/zabbix工作目录/etc/zabbix_agentd.conf.d/*.conf' /zabbix工作目录/etc/zabbix_agentd.conf
[root@mysql ~]# cp /zabbix源码包/misc/init.d/fedora/core/zabbix_* /usr/local/bin/
sed -i '/BASEDIR=/c\ BASEDIR=/zabbix工作目录' /usr/local/bin/zabbix_agentd
3.2.3 创建用户、使用脚本启动服务
[root@mysql ~]# useradd zabbix ; zabbix_agentd start
4. 自定义监控项
4.1 配置被监控端
4.1.1 允许自定义监控项,对UnsafeUserParameters、Include两个字段的数据修改,上面配置中有写
4.1.2 定义监控命令
[root@mysql ~]# cat > /zabbix工作目录/etc/zabbix_agentd.conf.d/自定义文件名.conf << EOF
UserParameter=自定义命令名,Linux命令(一些特殊字符用 \ 来取消其含义)
EOF
# 修改完成后,重其agent服务
[root@mysql ~]# zabbix_agentd restart
4.1.3 测试定义监控命令
[root@mysql ~]# /zabbix工作目录/bin/zabbix_get -s 127.0.0.1 -p 10050 -k 自定义的命令名
4.2 配置监控端
4.2.1 测试被监控端写的命令能不能用
[root@zabbix ~]# /zabbix工作目录/bin/zabbix_get -s 被监控端IP地址 -p 10050 -k 自定义的命令名
4.2.2 创建模板、创建应用集、创建监控项 (图形界面解决)
5. 设置被监控端主动传递数据给监控端
其主要原理,就算让被监控端自己连接监控端,把数据传递给监控端,和一般配置不同的是,这次监控端和被监控端连接,不是通过IP而且名字,所以这次配置的时候名字必须设置完全不同
[root@ mysql ~]# sed -i 's/^Server=/# Server=/' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/StartAgents=/cStartAgents=0' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^ServerActive/cServerActive=zabbix服务器IP' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/RefreshActiveChecks=/cRefreshActiveChecks=每隔多少秒传递一次数据' /zabbix工作目录/etc/zabbix_agentd.conf
sed -i '/^Hostname=/cHostname=自定义的该主机名(要和其他机器不同)' /zabbix工作目录/etc/zabbix_agentd.conf