跳至主要内容

利用Prometheus+windows_exporter监控windows server的数据

公司现有环境已经有zabbix来监控server的状态,并利用grafana接入zabbix_api来获取更为直观的实时图形数据。
但zabbix的优势是灵活的报警功能,因为依赖于sql数据库,实时大量数据写入在面对较多机器的环境下,会产出很高的性能开销。
因此采用prometheus这种时间序列数据库,利用其高效的数据写入,来获取服务器更为详细的信息。


环境如下:
客户端windows server安装windows_exporter,服务端安装prometheusgrafana

一.服务端安装Grafana。
    这里使用centos 7的环境安装。
    下载最新版的grafana安装包。
    sudo yum install grafana-7.2.2-1.x86_64.rpm
    安装完成后启动服务
    sudo systemctl daemon-reload
    sudo systemctl start grafana-server
    sudo systemctl status grafana-server
    sudo systemctl enable grafana-server
    开启防火墙端口
    firewall-cmd --add-port=3000/tcp --permanent
    systemctl reload firewalld
    打开浏览器输入http://ip:3000就能打开grafana的页面。
二.服务端安装prometheus。
    下载prometheus的二进制安装包
    wget
    https://github.com/prometheus/prometheus/releases/download/v2.22.0/prometheus-2.22.0.linux-amd64.tar.gz
    解压
    tar -xf prometheus-2.22.0.linux-amd64.tar.gz
    移动并创建软连接
    mv prometheus-2.22.0.linux-amd64   /usr/local/
    ln -s /usr/local/prometheus-2.22.0.linux-amd6   /usr/local/prometheus
    创建prometheus用户及数据存储目录
    usradd  -s /sbin/noligin -M prometheus
    mkdir   /data/prometheus -p
    chown -R prometheus:prometheus /usr/local/prometheus
    chown -R prometheus:prometheus /data/prometheus
    创建prometheus的systemd服务启动项
    vim /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus
Restart=on-failure
[Install]
WantedBy=multi-user.target
    systemctl enable prometheus
    systemctl start prometheus
    开启防火墙端口
    firewall-cmd --add-port=9090/tcp --permanent
    systemctl reload firewalld
    打开浏览器输入http://ip:9090就可以看到prometheus的web页面。
三.客户端安装wmi_exporter。
    下载最新的安装包https://github.com/prometheus-community/windows_exporter/releases
    安装后在防火墙开启9182端口
    打开浏览器输入http://ip:9182就可以看到windows_exporter的页面。
四.配置prometheus抓取客户端信息。
    编辑prometheus的配置文件
    vim /usr/local/prometheus/prometheus.yml
    在scrape_configs中加入客户端信息
    - job_name:  'SHXX01'
      static_configs:
      - targets:  ['10.10.10.121:9182','10.10.10.122:9182']
    完成后重启prometheus服务
    systemctl restart prometheus
    打开浏览器输入http://ip:9090检查target中新增节点的状态是否为UP。
五.在grafana中添加prometheus的数据源。
    在configuration中选中prometheus并点击add data source。
    在配置中填入服务器地址:http://localhost:9090。
    点击save&test。

至此完成grafana导入利用prometheus抓取windows exporter的数据。

评论

此博客中的热门博文

PVE安装Windows 11虚拟机 step by step

