Server : CentOS Stream 8
PHP Version :7.2.24
Web Server :Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9
Database Server : mod_perl/2.0.12 Perl/v5.26.3
Version OCSReports: MariaDB Server version 10.3.28-MariaDB
OCS Inventory : 2.11.1
Client : Windows 10
Agent : 2.10.1.0
以下為agent log資訊
Starting OCS Inventory Agent on Friday, July 07, 2023 03:23:44.
AGENT => Running OCS Inventory Agent Version 2.10.1.0
AGENT => Using OCS Inventory FrameWork Version 2.10.1.0
AGENT => Loading plug-in(s)
AGENT => Using network connection with Communication Server
AGENT => Using Communication Provider Version <2.10.1.0>
AGENT => Sending Prolog
AGENT => Prolog successfully sent
AGENT => Unloading communication provider
AGENT => Unloading plug-in(s)
AGENT => Execution duration: 00:00:00.
回到OCS系統看沒有任何資訊,而agent log卻沒error資訊。
想請問各位高手,問題出在哪裡呢? 謝謝!
OCSNG 工作原理
OCS Server 接收 Agent 以 XML 格式發送的清單,並將數據存儲在 MySQL 資料庫中。主要由 Agent 透過 http 或 https 主動聯繫 Server,此過程中 Server 僅在進行偵聽。此外,軟體部署和 SNMP 掃描僅在 https 中進行。
OCS Server 主要由 4 個元件組成:
如果在安裝資料庫的時候沒有使用預設的密碼,將會導致通訊伺服器在接收到代理程式的資料時無法寫入資料庫。
Service encounter error <OCS Inventory Agent encounter an error (exit code is 4 => Failed to talk with Communication Server)>.
編輯 z-ocsinventory-server.conf
sudo vi /etc/apache2/conf-enabled/z-ocsinventory-server.conf
把 OCS_DB_PWD 改成您建立用戶時所填寫的密碼
<IfModule mod_perl.c>
# Which version of mod_perl we are using
# For mod_perl <= 1.999_21, replace 2 by 1
# For mod_perl > 1.999_21, replace 2 by 2
PerlSetEnv OCS_MODPERL_VERSION 2
# Master Database settings
# Replace localhost by hostname or ip of MySQL server for WRITE
PerlSetEnv OCS_DB_HOST localhost
# Replace 3306 by port where running MySQL server, generally 3306
PerlSetEnv OCS_DB_PORT 3306
# Name of database
PerlSetEnv OCS_DB_NAME ocsweb
PerlSetEnv OCS_DB_LOCAL ocsweb
# User allowed to connect to database
PerlSetEnv OCS_DB_USER ocs
# Password for user
PerlSetVar OCS_DB_PWD ocs
記得重啟 Apache 伺服器
sudo systemctl reload apache2
可以到 dbconfig.inc.php 查看是否生效
cat /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
<?php
define("DB_NAME", "ocsweb");
define("SERVER_READ","localhost");
define("SERVER_WRITE","localhost");
define("SERVER_PORT","3306");
define("COMPTE_BASE","ocs");
define("PSWD_BASE","your_ocs_password");
define("ENABLE_SSL","");
define("SSL_MODE","");
define("SSL_KEY","");
define("SSL_CERT","");
define("CA_CERT","");
?>
若還是有問題的話,建議您先考慮使用 2.9 的代理程式測看看(記得勾選 Enable verbose log)。
以下是我之前寫的文章,可以參考看看。
Ivan大 您好,
您的文章對我很有幫助,原來我再安裝Agent時,Url那部份/ocsinentory,我改成reports。修改後,控制台能抓到agent數量,但點選All computers沒有任何資訊,過了週末兩天,依然沒有資訊,請問會是什麼問題呢?
我沒遇過 All computers 空白的問題
重啟一下 Client 的 OCS Inventory Service,檢查一下 Server 跟 Client 的 Log。
正常來說你只會遇到 Inventory 的 All software 是空白的問題,上方的參考連結幫你補上相關文章了。
重啟client端後,看其log資訊,是有幾條錯誤訊息。
1.WARNING * INVENTORY => Failed to retrieve sound devices
2.WARNING * INVENTORY => Failed to retrieve modems
3.WARNING * EXECUTABLE PLUGIN => Plugin <C:\Program Files\OCS Inventory Agent\plugins\Saas.ps1> does not produce any output!
而Server端的activity.log則停留在昨天
目前控制台畫面如下
https://ithelp.ithome.com.tw/upload/images/20230711/200444655HNUoMI8p8.jpg
從你的控制台看起來資料有進來,先嘗試使用無痕瀏覽器登入看看。
我們可以到資料庫驗證資料是否存在
sudo mysql
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ocsweb |
| performance_schema |
+--------------------+
4 rows in set (0.002 sec)
MariaDB [(none)]> use ocsweb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
透過下列語法,確認資料表內有您的 Client。
MariaDB [ocsweb]> select * from hardware;
右上方的設定,點選 DEBUG。
Switch to: DEBUG,OK。
再回到 All computers 查看是否有可用的訊息
先謝謝Ivan大的回覆。
資料庫裡面是有資料的。用無痕方式,也照您說的使用Debug模式,但依然沒資料顯示出來。