(第十八周作业)
1、搭建zabbix服务,实现监控linux和windows的内存,cpu,磁盘,网络等基础指标
1)安装zabbix服务端,zabbix 服务端IP为192.168.184.130
安装apache
# yum -y install httpd php php-fpm php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql
安装php扩展包
# yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel
安装Mysql扩展包
# yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
安装依赖包
# yum install -y net-snmp-devel libevent-devel
下载zabbix
# cd /usr/src/
# wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.25/zabbix-3.0.25.tar.gz
#tar xf zabbix-3.0.25.tar.gz
配置zabbix用户和组
# groupadd -r zabbix
# useradd -r -g zabbix -M -s /sbin/nologin zabbix
安装数据库
# yum install mariadb-server mariadb -y
# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpasswd';
mysql> grant all privileges on zabbix.* to zabbix@127.0.0.1 identified by 'zabbixpasswd';
mysql> flush privileges;
mysql> quit
# cd /usr/src/zabbix-3.0.25/database/mysql/
# mysql -uzabbix -pzabbixpasswd zabbix < schema.sql
# mysql -uzabbix -pzabbixpasswd zabbix < images.sql
# mysql -uzabbix -pzabbixpasswd zabbix < data.sql
编译安装zabbix
# cd /usr/src/zabbix-3.0.25
# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
# make && make install
修改服务端配置文件 设置数据库信息
# vim /usr/local/etc/zabbix_server.conf
DBPassword=zabbixpasswd #数据库连接密码
启动zabbix_server和zabbix_agentd
# zabbix_server
# zabbix_agentd
修改/etc/php.ini的配置
# vi /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
# service php-fpm restart
# mkdir -p /usr/local/apache/htdocs/zabbix
#cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
配置apache虚拟主机
# vim /etc/httpd.conf
在配置文件的末尾加入下内容
<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName 192.168.184.130
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
# chmod 777 /usr/local/apache/htdocs/zabbix/conf
重启apache
# apachectl stop
# apachectl start
禁用Selinux以及禁用防火墙
# systemctl disable firewalld
#systemctl stop firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
安装zabbix web 界面,打开本地浏览器http://192.168.184.130/zabbix
在php依赖检查都通过,配置数据库连接信息,(这里就不截图
zabbix默认登入用户和密码:Admin zabblix
恢复zabbix/conf目录的权限为755
#chmod 755 /usr/local/apache/htdocs/zabbix/conf
2)Linux 安装zabbix客户端,客户端IP为192.168.184.131
安装zabbix客户端软件
# rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
#yum install zabbix_agent
修改配置文件
# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid # agent pid 的运行目录
LogFile=/var/log/zabbix/zabbix_agentd.log # agent 运行日志目录
Server=192.168.184.130 # 被动模式服务器地址
ServerActive=192.168.184.130:10051 # 主动模式服务器地址
Hostname=192.168.184.131 # 客户端主机名或 IP 地址
禁用Selinux以及禁用防火墙
# systemctl disable firewalld
#systemctl stop firewalld
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
启动Zabbix agent,并配置开机自启
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
在zabbix页面上设置被监控客户端,上方的导航栏,选择:“Configuration"-->"Hosts",再点右上角的“Create hosts”按钮。
在Host页面的host选项卡:
Hostname写入客户端IP,Groups栏目点旁边的“select"按钮来选择”Linux Servers“,
Agent interfaces 栏目的IP address写客户端地址
Enabled要打勾
在Host页面的Templates选项卡:
点Link new templates栏目右边的”select"按钮,选择“Template OS Linux“,要记得点一下”Add“链接,这样才会添加到Linked templates,然后再点update
然后回到Host页面,可以看到刚才配置的主机名称,等待Availability列的”ZBX“变成绿色。
在zabbix页面上设置监控页面,上方的导航栏,选择
“Monitoring"-->"Screens",再点"Create screen"按钮,
输入Name,给这个监控页面起名,这里输入“Linux131",保存
点击“Linux131”,点右上角的"Edit Screen"按钮,可以编辑监控页面。
点"+"/"-"按钮可以增加或减少相应位置的行和列。
点"change"链接,显示图形选择页面,在Graph栏目中点右边的"Select"按钮,选择相应的项目。
这里要依次添加以下监控图形:
CPU load:CPU负载
CPU utilization:CPU使用率
Disk space usage/:显示/文件系统的使用图
Memory usage:内存
Network traffic on eno16777736:网卡
最后Screen如下图所示:
3)Windows安装zabbix客户端,客户端IP为192.168.184.132
下载用于windows的zabbix客户端 https://assets.zabbix.com/downloads/3.0.25/zabbix_agents-3.0.25-win-amd64.zip
解压下载到的文件:zabbix_agents-3.0.25-win-amd64.zip
修改解压目录D:\conf\zabbix_agentd.win.conf
LogFile=D:\Zabbix\zabbix_agentd.log
Server=192.168.184.130
ServerActive=192.168.184.100:10051
Hostname= 192.168.184.132
打开dos窗口
cd d:\Zabbix\bin
-i参数为安装指令,-c参数为执行配置文件的目
zabbix_agentd.exe -i -c "D:\Zabbix\conf\zabbix_agentd.win.conf"
-s为启动Zabbix agent服务
zabbix_agentd.exe -s
在zabbix页面上设置被监控客户端,上方的导航栏,选择:“Configuration"-->"Hosts",再点右上角的“Create hosts”按钮。
在Host页面的host选项卡:
Hostname写入客户端IP,Groups栏目点旁边的“select"按钮来选择”Templates/Operating systems“,
Agent interfaces 栏目的IP address写客户端地址
Enabled要打勾
在Host页面的Templates选项卡:
点Link new templates栏目右边的”select"按钮,选择“Template OS Windows",要记得点一下”Add“链接,这样才会添加到Linked templates,然后再点update
然后回到Host页面,可以看到刚才配置的主机名称,等待Availability列的”ZBX“变成绿色。但是Item这列显示22个记录,点进去看不到磁盘和网络。所以回到Windows上面。修改D:\conf\zabbix_agentd.win.conf,找到“PerfCounter”段,通过查看这段的帮助信息,增加以下几行:
PerfCounter = interrupts,"\Processor(0)\Interrupts/sec",60
PerfCounter = Net_Incoming,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Received/sec",30
PerfCounter = Net_Outgoing,"\Network Interface(Intel[R] PRO_1000 MT Network Connection)\Bytes Sent/sec",30
重启服务管理器中的zabbix agent服务。再回到zabbix页面上,发现item数量大量增加到112,点进去看到磁盘和网络的数据项。
在zabbix页面上设置监控页面,上方的导航栏,选择
“Monitoring"-->"Screens",再点"Create screen"按钮,
输入Name,给这个监控页面起名,这里输入“Windows132",保存
点击“Windows132”,点右上角的"Edit Screen"按钮,可以编辑监控页面。
点"+"/"-"按钮可以增加或减少相应位置的行和列。
点"change"链接,显示图形选择页面,在Graph栏目中点右边的"Select"按钮,选择相应的项目。
这里要依次添加以下监控图形:
CPU load :CPU负载
Memory usage :内存使用情况
Disk space usage C: C盘使用情况
Network traffic on Intel(R) PRO/1000 MT Network Connection: 网络流量
最后Screen如下图所示:
2、搭建zabbix服务,监控nginx status
在客户端机上假设已完装了nginx,它的IP是192.168.184.131
修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
……
server {listen 80;
……location /nginx-status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
……
保存配置文件重启nginx.编写nginx状态查询脚本
# vi /usr/local/nginx/nginx-status.sh
#!/bin/bash
UrlStr="http://127.0.0.1/nginx-status"
function active(){
curl $UrlStr 2>/dev/null |grep "Active"|awk '{print $NF}'
}
function accepts(){
curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $1}'
}
function handled(){
curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $2}'
}
function requests()
{
curl $UrlStr 2>/dev/null|awk NR==3 |awk '{print $3}'
}
function reading(){
curl $UrlStr 2>/dev/null|grep "Reading"|awk '{print $2}'
}
function writing(){
curl $UrlStr 2>/dev/null|grep "Writing"|awk '{print $4}'
}
function waiting(){
curl $UrlStr 2>/dev/null|grep "Waiting"|awk '{print $6}'
}
$1
修改zabbix客户端配置文件,
# vi /etc/zabbix/zabbix_agentd.conf
增加以下几行:
UserParameter=nginx.active , sh /usr/local/nginx/nginx-status.sh active
UserParameter=nginx.accepts, sh /usr/local/nginx/nginx-status.sh accepts
UserParameter=nginx.handled, sh /usr/local/nginx/nginx-status.sh handled
UserParameter=nginx.requests, sh /usr/local/nginx/nginx-status.sh requests
UserParameter=nginx.reading, sh /usr/local/nginx/nginx-status.sh reading
UserParameter=nginx.writing, sh /usr/local/nginx/nginx-status.sh writing
UserParameter=nginx.waiting, sh /usr/local/nginx/nginx-status.sh waiting
重启zabbix_agentd
然后在zabbix页面上,host--》131主机--》“items"选项卡,点右上方的”Create item"按钮
在页面上,name输入 nginx.active ,key输入nginx.active ,Newapplication输入 nginx,点“ADD”按钮。
依此法,添加上面的所有item:nginx.active ,nginx.accepts,nginx.handled,nginx.requests,nginx.reading,nginx.writing,nginx.waiting
再点“Graphs",把这几个item添加到同一个图形中。
在”monitor“--》Screens-->"Edit Screens"-->把这个图形添加进来就可以了。
(part2 的链接为 https://www.jianshu.com/p/9373e2b9a2b6 )