分类 性能监控 下的文章

云服务器 zabbix 配置报警邮件


配置邮件报警功能
1.在 zabbix 服务器上安装 mail 服务 :
yum install mailx -y

问题:could not connect: Connection timed out
“/root/dead.letter” 11/318
. . . message not sent.
分析:阿里云服务器关闭了25端口,发送邮件连接不上服务器的缘故,而且官方不允许打开该端口
一、请求数字证书
依次完成以下命令
mkdir -p /data/.certs/           chmod -R 777 /data                ####创建目录,用来存放证书
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END 
CERTIFICATE-/p' > ~/.certs/qq.crt                    ####向qq请求证书
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt                  ####添加一 
个SSL证书到证书数据库中
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt               ####添加一 
个Global 证书到证书数据库中
certutil -L -d /root/.certs                         ####列出目录下证书

二、配置发件人    注意:邮箱需要打开POP3服务,密码用授权码填写
vi /etc/mail.rc #注意有些邮箱需要开启客户端授权码进行第三方登录
#末尾添加  zabbix 发送告警信息邮箱
set from=xxxxxx@qq.com
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=xxxxx@qq.com
set smtp-auth-password=邮箱密码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/data/.certs

echo "hello world" | mail -s "testmail" xxxxxx@qq.com   #测试发信正常 去邮箱查看

编写发邮件脚本 :
cd /usr/lib/zabbix/alertscripts
vi mailx.sh //编写发邮件脚本
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1

touch /tmp/mailx.log 
chown -R zabbix.zabbix  /tmp/mailx.log 
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
测试
echo "hello world" | mail -s "testmail" xxxx@qq.com

三、配置web页面
1、创建媒体类型
管理–>报警媒介类型–>创建媒体类型

sendmail
sendmail.sh
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2、给用户添加报警媒介
此处以Admin用户为例 管理–>用户–>点击Admin –>报警媒介–>添加

3、创建动作
配置–>动作–>Report problems to Zabbix administrators–>操作
创建一个动作名字
告警信息: {TRIGGER.NAME}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
默认的步骤是1-1,也即是从1开始到1结束。一旦故障发生,就是执行sendEmail.sh脚本发生报警邮件给Admin用户和zabbix 
administrator组。 假如故障持续了1个小时,它也只发送一次。如果改成1-0,0是表示不限制.无限发送间隔就是默认持续时 
间60秒。那么一个小时,就会发送60封邮件


恢复操作

zabbix4.0 percona插件实现监控mysql


官方下载percona插件 
wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins- 
1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

安装好了,会生成这么个文件
cd /var/lib/zabbix/percona/ && tree
.
├── scripts
│   ├── get_mysql_stats_wrapper.sh
│   └── ss_get_mysql_stats.php
└── templates
    ├── userparameter_percona_mysql.conf
    └── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml

  2 directories, 4 files
复制文件
cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
修改配置文件
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'root';      #账号
$mysql_pass = 'ASDQWE123'; #自己数据库密码
$mysql_port = 3306;
chmod +x  /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh 

重启服务
在Agent节点上配置和验证与localhost的MySQL连接,返回任何数字则表式连接成功
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
242842
chmod 600 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
systemctl restart zabbix-agent

server端测试   返回任何数字则表式连接成功
zabbix_get -s 120.78.214.28 -p 10050 -k "MySQL.Sort-scan"
62649

模板下载地址
连接:https://pan.baidu.com/s/1AHd7epDm9KDrsVPaYKKXnQ
密码:m31h
导入模板   

请输入图片描述

把模板加入主机
请输入图片描述


zabbix 自定义脚本监控 php


1.开启php 状态页面
/etc/php-fpm.d/www.conf
pm.status_path = /status

2、修改nginx的配置文件,通过Nginx访问PHP-FPM状态
    location ~ ^/(status|ping)$ {

    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}

3.访问测试phpfpm_status  根据个人配置的情况使用ip或者域名测试
[root@linux-node4 conf.d]# curl http://127.0.0.1/status
pool:                 www
process manager:      dynamic
start time:           16/Jun/2018:21:57:13 -0400
start since:          434
accepted conn:        41
listen queue:         0
max listen queue:     0
listen queue len:     128
idle processes:       5
active processes:     1
total processes:      6
max active processes: 1
max children reached: 0
slow requests:        0
pool #fpm池名称,大多数为www
process manager #进程管理方式dynamic或者static
start time #启动日志,如果reload了fpm,时间会更新
start since #运行时间
accepted conn #当前池接受的请求数
listen queue #请求等待队列,如果这个值不为0,那么需要增加FPM的进程数量
max listen queue #请求等待队列最高的数量
listen queue len #socket等待队列长度
idle processes #空闲进程数量
active processes #活跃进程数量
total processes #总进程数量
max active processes #最大的活跃进程数量(FPM启动开始计算)
max children reached #进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量过小,可以适当调整。

4.创建脚本
mkdir /etc/zabbix/scripts
vim php-fpm_status.sh   chmod +x php-fpm_status.sh
#########################################################################
# File Name: php-fpm_status.sh
#########################################################################
#!/bin/bash

listenqueue(){       #处于等待状态中的连接数,如果不为0,需要增加php-fpm进程数
    wget --quiet -O - http://wangwei520.top/status?auto |grep "listen queue:"|grep -vE "len|max"|awk 
'{print$3}'
}

listenqueuelen(){  #处于等待连接队列的套接字大小
    wget --quiet -O - http://wangwei520.top/status?auto |grep "listen queue len" |awk '{print$4}'
}