Win 11已经发布有两周多了,因为引进了tpm机制,只支持较新的设备安装,对于虚拟机的支持不高。 目前各个虚拟化平台针对win 11已经有对应的方案,今天来介绍一下PVE 7.0安装win 11虚拟机。 提前下载win11和virtio win 11的镜像。 win 11镜像下载这里就不说了,很多途径。 virtio的镜像在这里下载https://github.com/virtio-win/virtio-win-pkg-scripts,下载最新的virtio win iso。 新建和配置虚拟机 点击新建虚拟机 给虚拟机起名,然后下一步。 选择加载win 11镜像文件,系统类型选择windows。 系统配置这里: bios选择OVMF(UEFI);机器选择q35;勾选TPM,并选择TPM版本为v2.0;然后存储的位置选择同一个存储。 硬盘设备选择VirtIO,磁盘大小选择64G,32G其实也可以,但是微软要求最低64G。 设置CPU和内存,微软要求最低2核8G,这里我们给4核8G,因为是单节点,所以CPU类型勾选host。 配置网卡信息后继续。 这里不要勾选自动创建后启动,确认配置信息后点击完成。 到新建的虚拟机这里,新建光驱。 选择下载的驱动镜像,点击创建。 完成后点击启动。 启动后进入windows安装界面,这里照一般操作进行。 到安装类型这里选择 自定义安装。 到选择安装位置这里会无法显示硬盘信息,因为缺少驱动,点击加载驱动程序。 然后点击浏览。 选择驱动镜像下的amd64下的w10文件夹,点击确定。 加载驱动后磁盘控制器能够显示,点击下一页。 选中显示的磁盘后点击下一步进行安装。 文件复制完后会重启几次。 安装完成后会启动第一次配置界面。 输入账户信息后进行系统配置。 配置完成后进入桌面。 在设备管理器中有一些设备未能正确识别。 进入驱动镜像,运行virtio-win-ge-x64安装文件安装驱动。 安装完成后,所有设备都能正确识别。 至此win11虚拟机安装完成。

搭建cups服务,并提供云打印服务。

Google的云打印服务已经在2020年底结束,所以不得不寻找新的解决方案。 之前家里使用一台windows虚拟机内置的打印服务,使用windows单单作为一台打印服务器实在是太过浪费。 因为家里有ubuntu的虚拟机跑plex服务,计划在ubuntu上运行打印服务。 linux上最为成熟的打印服务就是cups了,然后在软路由上搭建open vpn,即可实现任何地方打印文档。 一.cups服务安装。     首先安装cups服务     sudo apt install cups     修改配置文件     sudo  cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.bak     sudo nano  /etc/cups/cupsd.conf     新增监听地址     Listen 192.168.1.x:631      BrowseAllow all      BrowseAddress All      <Location />            Order allow,deny            Allow all      </Location>      <Location /admin>          Order allow,deny          Allow all     </Location>      <Location /admin/conf>          Order allow,deny          Allow all     </Location>     然后用浏览器访问https://192.168.1.x:631/admin     添加打印机     add printer     选择local printer里本地的打印机 然后点击下一步     勾选share this printer然后点击下一步     在model里寻找打印机型号,如果没有需要安装打印机     我的打印机是epson入门型号l310,需要手动安装。     去epson的网站https://download.ebz.epson.net/dsc/search/01/search/searchModule寻

利用Nextcloud搭建私有云盘

最近有同学的手机丢了,幸运的是手机最后有找回来。 大部分人手机里有非常多的照片,手机丢了可以买新的,照片丢了就再也找不回来了。因此数据的备份显得非常重要。 因为家里有NAS做raid 1,并且定期做异地备份,数据的安全性还是蛮高的。就有搭建私有云盘的想法。 上网搜索了一下,发现nextcloud是用得比较多的。此次就选用nextcloud来搭建我们的私有云盘。 首先在家里的服务器上新建一台vm,这里选用debian 11,装系统的过程就不讲了。 安装完成后,利用nfs挂载nas的存储 新建挂载目录 mkdir /mnt/nextcloud 编辑/etc/fstab,加入如下一行 192.168.x.x:/volume1/NextCloud /mnt/nextcloud nfs defaults 0 0 这里ip地址和nas存储路径用自己的配置替代 然后sudo mount -a测试一下 接下来开始安装依赖件 安装mariadb sudo apt update sudo apt -y install mariadb-server mariadb-client 配置数据库 sudo mysql_secure_installation  sudo mysql -u root -p 输入配置的密码以登录 配置nextcloud的数据库和用户 CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '密码'; CREATE DATABASE nextcloud; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; FLUSH PRIVILEGES; QUIT 安装php和apache2 sudo apt -y install php php-{cli,xml,zip,curl,gd,cgi,mysql,mbstring} sudo apt -y install apache2 libapache2-mod-php 修改php配置 sudo vim /etc/php/*/apache2/php.ini date.timezone = Asia/Shanghai memory_lim