idle(){          #处于空闲状态的进程数
    wget --quiet -O - http://wangwei520.top/status?auto |grep "idle processes" |awk '{print$3}'
}
active(){       #处于活动状态的进程数
    wget --quiet -O - http://wangwei520.top/status?auto |grep "active" |awk '{print$3}'|grep -v 
"process"
}
total(){        #进程总数
    wget --quiet -O - http://wangwei520.top/status?auto |grep "total processes" |awk '{print$3}'
}

mactive(){    #从php-fpm启动到现在的进程处于活动状态数

    wget --quiet -O - http://wangwei520.top/status?auto |grep "max active processes:" |awk '{print$4}'
}

$1

5、zabbix配置键值
cat check_service.conf chmod +x check_service.conf
UserParameter=php[*],/etc/zabbix/scripts/php-fpm_status.sh $1
systemctl  restart zabbix-agent

6、server端测试
zabbix_get -s 192.168.0.1 -p 10050 -k "php[total processes]"  #有数据说明正确

服务端配置:
导入模板
wget  wangwei520.top/zbx_templates_php-fpm.xml #下载
选择模板导入   

创建客户端的主机

zabbix4.0安装后图形界面中文乱码解决方法


一、问题

20181108214305929.png

二、解决方法
1、复制本地电脑C:\Windows\Fonts\simkai.ttf(楷体)上传到zabbix服务器网站目录的fonts目录下


2.zabbix目录fonts目录查找如下:
whereis zabbix
cd /usr/share/zabbix/assets/fonts
ll

20181108214305620.png
3、上传simkai.ttf到 /usr/share/zabbix/assets/fonts
4.修改simkai.ttf权限
chmod 777 simkai.ttf
5.修改默认软连接的字符集
cd /etc/alternatives/
ll
rm -f /etc/alternatives/zabbix-web-font #删除默认软链接的字符集
ln -s /usr/share/zabbix/assets/fonts/simkai.ttf /etc/alternatives/zabbix-web-font #指向新安装的字符集

20181108214305571.png
6.重启zabbix服务器
systemctl restart zabbix-server


zabbix4.0 监控安装搭建(使用postgresql)


在centos系统中执行
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7- 
x86_64/pgdg-centos10-10-2.noarch.rpm -y  
yum install postgresql10-contrib postgresql10-server -y

初始化数据库
Postgresql安装目录是/usr/pgsql-10,而Postgresql的数据目录是/var/lib/pgsql/版本号/data目 
录在这里,如果在装系统开始分配var空间足够大则可以继续,如果分配var空间不够,我们需要更改数 
据目录,在这里,我们假设var空间足够大。直接开始初始化。
/usr/pgsql-10/bin/postgresql-10-setup initdb
systemctl start postgresql-10
systemctl enable postgresql-10.service

登录postgresql并设置密码
su - postgres
psql
ALTER USER postgres WITH PASSWORD 'asdqwe123';
创建数据库
CREATE DATABASE zabbix;
创建用户
CREATE USER zabbix CREATEDB LOGIN PASSWORD 'asdqwe123';
将testdb所有权限赋给用户testuser
GRANT ALL ON DATABASE zabbix TO zabbix;
修改监听地址权限
vim  /var/lib/pgsql/10/data/postgresql.conf
listen_addresses = '*'  打开端口5432
vi /var/lib/pgsql/10/data/pg_hba.conf  修改为MD5
# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                    md5
host    replication     all             127.0.0.1/32           md5
host    replication     all             ::1/128                md5
host    all             all              0.0.0.0/0             md5  #添加


php安装
安装php源:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y - mod_php72w yum-utils php72w-cli php72w-common php72w-gd php72w-mbstring php72w-mysql 
php72-xml php72-fpm php-redis php72w-xml php72w-fpm
systemctl enable php-fpm.service
systemctl start php-fpm

zabbix 安装
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
yum -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
导入初始架构和数据。
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
为Zabbix服务器配置数据库
编辑文件/etc/httpd/conf.d/zabbix.conf,取消注释并为您设置正确的时区。
php_value date.timezone Asia/Shanghai
为Zabbix服务器/代理配置数据库
vi /etc/zabbix/zabbix_server.conf
DBHOST =localhost
数据库名= zabbix
DBUSER = zabbix
DBPASSWORD = asdqwe123
修改文件权限
chown -R root:apache /var/lib/php

httpd配置 vim /etc/httpd/conf/httpd.conf
ServerName x.x.x.x

DocumentRoot "/usr/share/zabbix"

#
# Relax access to content within /var/www.
#
<Directory "/usr/share/zabbix">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

# Further relax access to the default document root:
<Directory "/usr/share/zabbix">

启动Zabbix服务器和代理程序进程并使其在系统引导时启动:
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd

打开网址安装
http://x.x.x./setup.php
按照提示进行安装
按照提示修改 vim /etc/php.ini 里面参数 时区设置为PRC
按照提示进行操作完成安装

zabbix 监控 linux 主机   (监控端和被监控端开放10050和10051端口,关闭selinux)
在被监控主机上安装
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum clean all
yum install -y zabbix40-agent.x86_64
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.old
vim /etc/zabbix/zabbix_agentd.conf   #清空配置文件
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.104  # 填写zabbix_server服务端 的 IP
ListenPort=10050
ServerActive=192.168.10.104  # 填写zabbix_server服务端 的 IP
Hostname=aliyun   #监控端主机名
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
systemctl  restart zabbix-agent

去网页新建主机

1560319-20190306143155976-36105510.png